美文网首页
web直播之路 ———— 简介

web直播之路 ———— 简介

作者: HelloHL | 来源:发表于2018-10-18 11:20 被阅读0次

介绍

自从前几年斗鱼、熊猫TV等直播服务火起来后,直播逐渐进入人们的视野,再加上抖音,快手,天猫直播购物的兴起,企业逐渐将直播纳入了自己营销的系统中,去年直播抓娃娃更是处于风口,获得了一大批用户。
单纯从技术角度来讲,直播技术主要应用为以下几类:

  1. RTMP协议
    RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。
    支持该协议的软件包括Adobe Media Server/Ultrant Media Server/red5等
    eg: 香港卫视:rtmp://live.hkstv.hk.lxdns.com/live/hks
  2. HttpFlv
    HttpFlv 就是 HTTP+FIV ,将音视频数据封装成FLV格式,然后通过 HTTP 协议传输给客户端。理解HttpFlv协议,这就是关键。
    eg: http://192.168.4.230/abc.flv
  3. HLS
    HTTP Live Streaming(HLS)是苹果公司实现的基于HTTP的流媒体传输协议,可实现流媒体的直播和点播。它的工作原理简单来说就是把一段视频流,分成一个个小的基于HTTP的文件来下载。当媒体流正在播放时,客户端可以根据当前网络环境,方便地在不同的码率流中做切换,以实现更好的观影体验。
    eg: 香港卫视:http://live.hkstv.hk.lxdns.com/live/hks/playlist.m3u8
  4. WS协议
    HTML5开始提供的一种浏览器与服务器进行全双工通讯的网络技术,属于应用层协议。它基于TCP传输协议,并复用HTTP的握手通道。
    eg: ws://192.168.4.230/123456

接下来让我们对比下这四者的区别

RTMP

优势:

1. 实时性高
RTMP实时性可控制在3s中之内,网络状况良好时,延时可控制在0.8s左右
2. 支持加密
RTMPE和RTMPS为加密协议。虽然HLS也有加密,但在PC平台上flash对RTMPE/RTMPS支持比HLS要好。
3. 编码兼容性高
RTMP实际上是现在编码器输出的工业标准协议,基本上所有的编码器(摄像头之类)都支持RTMP输出。原因在于PC市场巨大,PC主要是Windows,Windows的浏览器基本上都支持Flash,Flash又支持RTMP支持得非常好。(由于Flash诸多问题,新版浏览器已经不提倡使用Flash,尤其是chrome,页面默认禁止Flash播放)
4. 稳定性高
在PC平台上flash播放的最稳定方式是RTMP,如果做CDN或者大中型集群分发,选择稳定性高的协议一定是必要的。HTTP也很稳定,但HTTP是在协议上稳定;稳定性不只是服务端的事情,在集群分发,服务器管理,主备切换,客户端的支持上,RTMP在PC分发这种方式上还是很有优势。
5. 系统容错
容错有很多种级别,RTMP的集群实现时可以指定N上层,在错误时切换不会影响到下层或者客户端,另外RTMP的流没有标识,切到其他的服务器的流也可以继续播放。HLS的流热备切换没有这么容易。若对于直播的容错要求高,譬如降低出问题的概率,选择RTMP会是很好的选择。
6. 可监控
在监控系统或者运维系统的角度看,流协议应该比较合适监控。HTTP的流监控感觉没有那么完善。这个不算绝对优势,但比较有利。

劣势

1. 播放兼容性差
RTMP最大软肋,因为是Adobe的私有协议,很多设备都无法直接播放,比如iOS,需要外挂第三方解码器,由此会带来发热、耗电等问题。
HTML5也是无法直接播放RTMP,因此你看到的很多手机网页上的直播,是由下面HLS来推流的。
不过PC端软件一般喜欢采用RTMP播放流媒体
2. 协议复杂
RTMP协议比起HTTP复杂很多,导致性能低下。
3. 有累积延迟
流协议做缓存不方便。譬如点播,若做RTMP流协议,边缘缓存RTMP会很麻烦。如果是HTTP,缓存其实也很麻烦,但是HTTP服务器的缓存已经做了很久,所以只需要使用就好。这是为何点播都走HTTP的原因。
3. Cache麻烦
技术一定要知道弱点,RTMP有个弱点就是累积误差,原因是RTMP基于TCP不会丢包。所以当网络状态差时,服务器会将包缓存起来,导致累积的延迟;待网络状况好了,就一起发给客户端。这个的对策就是,当客户端的缓冲区很大,就断开重连。

