日期:2014-05-16  浏览次数:20753 次

关于视频传输rtp协议
最近要做网络视频实时传输,可能需要用到rtp协议发送h264编码,现在有点小疑惑,请大家指点下:
1,如果我按照udp直接把编码数据一帧一帧的发送到服务器由对方来解码,如果丢包的话服务器还能不能解码?rtp能解决丢包的问题吗?如果不能的话,那用rtp有什么用?为什么不直接把采样数据发送给对方,丢包的话解码器忽略
2,嵌入式linux系统,如果采用rtp协议,是需要用rtp的lib还是直接自己按照协议填充?哪个更省事可靠?

------解决方案--------------------
丢包的话解码还能解,只不过会造成画面顿卡跳跃以及花屏(I、P frame的概念)
rtp发送协议,拿你这里来说,可以解决数据乱序的问题吧(时间戳)
直接发送给对方你说的是服务器把?如果是客户端P2P是个问题
2.当然是用现有的协议栈开源实现啦
------解决方案--------------------
1.想h.264编码这种数据量大的协议,一般都用rtp来传输,看名字就知道了Real-time Transport Protocol;网络环境导致丢包或乱序的话,lz已经说了,好的程序处理优化可以提高在丢包情况下的画质。
如果使用TCP来传输,那肯定做不到“实时”。

2.由你把握程度定。
------解决方案--------------------
引用:
Quote: 引用:

1.想h.264编码这种数据量大的协议,一般都用rtp来传输,看名字就知道了Real-time Transport Protocol;网络环境导致丢包或乱序的话,lz已经说了,好的程序处理优化可以提高在丢包情况下的画质。
如果使用TCP来传输,那肯定做不到“实时”。

2.由你把握程度定。


“一般都用rtp来传输,”     为什么呢?

因为实时传输协议(rtp)本来就是为视频、语音等时效性高,数据量大的交互而定制的协议,里面一些seq、payload type等等,都是在媒体传输协议中需要用到的。。。