关于视频直播,延时是用户特别关注的问题。在今天的文章中,我们将为大家详细阐述影响视频延时的四大因素之一:直播流协议的选择。
不同的网络现场会有不同的延迟,但是除了该外界因素影响之外,不同的直播流自身传输就会有延时,而且这种延时不可逆。本文将为大家分析以下几种视频流的延时问题。
1丨RTMP
优势:
RTMP对底层的优化比其它协议更加优秀,同时它对Adobe Flash支持极佳,基本上所有的编码器(摄像头之类)都可支持RTMP输出。
另外,RTMP适合长时间播放。曾经有开发人员做过测试,连续100万秒,即10多天连续播放,RTMP没有出现问题。
而且RTMP的延迟相对较低,一般延时在1-3s之间。因此一般的视频会议、互动式直播完全够用。
缺点:
当然RTMP并没有尽善尽美,它也有不足的地方。
一方面,它是基于TCP传输,非公共端口,可能会被防火墙阻拦;另一方面,也是比较坑的一方面,RTMP为Adobe私有协议,很多设备无法播放,特别是在iOS端,需要使用第三方解码器才能播放。
2丨HLS
优势:
HLS是由苹果公司提出的基于HTTP的流媒体网络传输协议,是苹果公司QuickTimeX和iPhone软件系统的一部分。
它的工作原理是把整个流分成一个个小的基于TS的文件来下载,每次只下载一部分。当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率。此外,HLS性能高,可以通过CDN进行网络分发。
缺点:
HLS的劣势也非常明显。首先HLS实时性差,延迟高。HLS的延迟基本在10s+以上。另外,由于HLS请求的并不是完整的数据流,导致它产生文件碎片多。ts切片较小,会造成海量小文件,对存储和缓存都有一定的挑战。
3丨FLV
优势:
FLV是一种在网络上传输的流媒体数据存储容器格式。我们所说的HTTP-FLV,即将流媒体数据封装成FLV格式,然后通过HTTP协议传输给客户端。
HTTP-FLV能够很好地穿透防火墙,它是基于HTTP/80传输,有效避免被防火墙拦截。另外,它可以通过HTTP302跳转灵活调度/负载均衡,支持使用HTTPS加密传输,也能够兼容支持Android、iOS的移动端。
缺点:
FLV也有一个缺点,由于它的传输特性,会让流媒体资源缓存在本地客户端,在保密性方面不够好。
4丨RTSP
优势:
RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或UDP完成数据传输。使用RTSP时,客户机和服务器都可以发出请求,即RTSP可以是双向的。
RTSP是用来控制声音或影像的多媒体串流协议,并允许同时多个串流需求控制,传输时所用的网络通讯协定并不在其定义的范围内,服务器端可以自行选择使用TCP或UDP来传送串流内容。(· 延伸阅读:诞生于1996年,RTSP依旧沿用至今的4大原因!)
它的语法和运作跟HTTP1.1类似,但并不特别强调时间同步,所以比较能容忍网络延迟。
因为与HTTP1.1的运作方式相似,所以代理服务器〈Proxy〉的快取功能〈Cache〉也同样适用于RTSP,并因RTSP具有重新导向功能,可视实际负载情况来转换提供服务的服务器,以避免过大的负载集中于同一服务器而造成延迟。
缺点:
RTSP直播流协议一般使用UDP作为传输层,比较适合IPTV场景。
几种流的比较
传输协议上:
RTMP:TCP
HTTP-FLV:HTTP
HLS:HTTP
RTSP:UDP
视频封装格式:
RTMP:FLV/TAG
HTTP-FLV:FLV
HLS:M3U8/TS
RTSP:TS/MP4
延时:
RTMP:2S
HTTP-FLV:2S
HLS:10S+
RTSP:3S
数据分段:
RTMP:连续流
HTTP-FLV:连续流
HLS:切片
RTSP:切片
总结
TSINGSEE青犀视频通过智能调度、链路保障、追帧处理、丢帧处理以及业界首创的HLS+技术,可将RTMP直播延迟控制在1秒内,将HTTP-FLV、WS-FLV、RTSP直播流延时控制在3****秒内,将HLS直播延时控制在10****秒左右。
所以,当排除网络、码流、设备性能的情况下,在不同的直播场景中,选用合适的直播流协议,能大大降低直播的延迟。
当然,在私有化部署的过程中,以上几点都需要综合考量,保障视频流的流畅播放。