m3u8文件格式解析

原因:上篇博客简单分析了一下FFmpeg针对HLS拉流的简单流程,其中可知重点为m3u8文件的获取以及解析,故在此分析m3u8文件格式。

概述:用户通过RTMP协议将数据流推送到服务器,在服务器中通过转码器将RTMP协议转换成HLS协议,随后用户通过HLS协议进行拉流观看,转换成HLS的原因主要考虑为HLS的ABR切换,这就需要每个分片的起始的IDR帧在PTS上面必现要对齐如下:不同的分辨率对应不同的码率,但是每个切片的起始IDR的PTS必现对齐.

使用HLS直播过程中延迟也比较大,一般10s左右,HLS的延迟主要由如下构成:

延迟=生成一个切片的时长 +(0-1个)td(td=EXT-X-TARGETDURATION,简单理解为客户端获取切片的时间间隔)+(0-n个)启动切片(苹果官方推荐生成3个切片后才开始播放,一般2个切片即可)+客户端拉流播放延迟.

在解决延迟问题上看到有人提出了使用http中的Transfer Encoding:chunked属性,这样可以在ts没有完全切片完成时可以先播放切片完成的数据。这里就涉及到了http的长连接问题,另开博客。

回归原题,m3u8就是HLS协议的一部分,m3u8就是用UTF-8编码的m3u文件,该文件由苹果公司提出,主要用于HLS(HTTP LIVE Streaming)实时流传输协议中。用户通过m3u8文件获取到特定的数据流然后进行拉流等其他操作。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值