通信人家园

标题: 网络视频直播低延迟传输的框架协议选择  [查看完整版帖子] [打印本页]

时间:  2016-12-9 10:28
作者: soloman1001     标题: 网络视频直播低延迟传输的框架协议选择

最近研究网络直播技术及体验保障。
直播与点播要求不一样,节目中有交互等,如果延迟太大,就影响效果,因此要求延迟尽可能小。

国内常见公开的直播协议有几个:RTMP、HLS、HDL(HTTP-FLV)、RTP,可达到的延迟性能不太一样。
RTMP协议:是Adobe的专利协议,现在大部分国外的CDN已不支持。在国内流行度很高。相对其他协议而言,RTMP协议初次建立连接的时候握手过程过于复杂(底层基于TCP,这里说的是RTMP协议本身的交互),视不同的网络状况会带来给首开带来100ms以上的延迟。基于RTMP的直播一般内容延迟在2~5秒。

HTTP-FLV协议:
即使用HTTP协议流式的传输媒体内容。相对于RTMP,HTTP更简单和广为人知,而且不担心被Adobe的专利绑架。内容延迟同样可以做到2~5秒,打开速度更快,因为HTTP本身没有复杂的状态交互。从延迟角度来看,HTTP-FLV要优于RTMP。
HLS 协议:
即Http Live Streaming,是由苹果提出基于HTTP的流媒体传输协议。采用m3u8的文件列表顺序小视频TS的方式,延迟较大。目前按同城网络可以做到比较好的效果是5~7秒的延迟,也是综合流畅度和内容延迟的结果。
RTP协议:
即Real-time Transport Protocol,实际应用场景下经常需要RTCP(RTP Control Protocol)配合来使用,在视频监控、视频会议、IP电话上有广泛的应用,因为视频会议、IP电话的一个重要的使用体验:内容实时性强。


对比与上述3种或实际是2种协议,RTP和它们有一个重要的区别就是默认是使用UDP协议来传输数据,而RTMP和HTTP是基于TCP协议传输。
UDP:单个数据报,不用建立连接,简单,不可靠,会丢包,会乱序;实时音视频流的场景不需要可靠保障,因此也不需要有重传的机制,实时的看到图像声音,网络抖动时丢了一些内容,画面模糊和花屏,完全不重要,因此采用UDP可以降低延迟。
TCP:流式,需要建立连接,复杂,可靠 ,有序。TCP为了重传会造成延迟与不同步,导致延迟在网络变化是会变大。

总结一下:在直播协议的选择中,如果选择是RTMP或HTTP-FLV则意味着有2~5秒的内容延迟,但是就打开延迟开,HTTP-FLV 要优于RTMP。HLS则有5~7秒的内容延迟。选择RTP进行直播则可以做到1秒内的直播延迟。但就目前所了解,各大CDN厂商没有支持基于RTP直播的,所以目前国内主流还是RTMP或HTTP-FLV。
实测一直播延迟在2-3S,采用UDP私有协议实现的YY延迟也在2-3S。



时间:  2016-12-14 17:32
作者: 383512287

了解看看
时间:  2017-8-16 11:34
作者: 948652572

了解下




通信人家园 (https://www.txrjy.com/) Powered by C114