背景需求
需求比视频流协议更重要, 你想要什么, 什么可以满足你的需求, 这个很大程度上是需求在前, 选择使用什么视频流是比较靠后的.
目前 Live 系列互联网直播服务将全线支持 HLS,RTMP,HTTP-FLV,RTSP 视频流, 因此本地篇博文将分别对三个协议的直播流进行分析, 帮助有需要的你更好的结合自身选择对应的视频流来使用! 比如 LiveGBS 就是一个安防行业通过 GB28181 协议接入各个厂家安防摄像头, 硬盘录像机, 视频平台等设备, 转成互联网直播, 同时输出 HLS,RTMP,HTTP-FLV,RTSP 四种直播流, 适合各种终端直接播放.
正文分析
一图简单看出差别
流媒体协议 RTMP, HTTP-FLV, HLS 简单对比
RTMP 协议为流媒体而设计, 在推流中用的比较多, 同时大多 CDN 厂商支持 RTMP 协议.
HTTP-FLV 使用类似 RTMP 流式的 HTTP 长连接, 需由特定流媒体服务器分发的, 兼顾两者的优点. 以及可以复用现有 HTTP 分发资源的流式协议. 它的实时性和 RTMP 相等, 与 RTMP 相比又省去了部分协议交互时间, 首屏时间更短, 可拓展的功能也更多.
HLS 作为苹果提出的直播协议, 在 iOS 端占据了不可撼动的地位, Android 端也同时提供相应的支持.
具体分析
RTMP
RTMP, 全称 Real Time Messaging Protocol, 即实时消息传送协议. Adobe 公司为 Flash 播放器和服务器之间音视频数据传输开发的私有协议. 工作在 TCP 之上的明文协议, 默认使用端口 1935. 协议中的基本数据单元成为消息 (Message), 传输的过程中消息会被拆分为更小的消息块(Chunk) 单元. 最后将分割后的消息块通过 TCP 协议传输, 接收端再反解接收的消息块恢复成流媒体数据
优缺点
RTMP 主要有以下几个优点: RTMP 是专为流媒体开发的协议, 对底层的优化比其它协议更加优秀, 同时它 Adobe Flash 支持好, 基本上所有的编码器 (摄像头之类) 都支持 RTMP 输出. 现在 PC 市场巨大, PC 主要是 Windows,Windows 的浏览器基本上都支持 Flash. 另外 RTMP 适合长时间播放, 曾经有过测试, 联系 100 万秒, 即 10 天多连续播放没有出现问题. 最后 RTMP 的延迟相对较低, 一般延时在 1-3s 之间, 一般的视频会议, 互动式直播, 完全是够用的.
当然 RTMP 并没有尽善尽美, 它也有不足的地方. 一方面是它是基于 TCP 传输, 非公共端口, 可能会被防火墙阻拦; 另一方面, 也是比较坑的一方面是 RTMP 为 Adobe 私有协议, 很多设备无法播放, 特别是在 iOS 端, 需要使用第三方解码器才能播放.
HTTP-FLV
HTTP-FLV 将音视频数据封装成 FLV 格式, 然后通过 HTTP 协议传输给客户端. 理解 HTTP-FLV 协议, 这就话就是关键
优缺点
HTTP-FLV 依靠 MIME 的特性, 根据协议中的 Content-Type 来选择相应的程序去处理相应的内容, 使得流媒体可以通过 HTTP 传输. 相较于 RTMP 协议, HTTP-FLV 能够好的穿透防火墙, 它是基于 HTTP/80 传输, 有效避免被防火墙拦截. 除此之外, 它可以通过 HTTP 302 跳转灵活调度 / 负载均衡, 支持使用 HTTPS 加密传输, 也能够兼容支持 Android,iOS 的移动端.
说了这么多优点, 也来顺便说下 HTTP-FLV 的缺点, 由于它的传输特性, 会让流媒体资源缓存在本地客户端, 在保密性方面不够好. 因为网络流量较大, 它也不适合做拉流协议.
HLS
HLS 就是 "HTTP Live Streaming" 的缩写, 它诞生自 2009 年, QuickTime 和 iPhone3GS 黄金搭档下的一个标准, 一个意在颠覆流媒体产业的新协议.
它的工作原理简单来说就是把一段视频流, 分成一个个小的基于 HTTP 的文件来下载. 当媒体流正在播放时, 客户端可以根据当前网络环境, 方便地在不同的码率流中做切换, 以实现更好的观影体验.
HLS 的出现是为了解决苹果原生环境中的流媒体播放, 这个协议可以方便地让 Mac 和 iPhone 播放视频流, 不依赖 Adobe, 更不用去管什么标准委员会. 依赖自己, 永远是最大力量的保障.
优缺点
HLS 的优势:
Apple 的全系列产品支持: 由于 HLS 是苹果提出的, 所以在 Apple 的全系列产品包括 iPhone, iPad,Safari 都不需要安装任何插件就可以原生支持播放 HLS, 现在 Android 也加入了对 HLS 的支持.
穿透防火墙. 基于 HTTP/80 传输, 有效避免防火墙拦截
性能高. 通过 HTTP 传输, 支持网络分发, CDN 支持良好, 且自带多码率自适应, Apple 在提出 HLS 时, 就已经考虑了码流自适应的问题.
HLS 的劣势:
实时性差, 延迟高. HLS 的延迟基本在 10s+ 以上
文件碎片. 特性的双刃剑, ts 切片较小, 会造成海量小文件, 对存储和缓存都有一定的挑战
RTSP
RTSP 在体系结构上位于 RTP 和 RTCP 之上, 它使用 TCP 或 UDP 完成数据传输.
优缺点
RTSP 拥有和 RTMP 相仿的视频实时性. 遗憾的是目前 RTSP 不可以在 web 端直接播放, 必须用插件才可以实现 Web 端播放.
结合 LiveGBS
获取更多信息
安防流媒体互联直播 - QQ 交流群: 615081503 https://jq.qq.com/?_wv=1027&k=5pdZ4ab
国标 GB28181 无插件 LiveGBS-QQ 交流群: 947137753 https://jq.qq.com/?_wv=1027&k=5UDV5Pt
- Web: http://www.liveqing.com:8080/
- Copyright ? LiveQing.com 2016-2019
来源: http://www.bubuko.com/infodetail-3074699.html