美文网首页
一对多直播系统WebRTC/RTMP/HLS,你怎么选?

一对多直播系统WebRTC/RTMP/HLS,你怎么选?

作者: 花盆有话说 | 来源:发表于2020-04-23 17:54 被阅读0次

    一、关于我们
    我们是一家互联网教育公司,我们主要的业务方式就是通过直播的方式给学生们上课,因此现在很多的同行找我们了解直播系统怎么弄,如何去搭建一个直播系统。
    当年刚刚要出做直播的时候,就想着能不能直接自己做算了,后来还是这个行业的以为师兄将了一个直播系统的实现原理给我看了之后,发现一个10几人的研发团队,根本hold不住。而且那个时候,可以选择的云厂商也是比较少的。
    现在的各大云厂商对外提供的非常好的云产品,如果是刚刚起步的公司,可以考虑直接使用云厂商的直播服务。
    当然,一些直播的基础知识还是需要知道的,比如怎么选择传输协议?

    二、简单介绍常用协议


    协议
    1、RTMP协议/HttpFLV协议
    
        RTMP协议是现在传统直播系统广泛使用的协议,由Adobe公司发布,底层是基于TCP协议的,协议的基本信息[RTMP协议](http://wwwimages.adobe.com/www.adobe.com/content/dam/acom/en/devnet/rtmp/pdf/rtmp_specification_1.0.pdf)。在理想的网络情况下,网络不丢包、乱序、网络抖动的情况下,RTMP的延时也是能够做到1s左右的。但是理想情况是不可能存在的,在网络不好的发生丢包的时候,TCP的ACK机制,发送方会等接收方确认才会继续发送下一个包。如果播放端的网络不是特别好,就会引起缓冲抖动(JitBuffer),JitBuffer太多就无法做到非常低的延时。这个协议一般延时在3~5秒,对于播发器开发相对会比较简单一点,设置好缓存,不用太过考虑丢包的、乱序的场景。所以也是前几年使用比较多的协议,延时较低,画质音质较好。但是有一点,必须使用Flash部分,这个是死穴。
    
        这里将RTMP协议与HttpFLV协议一起来讨论,如果我们看过[HttpFLV协议](https://www.adobe.com/content/dam/acom/en/devnet/flv/video_file_format_spec_v10.pdf),两个有非常大的相似性,也是由Adobe公司发布,通过HTTP协议建立长连接,所以基本与RTMP协议相同,但是在2016 flv.js在神奇的B站诞生了。Flash的时代结束,正式进入H5时代。
    
        但是RTMP协议作为推流的协议,是现在比较普遍的共识,实现起来简单,各大CDN厂商都可能很好的支持。
    
    2、HLS协议
    
        HLS协议是由苹果公司提出的,在现在基于RTMP协议推流的场景下,需要将一个固定长度的flv进行切片转成ts与m3u8文件,就算我们忽略切片需要的时间,忽略网络传输的时间,但是等待固定长度的flv文件,这个在技术上是不可少的。也就是说,固定长度越大,那么所带来的延时现象就越大,一般情况是10s+。就算我们将固定长度无限的缩小,ts与m3u8的文件无限的小,但是HLS用的HTTP的短连接,传输方式上面就不存在优势,对于网络的要求也是很高的。
    
        但是这个协议对于H5有非常好的支持,在协议对于延时性要求没有那么高,并且希望能够广泛传播的场景下,还是可以使用的。
    

    小结下,RTMP/HttpFLV/HLS这些协议都是基于TCP的场景下实现的,协议本身都有自己的特点。


    小结

    RTMP

    rtmp协议

    HLS

    HLS协议
    3、WebRTC协议
    
    WebRTC是基于RTP/RTCP流媒体传输协议,底层是UPD传输,利用web浏览器的技术实现浏览器的P2P连接。
    
    WebRTC协议

    并且利用STUN与TURN技术实现了网络穿透,能够将在公网地址与防火墙之后的设备连接在一起。

    RTP/RTCP/WebRTC可以现实极低的延时,但是由于需要去解决的技术难题比较多,导致如下几个问题:

    1、需要解决服务性能问题

    2、第三方使用成本比CDN的贵

    3、难以自己去搭建与维护

    不过,低延时肯定是未来直播的方向,肯定能够得到快速的解决,现在华为、阿里云都已经有一些demo的产品可以试用。

    三、总结

    1、初步搭建直播产品的时候,一定不要先想自己去搭建

    2、根本不同的业务,选用不同的直播技术

    3、不断的去关注新技术

    相关文章

      网友评论

          本文标题:一对多直播系统WebRTC/RTMP/HLS,你怎么选?

          本文链接:https://www.haomeiwen.com/subject/xhaaihtx.html