视频播放器播放率

时间:2017-06-23 11:49:19

标签: video streaming playback rate

据我所知,Android和iOS设备中的视频播放器以视频编码速率解码流媒体内容。 视频编码和播放速率之间是否有任何关系?也就是说,正常播放(不使用x2,x0.5等设置)也会以编码率出现吗?

如果没有,那么如何定义播放速率?

谢谢! 问候, 约翰

1 个答案:

答案 0 :(得分:1)

我不完全确定你在这种情况下的编码率是什么意思,但它可能有助于理解大多数视频编码格式包括两个时间概念:

  • 解码时间
  • 演示时间

如果你看一些讨论,你会经常看到提到的PTS和DTS - 这些是解码时间戳和帧的显示时间戳。

演示时间戳很容易理解 - 这是需要显示帧的时间,以便观众按预期看到视频。

存在解码时间戳的原因还在于,许多编码器通过参考帧来压缩帧,并通过它们相对于这些帧的变化来描述其他帧。对于背景保持相当稳定的帧,这可以节省相当大的带宽,如您所想。

参考帧可以是前向和后向 - 换句话说,给定帧“X”可以通过参考来自帧“X-3”和“X + 3”的增量来描述。

这意味着视频播放器在想要呈现帧X时需要具有帧“X + 3”,因此解码帧“X + 3”所需的时间早于它需要呈现帧的时间

在经典的ffmpeg教程中有一个很好的描述:http://dranger.com/ffmpeg/tutorial05.html

本教程中的图表有助于以图形方式解释 - P帧是参考帧,B帧是它们与参考帧的差异所描述的帧:

  PTS:    1 4 2 3
  DTS:    1 2 3 4
  Stream: I P B B

I帧是一个完整的图像,P帧是基于前一个I帧的增量,B帧是增量,它们取决于前一帧和后一帧中的信息。

观众将(希望!)按照PTS时间的顺序观看视频:即上例中的1,2,3,4,但帧需要按照DTS的顺序进行解码,它也是有意义的是按顺序流式传输它们。