Http Live Streaming ts段不以关键帧开头

时间:2012-07-24 22:10:24

标签: http-live-streaming keyframe mpeg2-ts

我正在使用苹果的http直播流媒体直播视频到ipad / iphone。其中一个重要步骤是将传输流分割为多个ts段以及播放列表。根据苹果的文件,推荐的ts段持续时间是10秒。但是,持续时间越长意味着延迟越多,所以我试图将此持续时间减少到2秒甚至1秒。

Apple文档还要求在关键帧边界之间进行分割,这意味着每个ts分段应该从关键帧开始,以便它可以独立播放。这是冲突的部分,它几乎是不可能的,也浪费了传输流每隔一两秒就有一个关键帧。所以我的问题是,如果ts段不是以关键帧开始的话,http直播是否仍会有效?

1 个答案:

答案 0 :(得分:3)

视频流非常容易每隔一两秒就有一个关键帧。例如,广播电视通常每半秒钟就有一个关键帧。编码器的配置参数将被称为“GOP”(图片组)大小或关键帧间隔。

通过使用更频繁的关键帧(实现相同质量需要更多字节)来降低编码效率,但它确实提高了搜索性能。

直接回答您的问题:如果ts段不以关键帧开头,则HLS将无法正常工作。这有两个原因。

  1. 必须能够寻找任何段并拥有可立即解码的有效数据。

  2. 必须能够在任何段边界处切换不同的比特率。不能引用不同的流,因为缓存的数据无效。