通过私有化部署自建视频流媒体服务器,不同视频流延时说明

针对私有化部署一套流媒体服务器软件的视频延时问题,我们在上文为大家介绍了视频低延时主要影响因素之网络情况、前端设备的码流、前端设备的数量、直播流协议的选择四大要素,本文主要为为大家介绍最后一个,直播流协议的选择。

每年这么多用户需求,我们发现关于视频直播,延时是用户特别关注的问题。基于这些用户的需求,我们之前给大家出过一篇延时测试的博文:EasyNVR如何进行延迟测试

不同的网络现场会有不同的延迟,但是除了这个外界因素影响之外,不同的直播流自身带的就会有延时,这种延时不可逆,本文就分别为大家介绍一下:

RTMP

优势:

RTMP 对底层的优化比其它协议更加优秀,同时它 Adobe Flash 支持好,基本上所有的编码器(摄像头之类)都支持 RTMP 输出。另外 RTMP 适合长时间播放,曾经有过测试,连续 100 万秒,即 10 天多连续播放没有出现问题。最后 RTMP 的延迟相对较低,一般延时在 1-3s 之间,一般的视频会议、互动式直播完全够用。

缺点:

当然 RTMP 并没有尽善尽美,它也有不足的地方。一方面是它是基于 TCP 传输,非公共端口,可能会被防火墙阻拦;另一方面,也是比较坑的一方面是 RTMP 为 Adobe 私有协议,很多设备无法播放,特别是在 iOS 端,需要使用第三方解码器才能播放。

HLS

优势:

HLS 是由苹果公司提出的基于 HTTP 的流媒体网络传输协议。是苹果公司 QuickTime X 和 iPhone 软件系统的一部分。它的工作原理是把整个流分成一个个小的基于TS的文件来下载,每次只下载一部分。当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率。性能高,可以通过 CDN 进行网络分发。

缺点:

HLS的劣势也非常明显,首先 HLS 实时性差,延迟高,HLS 的延迟基本在 10s+ 以上。另外由于 HLS 请求的并不是完整的数据流,导致它产生文件碎片多。ts 切片较小,会造成海量小文件,对存储和缓存都有一定的挑战。

FLV

优势:

FLV是一种在网络上传输的流媒体数据存储容器格式。而我们所说的 HTTP-FLV 即将流媒体数据封装成 FLV 格式,然后通过 HTTP 协议传输给客户端。HTTP-FLV 能够很好的穿透防火墙,它是基于 HTTP/80 传输,有效避免被防火墙拦截。另外,它可以通过 HTTP 302 跳转灵活调度/负载均衡,支持使用 HTTPS 加密传输,也能够兼容支持 Android,iOS 的移动端。

缺点:

FLV 也有一个缺点,由于它的传输特性,会让流媒体资源缓存在本地客户端,在保密性方面不够好。

RTSP

优势:

RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或UDP完成数据传输。使用RTSP时,客户机和服务器都可以发出请求,即RTSP可以是双向的。RTSP是用来控制声音或影像的多媒体串流协议,并允许同时多个串流需求控制,传输时所用的网络通讯协定并不在其定义的范围内,服务器端可以自行选择使用TCP或UDP来传送串流内容,它的语法和运作跟HTTP 1.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秒左右。

所以,当排除网络、码流、设备性能的情况下,在不同的直播场景中,选用合适的直播协议,能大大降低直播的延迟。当然,真正在私有化部署的过程中,以上几点都需要综合考量,保障视频流的流畅播放。

原文地址:https://www.cnblogs.com/TSINGSEE/p/13725333.html