最近在做视频传输的demo,已经完成了基于tcp的内外网连接和传输。现在想将udp部分也做进去,也下了jrtplib看了下,现在想了解下:
因为udp是不可靠传输的,内网下包乱序和丢失一般比较少,而外网环境复杂,丢包和乱序都有,而这部分差错检验,是由rtcp完成的?还有,jrtplib中的send和recv有做这部分工作么
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
对于你的标题,实时多媒体传输,应该都不重发的,这也是为什么使用UDP来做。
RTP包上面也打了时间戳,发现收到的包太过时了是需要丢掉的。
- 千里孤行
------解决方案--------------------------------------------------------
楼主说得很对啊
TCP会丢包 UDP更是会丢包的
会不会出现马赛克看程序员自己想办法了
RTP/RTCP 并没有说怎么个重传 因为流媒体里面 有时候包延迟也会被丢弃
流媒体选择了UDP就是因为快、简便,但是缺点就是会有比较严重的丢包
------解决方案--------------------------------------------------------
回复于:2010-03-08 11:06:55引用:要是想丢包重传还是用tcp吧,UDP自己去做重传没必要的吧
louyong0571应该是没有做过视频传输的相关工作,使用tcp的确是可靠传输,不过这个可靠也是相对而言的,实际在网络状况不好下,tcp也有超时或连接错误。而且tcp在确保可靠传输上使用了过多的校验和严格的重发机制,这对于实时视频来说是不合适的。而且tcp也不适合做内外网穿透。还有就是tcp的发送方式也有一定的影响
使用udp,就是追求udp的迅速,如果算法合适,传输视频还是很合适的。现在重点是在包重发上,一直没有想到好的思路,不知有那位可以指导下~~
=========================================
TCP: 内网穿透似乎可以用UPNP端口映射。