音视频直播流程及常见视频流协议介绍
音视频直播流程介绍
常见视频流协议介绍
HLS
HLS是苹果公司实现的基于 HTTP 的流媒体传输协议,全称 HTTP Live Streaming,可支持流媒体的直播和点播,主要应用在 iOS 系统,为 iOS 设备(如 iPhone、iPad)提供音视频直播和点播方案。
- HLS(HTTP Live Streaming)->缓存ts文件,同时服务器会建立一个m3u8的索引文件来维护最新的ts片段
- 一个ts文件大概是一个10秒的视频片段
- 实际情况下会有2-3个ts文件的延时,大概是20~30s
- 跨平台性:支持iOS/Android/浏览器,通过http请求即可,通用性强。
- 穿墙能力强:由于HLS是基于HTTP协议的,基本不会遇到被防火墙屏蔽的情况。
- 切换码率快(清晰度):自带多码率自适应,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应>不同的数据速率。客户端可以很快的选择和切换码率,以适应不同带宽条件下的播放。
- 负载均衡:HLS基于无状态协议(HTTP),客户端只是按照顺序使用下载存储在服务器的普通TS文件,做负责均衡如同普通的HTTP文件服务器的负载均衡一样简单。
- 实时性差:苹果官方建议是请求到3个ts切片文件之后才开始播放。所以一般很少用HLS做为互联网直播的传输协议。假设列表里面的包含5个ts文件,每个ts文件包含5秒的视频内容,那么整体的延迟就是25秒。苹果官方推荐的ts时长时10s,所以这样就会大概有(3 x 10)秒的延迟。
- 文件碎片化严重:对于点播服务来说, 由于ts切片文件通常较小, 海量碎片在文件分发, 一致性缓存, 存储等方面都有较大挑战。
优点
- 不用考虑防火墙或者代理的问题
- 采用短时长,分片播放,客户端可以平滑的切换码率,适应不同的带宽
- 在IS0有较好的支持
RTMP
- RTMP是实时消息传输协议,Real Time Messaging Protocol,是 Adobe Systems 公司为 Flash 播放器和服务器之间音频、视频和数据传输开发的开放协议。协议基于 TCP,是一个协议族,包括 RTMP 基本协议及 RTMPT/RTMPS/RTMPE 等多种变种。RTMP 是一种设计用来进行实时数据通信的网络协议,主要用来在 Flash/AIR 平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。
- RTMP是由Adobe公司提出的,是一种设计用来进行实时数据通信的网络协议,属于TCP/IP五层中的应用层,基于TCP协议,默认使用端口1935。RTMP中的基本数据单元称为消息(Message),传输的过程中消息会被拆分为更小的消息块(Chunk)单元,再将分割后的消息块通过 TCP 协议传输,接收端再将接收到的消息块恢复成流媒体数据。RTMP协议一般传输的是 flv,f4v 格式流(注意:RTMP 是协议,flv、f4v 是视频封装格式)。
- 延时较短,应用在直播领域
- 支持加密
RTMP特点:
- RTMP 是专为流媒体开发的协议,对底层的优化比其它协议更加优秀,同时它 Adobe Flash 支持好,基本上所有的编码器(摄像头之类)都支持 RTMP 输出。支持 Flash 的浏览器都能播放 RTMP 协议传输的流。
- RTMP 的延迟相对较低,一般延时在 1-3s 之间,一般的视频会议,互动式直播,是完全是够用的。
- 基于 TCP 传输,使用非公共端口,可能会被防火墙阻拦。
- RTMP 为 Adobe 私有协议,很多设备无法播放,特别是在 iOS 端,需要使用第三方解码器才能播放;
- 直接播放 RTMP 流需要浏览器支持 Flash。
RTSP
- Real Time Streaming Protocol,实时流传输协议
- RTSP是TCP/IP协议体系中的一个应用层协议,该协议定义了一对多应用程序如何有效通过IP网络传送多媒体数据。RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或RTP完成数据传输。HTTP与RTSP相比,HTTP传送HTML,而RTP传送的是多媒体数据。HTTP请求由客户机发出,服务器做出响应;RTSP可以是双向的,即客户机和服务器都可以发出请求。
RTSP与RTP最大的区别在于:RTSP是一种双向实时数据传输协议,它允许客户端向服务器端发送请求,如回放、快进、倒退等操作。当然RTSP可基于RTP来传送数据,还可以选择TCP、UDP、组播UDP等通道来发送数据,具有很好的扩展性。它是一种类似于HTTP协议的网络应用协议。
HTTP
HTTP stream是各家自己定义的http流,应用于国内点播视频网站。
HTTP用于点播,本质上还是文件分发,实时性差。
音视频直播流程及常见视频流协议介绍相关推荐
- 百度云音视频直播服务(LSS)的使用流程
音视频直播LSS(Live Streaming Service)是一个直播PaaS服务平台,旨在帮助企业及个人开发者快速搭建自己的直播平台及应用,关于LSS的相关介绍请采参考百度云官网指导文档:htt ...
- 实时音视频直播带货中影响用户体验的Bug根因
VOL 131 05 2020-06 今天距2021年209天 这是ITester软件测试小栈第131次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周一.三.五早上 ...
- 关于音视频直播技术的总结
流媒体协议 流媒体协议是服务器与客户端之间通信遵循的规定.当前网络上主要的流媒体协议如图所示. 直播平台参数对比 主流互联网视音频平台直播服务的参数对比如图所示: 直播技术架构图: 可以看到直播的流程 ...
- 音视频直播--技术架构
前言 今天和大家讲一下音视频直播技术架构.之前的关注点主要放在客户端如何采集音频数据上,经过这两天的思考,我觉得应该先给大家讲一下音视频直播技术架构,这样更容易从整体上理解视频直播技术是如何运转的,之 ...
- 搬砖: web音频流转发之音视频直播
web音频流转发之音频源 音频 javascript html5 2.1k 次阅读 · 读完需要 16 分钟 前言 web音频流转发之音视频直播 web音频流转发之AudioNode app能直播 ...
- 移动端实时音视频直播技术详解(一):开篇
移动端实时音视频直播技术详解(一):开篇 1.引言 随着互联网用户消费内容和交互方式的升级,支撑这些内容和交互方式的基础设施也正在悄悄发生变革.手机设备拍摄视频能力和网络的升级催生了大家对视频直播领域 ...
- JavaCV音视频开发宝典:rtp点到点音视频传输TS流(一对一音视频直播)
<JavaCV音视频开发宝典>专栏目录导航 <JavaCV音视频开发宝典>专栏介绍和目录 前言 在开始之前,我们需要了解一点rtp协议相关的知识. 当然了,相信很多小伙伴应 ...
- 微信直播服务器架构,音视频直播--技术架构—易龙天
今天和大家讲一下音视频直播技术架构.之前的关注点主要放在客户端如何采集音频数据上,经过这两天的思考,我觉得应该先给大家讲一下音视频直播技术架构,这样更容易从整体上理解视频直播技术是如何运转的,之后再逐 ...
- 【音视频第6天】基础知识-移动端实时音视频直播技术详解和开源工程WebRTC的技术原理和使用浅析
本文是系列文章中的第1篇,本系列文章的大纲如下: <移动端实时音视频直播技术详解(一):开篇> <移动端实时音视频直播技术详解(二):采集> <移动端实时音视频直播技术详 ...
最新文章
- typedef 函数指针
- 连接远程数据库ORACLE11g,错误百出!
- 有效前沿—让你的投资收益最大化
- SQL总结(一)基本查询
- python全栈面试题_python面试题大全(一)
- 【CVPR 2020】Learning RoI Transformer for Oriented Object Detection in Aerial Images
- Hadoop2.2.0中HDFS的高可用性实现原理
- 持久化存储与HTTP缓存
- 修改整个app的字体
- 基于jquery读取csv
- 计算机类专业必备的软件,拿来把你
- 如何在Vue引入静态图片?
- android系统开机默认设置修改记录
- Word2016“此功能看似已中断 并需要修复”问题解决办法
- cocos creator运行正常,微信开发者工具中报错XXX is not defined.
- Erdaicms旅游网站程序微信和手机端分销系统正式上线发布啦
- archpr 压缩文件暴力破解
- android 邮箱格式设置,Android对邮箱格式的验证
- 天数最少的年份_年月日格式有哪几种 年、月、日
- Mysql王者晋级之路第一章Mysql安装
热门文章
- 新蓝海之门,或将由数据信托来打开!
- 农村土地确权之调查公示 —— 地块分布图制作说明
- 2020年12月-第02阶段-前端基础-CSS Day07
- SCD-缓慢变化维-拉链表
- 简单好听的id_简单好听的微信id(精选500个)_见过的最好看的微信id_简单好记好看的微信号 - 第4页...
- 牛年第一瓜!阿里女员工被初中文化男子骗走500多万!开豪车连骗12名女性,被判无期!...
- mysql hash索引 btree索引_HASH索引做等值查询会很快,BTree索引做范围查询比较快...
- Java中如何将中文转换成拼音字母
- 2019第十届蓝桥杯大赛软件类省赛C++ B组真题题解
- elementUI中折叠面板箭头图标位置调整