互联网监控直播-LiveGBS分发出RTMP、HLS、FLV、RTSP视频流说明介绍
背景需求
需求比视频流协议更重要,你想要什么,什么可以满足你的需求,这个很大程度上是需求在前,选择使用什么视频流是比较靠后的。
目前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![]()
互联网监控直播-LiveGBS分发出RTMP、HLS、FLV、RTSP视频流说明介绍的更多相关文章
- EasyNVR互联网监控直播分发出RTMP、HLS、HTTP-FLV视频流说明介绍
背景需求 需求比视频流协议更重要,你想要什么,什么可以满足你的需求,这个很大程度上是需求在前,选择使用什么视频流是比较靠后的. 目前Easy系列互联网直播服务将全线支持HLS.RTMP.HTP-FLV ...
- 网络流媒体协议的联系与区别(RTP RTCP RTSP RTMP HLS)
目录 网络流媒体协议的联系与区别(RTP RTCP RTSP RTMP HLS) 简结 RTP RTCP RTSP 区别与联系 RTSP.RTMP.HLS 区别与联系 关于直播 流媒体各协议层次图 基 ...
- RTMP & HLS
一,直播云架构 2. RTMP 协议 RTMP(Real Time Messaging Protocol)是Adobe Systems公司为Flash播放器和服务器之间音频.视频和数据传输开发的开放协 ...
- Java 监控直播流rtsp协议转rtmp、hls、httpflv协议返回浏览器
Java 监控直播流rtsp协议转rtmp.hls.httpflv协议返回浏览器 目录 需求背景: 一:了解音视频流协议: 二:方案一 rtsp 转rtmp 1.下载nginx + nginx-rtm ...
- RTMP HLS HTTP 直播协议一次看个够
直播从2016年一路火到了2017年,如今要在自己的App里加入直播功能,只要找一个现成的SDK就行了,什么拍摄.美颜.推流,一条龙服务.不过作为直播身后最重要的部分:推流协议,很多人并不是很清楚.如 ...
- EasyNVR H5直播流媒体解决方案前端构建之:如何播放自动适配RTMP/HLS直播播放
之前在进行EasyNVR多屏开发的时候,由于多屏功能不需要在手机端展示出来(pc多播放为RTMP,手机端播放为HLS),因此只注意到了引用videojs来进行rtmp的播放.由于不同项目需求不同,对h ...
- EasyDarwin如何支持点播和RTMP/HLS直播?EasyDSS!
2017年很长很长一段时间没有更新EasyDarwin开源项目了,虽然心里有很多EasyDarwin功能扩展的计划:比如同步录像.同步RTMP/HLS直播输出.拉模式转发优化.Onvif接入.GB28 ...
- pc/移动端(手机端)浏览器的直播rtmp hls(适合入门者快速上手)
一.直播概述 关于直播,大概的过程是:推流端——>源站——>客户端拉流,用媒介播放 客户端所谓的拉流就是一个播放的地址url,会有多种类型的流: 视频直播服务目前支持三种直播协议,分别是R ...
- Centos7 搭建Nginx+rtmp+hls直播推流服务器
1 准备工具 使用yum安装git [root~]# yum -y install git 下载nginx-rtmp-module,官方github地址 // 通过git clone 的方式下载到服务 ...
- [SRS流媒体]RTMP/HLS 直播服务器simple-rtmp-server安装
一个采用MIT协议授权的国产的简单的RTMP/HLS 直播服务器,其核心的价值理念在于简单高效. 使用方法: tep 1: build srs tar xf simple-rtmp-server-*. ...
随机推荐
- 如何用 FastAPI 和 RBAC 打造坚不可摧的安全堡垒?
扫描二维码 关注或者微信搜一搜:编程智域 前端至全栈交流与成长 发现1000+提升效率与开发的AI工具和实用程序:https://tools.cmdragon.cn/ 一.FastAPI 安全认证与 ...
- Hadoop入门学习总结系列文章目录
一.为何要学习Hadoop? 这是一个信息爆炸的时代.经过数十年的积累,很多企业都聚集了大量的数据.这些数据也是企业的核心财富之一,怎样从累积的数据里寻找价值,变废为宝炼数成金成为当务之急.但数据增长 ...
- C++ 习惯RAII思想
什么是 RAII RAII(资源获取即初始化,Resource Acquisition Is Initialization),作为 C++ 的一个重要编程范式,已经被贯彻于标准库的各个角落.RAII ...
- C++ 标准函数 。abort & typeid
简介 abort() 使程序直接报core dump错误 typeid() 判断对象是否是同一个对象的时候使用,感觉类似js里面的type什么鬼来着 比如 dynamic_cast强制类型转换指针 i ...
- ETL快速拉取物流信息
我国作为世界第一的物流大国,但是在目前的物流信息系统还存在着几大的痛点.主要包括以下几个方面: 数据孤岛:有些物流企业各个部门之间的数据标准不一致,难以实现数据共享和协同,容易导致信息孤岛. 操作繁琐 ...
- SciTech-Health-Dental: 铸造冠+锤造冠
锤造冠: 锤造全冠是应用合金片经冲压而成的壳状全冠修复体.有无缝冠和焊接冠二种, 优点是制作简单方便. 焊接冠: 表面有焊缝,机械性能差,制作不便,已少用. 应用现代焊接与融接科技,能不能重振&quo ...
- 在没有curl和wget情况下发送HTTP请求
Bash 的 /dev/tcp 功能为用户提供了一个直接的方式,通过 TCP 套接字发送 HTTP 请求,这一功能可以在没有额外工具的情况下执行简单的网络操作. 发送HTTP GET请求 #!/bin ...
- Rust:axum学习笔记(3) extract
接上一篇继续,今天学习如何从Request请求中提取想要的内容,用axum里的概念叫Extract. 预备知识:json序列化/反序列化 鉴于现在web开发中,json格式被广泛使用,先熟悉下rust ...
- 高阶篇:1.4)TRIZ创新算法
本章目的:掌握最基础的ARIZ-71的矛盾矩阵的运用 1.TRIZ概论 Triz,发明问题解决理论的拉丁文翻译的首字母缩写,由苏联发明家根里奇*阿奇舒勒于1946年开始,每年动用1500人的人力,在研 ...
- AI再强大,也不如人类员工用的爽?
最近刷到一个脱口秀,表演者调侃自己的领导最近把AI看成"全能员工"或"终极救星",甚至还没用过就信仰上头. 于是跟风投资建设了一套企业内部AI平台,搭建好之后呢 ...
