直播原理_基础

直播原理:(按顺序)

  • 通过PC / Android / IOS 端采集
  • H.263/AAC 压缩编码, 用于大多数的直播编码。
  • 字幕叠加
  • 推流
  • CDN
  • PC / Android / IOS 回放
格式\浏览器ChromeFirfoxSafari
mp4(兼容性最好)支持支持支持
webm支持支持
hls支持
flv(B站的视频格式)
所用协议:     对应视频格式
HLS协议        -> hls格式
RTMP协议       -> flv格式
HTTP-FLV协议   -> flv格式

因此 hls 和 flv 视频格式比较适合做直播

对于HLS协议
提供一个M3U8索引文件,给html中的video标签
video解析M3U8文件,而M3U8中存的是很多片段,而这些片段是一个直播流的分段
M3U8文件中有很多索引(.ts 文件),每个对应时间一个播放时长,然后浏览器会以这些时间和为依据,去重新更新M3U8文件
Ps. M3U8文件内部可以嵌套M3U8 文件

M3U8 分为 动态列表(live playlist)静态列表(几乎不用)全量列表(vod playlist)<- (M3U8文件不会变化的列表)

M3U8 文件 是一个纯文本文件。 第一行就是M3U8版本,对于浏览器解析,必须注意版本。
EXTINF: %d %d 代表的是下面的连接请求的时间 与浏览器更新时间有关
EXT-X-MEDIS-SEQUENCE 代表动态列表的序号,每次+1
EXT-X-PLAYLIST-TYPE:VOD 是全量列表中用 代表的是点播
EXT-X-ENDLIST 全量列表中的 代表结束

.ts 文件
.ts文件内部有一个PAT包,指引你找到一个PMT的包
PMT包会告诉你哪些是音频,哪些是音频。
很多的TS组成PES
TS再按照视频音频文件分别组成一个一个有顺序的帧
PAT,PMT,PES 组成 .ts 文件

HLS协议(好用但有延时)
RTMP协议(实时消息传输协议)

如果是通过客户端采集,大多用RTMP协议 效率稍微高一点
如果是web端口,大多用WebRTC协议

源到客户端用的是TCP方式传输,传输过程中也是flv格式

也有的用到HTTP-FLV协议传输,这个低延时同时:
  1. 可以再一定程度上避免防火墙的干扰(例如:有的机房只允许通过80端口通过)
  2. 可以很好的兼容HTTP 302跳转,做到灵活调度
  3. 可以使用HTTPS做加密通道
  4. 很好的支持移动端(Android,IOS)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值