美文网首页
几种直播协议比较

几种直播协议比较

作者: linliqzh | 来源:发表于2018-05-18 13:56 被阅读0次

几种直播协议的比较

HLS协议

HLS 协议本质还是一个个的 HTTP 请求 / 响应,所以适应性很好,不会受到防火墙影响。但它也有一个致命的弱点:延迟现象非常明显。如果每个 ts 按照 5 秒来切分,一个 m3u8 放 6 个 ts 索引,那么至少就会带来 30 秒的延迟。如果减少每个 ts 的长度,减少 m3u8 中的索引数,延时确实会减少,但会带来更频繁的缓冲,对服务端的请求压力也会成倍增加。所以只能根据实际情况找到一个折中的点。

注意:HLS 在 PC 端仅支持safari浏览器,类似chrome浏览器使用HTML5 video标签无法播放 m3u8 格式,可直接采用网上一些比较成熟的方案,如:sewise-player、MediaElement、videojs-contrib-hls、jwplayer。

RTMP协议

RTMP 基于 flash 无法在 iOS 的浏览器里播放,但是实时性比 HLS 要好。所以一般使用这种协议来上传视频流,也就是视频流推送到服务器。


image.png

HTTP-FLV协议

HTTP-FLV 和 RTMP 类似,都是针对于 FLV 视频格式做的直播分发流。但,两者有着很大的区别。

  • 直接发起长连接,下载对应的 FLV 文件
  • 头部信息简单

现在市面上,比较常用的就是 HTTP-FLV 进行播放。但,由于手机端上不支持,所以,H5 的 HTTP-FLV 也是一个痛点。不过,现在 flv.js 可以帮助高版本的浏览器,通过 mediaSource 来进行解析。HTTP-FLV 的使用方式也很简单。和 HLS 一样,只需要添加一个连接即可:

<object type="application/x-shockwave-flash" src="xxx.flv"></object>

H5直播方案

  • 使用flv.js做直播:flv.js是来自Bilibli的开源项目。它解析FLV文件喂给原生HTML5 Video标签播放音视频数据,使浏览器在不借助Flash的情况下播放FLV成为可能。
  • 原理
    flv.js只做了一件事,在获取到FLV格式的音视频数据后通过原生的JS去解码FLV数据,再通过Media Source Extensions API 喂给原生HTML5 Video标签。(HTML5 原生仅支持播放 mp4/webm 格式,不支持 FLV)
    flv.js 为什么要绕一圈,从服务器获取FLV再解码转换后再喂给Video标签呢?原因如下:
    1、兼容目前的直播方案:目前大多数直播方案的音视频服务都是采用FLV容器格式传输音视频数据。
    2、FLV容器格式相比于MP4格式更加简单,解析起来更快更方便。

兼容方案

PC端
1、优先使用 HTTP-FLV,因为它延迟小,性能也不差1080P都很流畅。
2、不支持 flv.js 就使用 Flash播放器播 RTMP 流。Flash兼容性很好,但是性能差默认被很多浏览器禁用。
3、不想用Flash兼容也可以用HLS,但是PC端只有Safari支持HLS
移动端
1、优先使用 HTTP-FLV,因为它延迟小,支持HTTP-FLV的设备性能运行 flv.js 足够了。
2、不支持 flv.js 就使用 HLS,但是 HLS延迟非常大。
3、HLS 也不支持就没法直播了,因为移动端都不支持Flash。

参考链接:
H5直播入门(理论篇)https://juejin.im/post/5aaa34475188253640012847

相关文章

  • 几种直播协议比较

    几种直播协议的比较 HLS协议 HLS 协议本质还是一个个的 HTTP 请求 / 响应,所以适应性很好,不会受到防...

  • 常用直播协议的比较

    近两年,游戏、教育等直播类产品层出不穷,全方位满足人们的知识、休闲、游戏等需求。在直播中,我们经常发现,不同类型的...

  • 直播的一些记录

    功能描述: 在移动端浏览器上,收看直播的视频流。并做下载应用的引导。 直播协议,常用的有以下几种: RTMP: A...

  • 直播协议的选择与比较

    通常在做iOS平台直播的时候,有俩种直播协议可以选择:HLS和RMTP。 -HLS,是苹果实现的基于HTTP的流媒...

  • 常见直播协议、API 介绍与对比

    目前最常见的直播协议、API 有以下几种RTSPRTMPHTTP-FLVHLSWebRTC下面我们就来一一介绍和对...

  • 一篇文章告诉你什么是流媒体协议

    最近直播比较火,很多人都喜欢看直播,那一个直播系统里面都有哪些组成部分,都使用了什么协议呢? 无论是直播还是点播,...

  • 直播协议

  • 关于串口格式与报文格式

    《串口硬件分类》中已经说明了几种串口的类型,并在《串口通信协议》中说明了几种串口协议形式,这里就常用的串口协议进一...

  • 计算机网络题目

    几种协议分别属于哪一层传输层协议:TCP协议、UDP协议应用层协议:FTP、HTTP、SMTP网络层协议:IP协议...

  • RTSP协议转换RTMP直播协议

    RTSP协议也是广泛使用的直播/点播流媒体协议,以前的项目里实现了一个RTSP协议转换RTMP直播协议的程序,为的...

网友评论

      本文标题:几种直播协议比较

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