小白入门音视频第十二天

1.HLS协议

 1.1 简介

        HTTP Live Streaming(缩写是 HLS)是一个由苹果公司提出的基于 HTTP 的流媒体网络传输协议。它的工作原理是把整个媒体流分成一个个小的基于 HTTP 的媒体分片来下载,每次只下载一些分片。在开始一个流媒体会话时,客户端会下载一个包含媒体分片的索引文件,即 M3U playlist 文件(m3u8),用于寻找可用的媒体分片。

        HLS 中,索引文件可以嵌套,一般只有一级索引二级索引;媒体流封分片装格式只支持 MPEG-2 传输流(ts)、WebVTT [WebVTT]文件或 Packed Audio 文件。HLS 中,索引文件可以嵌套,一般只有一级索引和二级索引;媒体流封分片装格式只支持 MPEG-2 传输流(ts)、WebVTT [WebVTT]文件或 Packed Audio 文件。

        下图为HLS总体框架:

1.2 m3u8

        M3U8 即播放索引文件,也称为 Playlist,是由多个独立行组成的文本文件,必须通过 URI(.m3u8 或 .m3u) 或者 HTTP Content-Type 来识别 (application/vnd.apple.mpegurl 或 audio/mpegurl)。

        每行由用 \n 或者 \r\n 来标识换行。每一行可以是一个 URI、空白行或是一个 以# 号开头的字符串。

        以 # 开头的是 tag 或者注释,以 #EXT 开头的是 tag, 其余的为注释, 在解析时应该忽略。URI 表示一个 ts 分片地址或是 Playlist 地址。URI 可以用绝对地址或者相对地址,如果使用相对地址,那么是相对于当前 Playlist 的地址。有些 tag 带有属性值,多个属性用逗号分隔。

1.3 协议规定

        视频的封装格式是 TS。视频的编码格式为 H264,音频编码格式为 MP3、AAC 或者 AC-3。除了 TS 视频文件本身,还定义了用来控制播放的 m3u8 文件(文本文件)。

1.4 TS文件   

  1. TS层: ts 包大小固定为 188 字节,ts 层分为三个部分:ts header、adaptation field、payload。 ts header 固定 4 个字节;adaptation field 可能存在也可能不存在,主要作用是给不足 188 字节的数据做填充;payload 是 pes 数据。
  2. PES层pes 层是在每一个视频/音频帧上加入了时间戳等信息,pes 包内容很多,我们只留下最常用的。
  3. ES层es 层指的就是音视频数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深蔚蓝i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值