HLS

优势

  1. 客户端支持简单, 只需要支持 HTTP 请求即可, HTTP 协议无状态, 只需要按顺序下载媒体片段即可.
  2. 使用 HTTP 协议网络兼容性好, HTTP 数据包也可以方便地通过防火墙或者代理服务器, CDN 支持良好.
  3. Apple 的全系列产品支持, 由于 HLS 是苹果提出的, 所以在 Apple 的全系列产品包括 iphone, ipad, safari 都不需要安装任何插件就可以原生支持播放 HLS, 现在, Android 也加入了对 HLS 的支持.
  4. 自多码率自适应, Apple 在提出 HLS 时, 就已经考虑了码流自适应的问题.

劣势

  1. 相比 RTMP 这类长连接协议, 延时较高, 难以用到互动直播场景.
  2. 对于点播服务来说, 由于 TS 切片通常较小, 海量碎片在文件分发, 一致性缓存, 存储等方面都有较大挑战.

HttpFlv

优势

1. 性能很高:
HTTP的性能没得说,协议简单,各种HTTP高性能服务器也完善。如果分发的量特别大,譬如点播视频网站,没有直播的实时性要求,HTTP协议是最好选择。
2. 没有碎片:
HTTP比HLS没有碎片,HTTP分发大文件会比小文件分发方便很多。特别是存储,小文件的性能超低,是个硬伤。
3. 穿墙:
互联网不可能不开放HTTP协议,否则就不叫互联网。所以任何端口封掉,也不会导致HTTP流看不了。(不过RTMP也能穿墙,用RTMPT协议)。

劣势

1. 实时性差
基本上没有实时性这个说法。
2. 原生支持不好
就PC上flash对于HTTP流支持还可以,Android/IOS上似乎只能mp4,总之移动端对于HTTP的支持不是很完善。

WS

优势

1. 延迟低:
延迟在100ms左右,用户感受无延迟
2. 适配多平台
主流浏览器都支持此协议,兼容安卓、Ios、windows、mac多平台
3. 省时省力
一套代码支持多平台
4. 高并发
WS协议相对于其他协议来讲,并发量会高很多,占用服务端资源少
5. 可监控
WS协议本质也是TCP协议,三次握手的情况下,开发人员很容易对此进行监控

劣势

1. 编码兼容率不好
2. 需要用户端对传输的数据进行解析,转化为应用级的数据

相关文章

  • web直播之路 ———— 简介

    介绍 自从前几年斗鱼、熊猫TV等直播服务火起来后,直播逐渐进入人们的视野,再加上抖音,快手,天猫直播购物的兴起,企...

  • Flutter Icon

    ✨✨✨✨✨ 魏什么_多喝水 Flutter 之路 阿里图库 简介 Flutter 中,可以像 web 开发一样使用...

  • Web简介

    Web: 蜘蛛网,万维网(www,world wide web)的简称,webpage网页,website网站。w...

  • WEB简介

    开发工具 我们主要用的 开发工具有 chrome 、 sublime 、 photoshop 浏览器(显...

  • WEB简介

    一、含义 world wide web - 全球广域网- 万维网基于超文本和HTTP的分布式图形信息系统 浏览器...

  • 直播简介

    直播中运用到的技术:视频、音频、图形处理,视频压缩,CDN分发,及时通讯。 一个完整的直播app应该包含的功能: ...

  • 秒懂前端web学习之路

    秒懂前端web学习之路

  • AWVS介绍

    AWVS(Acunetix Web Vulnerability Scanner)简介 WVS(Web Vulner...

  • HTML5基础第一讲

    2>本讲内容主要分为三块,web简介,html入门,文本标签; web简介 此阶段主要偏理论,让我们知道web的发...

  • JMeter基础系列(十四) JMeter测试Web服务

    14.1 Web服务简介 什么是Web服务 【Web服务】即Web Service。Web服务是一种服务导向架构的...

网友评论

      本文标题:web直播之路 ———— 简介

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