不同音视频传输协议的对比

一、直播

直播场景通常使用的有hls协议、http-flv渐进式传输、RTP协议、DASH协议、RTMP协议,当然还有一些公司自己研发的私有(一般是UDP)协议。此外还有一些较少为人所知的HDS(adobe出品的与hls/dash匹配的码率自适应协议HTTP Dynamic Streaming)、SSTR/MSS(微软出品的码率自适应协议Smooth Streaming Transport Protocol)

各个协议对比:

协议传输层客户端支持优势劣势
hlsHTTP短连接ios/android端及H5原生支持,flash/PC端等需要自研播放器支持广泛,HTTP请求支持简单,网络兼容性好,码率自适应,服务端及CDN支持好延时太长,10s以上,单分片文件较小不便存储
http渐进式传输HTTP长连接flash支持,ios/android/PC端/H5需要自研延迟相对较小,HTTP请求简单,网络兼容性好,服务端及CDN支持好容易被劫持,多端兼容较为麻烦
rtpUDPAndroid端支持,其他各端都需要自研延迟小服务端逻辑复杂,协议及控制协议较难理解,开发周期长,客户端支持很难
dashHTTP短连接H5原生支持,其他端需要转换格式开放标准支持广泛,码率自适应服务端及商业CDN支持不够,使用不广泛
rtmpTCP长连接flash支持,其他需要自研延迟较小服务端压力相对较大,协议较为复杂,客户端兼容播放麻烦
私有协议UDP完全需要自研延迟可以做到很小,保密性较好,业务自行扩展性高开发难度极其大,客户端/协议定义/流服务端及CDN都需要自行开发支持,传输可靠性难以保证

多说一句:上面表格中传输层一列,并不是指该种传输方式对应的传输层协议(实际上传输层应该就是我们说的UDP/TCP),而是我们工作场合便于理解,常提到的传输和连接方式(有的是介于传输层和应用层的)。比如HTTP短连接和HTTP长连接,其实HTTP严格来说是基于TCP的应用层协议,但TCP连接的通道可以保持一段时间不关闭,这样就实现了“所谓的”HTTP长连接。实际上对于HTTP而言,就是完成HTTP REQUEST和HTTP RESPONSE,但如果传输层的TCP连接未断开,则可以仍旧在这个通道中继续request和response。

目前国内互联网直播使用协议场景:

业务场景使用协议情况
web端直播http-flv,rtmp,hls都有使用。一般如果结合P2P使用,会选择flv和hls
移动端互动直播较多使用http-flv,个别厂家使用私有协议
移动端大型直播较多使用http-flv和hls
web端推流主要使用rtmp,少数使用rtp
移动端推流主要使用rtmp,少数使用rtp,个别厂家使用私有协议

个人比较看好dash的发展,标准总是需要统一的嘛,但感觉要10年后了。。。

二、点播

点播的协议有hls,DASH,常见的基于http传输的mp4和flv,以及部分公司的私有协议。

写到这里我突然觉得confused。网上一大坨都是直接拿mp4/flv和hls并列对比,你说怎么能把mp4、flv和hls放一起对比呢?感觉不对呀!!确实我们通常是基于http协议来传输mp4和flv,但说白了mp4和flv是一种封装音视频的标准(是一个盒子),应该对应hls协议里面的ts/fMp4、DASH的mpd这些嘛,而且我们也可以用私有协议来传输mp4和flv呀。但是为了便于理解,我们沿用这种奇怪的对比方式

各个协议对比:

协议传输层客户端支持优势劣势
mp4一般http广泛支持各种设备及服务端、CDN都通用文件头过大且会累积
hlshttpH5/iOS/android原生支持,其他需要自研码率自适应,直播切点播时可以实时生成拖拽可能不够精准,对于超长点播可能分片较多
flv一般httpflash支持,ios/android/PC端/H5需要自研格式简单多端兼容略微麻烦
dashhttpH5原生支持,其他需要转换码率自适应,标准规范服务端及CDN支持不够,使用不广泛
私有协议udp同直播与直播不同的是,更多的结合P2P使用,用于合理利用带宽同直播

目前国内通常使用搭配:

  • 1).短视频播放——用整段mp4的较多
  • 2).与直播无关的长视频播放——用分段的mp4/flv较多;也有少数厂家开始使用HLS/DASH,但由于码率自适应对客户端的适配要求以及服务端转码要求不低,所以并没有被真的广泛使用;有技术积累的厂家会用私有协议传输,叠加P2P
  • 3).直播生成的回放——用hls较多。因为hls可以在直播过程中就转码切片生成ts,而且可以实现直播实时观看回放(*但这种情况不适用于互动直播)。当然也可以考虑使用分段的mp4/flv,但是这样在直播结束时需要更新最后的文件头,以及直播转回放的URI查询接口,会比较麻烦,也不适用于直播实时观看回放的场景。

对于mp4和hls,有一种方法可以结合二者的优点,具体见文章MP4大文件虚拟HLS分片技术,避免点播服务器的文件碎片

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值