美文网首页
常见直播协议、API 介绍与对比

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

作者: limengzhe | 来源:发表于2021-09-17 18:29 被阅读0次
    1. 目前最常见的直播协议、API 有以下几种

      • RTSP

      • RTMP

      • HTTP-FLV

      • HLS

      • WebRTC

      下面我们就来一一介绍和对比,小伙伴可根据自己的需求选择出最合适方案。

    2. RTSP 协议

      RTSP(Real-Time Stream Protocol)即实时流传输协议,1996 年由哥伦比亚大学、网景公司和 RealNetworks 公司共同提出。

      主要用于创建和控制终端之间的媒体会话。客户端可以发布 VCR 命令,例如播放,录制和暂停,以便于实时控制从服务器到客户端(视频点播)或从客户端到服务器(语音录音)的媒体流。

      RTSP 使用 TCP(传输控制协议)来维护端到端的连接,但传输时所用的网络通讯协议并不在其定义的范围内,大多数 RTSP 服务器使用 RTP (实时传输协议)和 RTCP(实时控制协议)来进行媒体流传输。

      优势:

      • 延迟低。

      劣势:

      • 需要通过第三方插件或转发才能在浏览器里播放。
    3. RTMP 协议

      RTMP(Real-Time Messaging Protocol)即实时消息传输协议,是 Adobe 公司在 2012 年提出的一种基于 TCP 的多媒体数据传输协议。

      主要用于通过互联网在 FlashPlayer 与一个服务器之间传输流媒体音频、视频和数据。

      RTMP 将音频(MP3 或 AAC)和 FLV1 视频封装成多媒体流,然后将流分割成一个个片段用于传输,片段的大小由客户端和服务器动态协商。音频数据的默认片段大小为 64 字节,视频数据和大多数其他数据类型的默认片段大小为 128 字节。

      优势:

      • 延迟低,稳定性高。

      劣势:

      • 需要通过 FlashPlayer 才能在浏览器中播放。而 FlashPlayer 已经被主流浏览器禁用。
    4. HTTP-FLV

      HTTP-FLV 是 RTMP 和 HTTP 的结合体。HTTP-FLV 将音频和视频数据封装成 FLV 格式,然后通过 HTTP 的方式传输给客户端。

      Bilibili 在 2016 年开源了 HTML5 Flash 视频(FLV)播放器 Flv.js,它采用 ES6 标准的原生 JavaScript 开发,无需浏览器支持 FlashPlayer。

      它的工作原理是在 JavaScript 中流式解析 flv 文件流,并实时转封装为 fmp4 ,通过媒体源扩展(Media Source Extensions)API,实现了 FLV 格式视频的播放。

      优势:

      • 延迟低。

      劣势:

      • 需要通过 FlashPlayer 或 Flv.js 才能在浏览器中播放。
    5. HLS

      HLS(HTTP Live Streaming)是由苹果公司在 2009 年推出的的基于 HTTP 的流媒体网络传输协议。最初是针对 iPhone、iTouch 和 iPad 等 iOS 设备而开发的。

      它的工作原理是将视频流裁剪成一个个小的 TS(Transport Stream)格式的视频片段,然后通过 HTPP 请求下载,每次下载一些,实现无缝播放。

      优势:

      • 可以直接在浏览器中播放(HTML5)。

      劣势:

      • 有一定延迟。

      下面是苹果公司的一个测试链接:

      http://devimages.apple.com.edgekey.net/streaming/examples/bipbop_4x3/gear2/prog_index.m3u8
      
    6. WebRTC

      WebRTC(Web Real-Time Communication)即网页即时通信,是一个支持浏览器进行实时语音对话视频对话的 API。于 2011 年 6 月 1 日由 Google 开源并在 Google、Mozilla、Opera 支持下被纳入万维网联盟的 W3C 推荐标准。

      传统的视频推流的技术实现一般是客户端采集视频数据,推流到服务器上,服务器再将视频数据推送到其他客户端上。

      但是 WebRTC 却截然不同,它可以在客户端之间直接搭建基于 UDP 的数据通道,经过简单的握手流程之后,可以在不同设备的两个浏览器内直接传输任意数据。

      优势:

      • 可以直接在浏览器中播放。

    参考资料

    相关文章

      网友评论

          本文标题:常见直播协议、API 介绍与对比

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