【问题标题】:Video player playback rate视频播放器播放速率
【发布时间】:2017-06-23 11:49:19
【问题描述】:

我了解 Android 和 iOS 设备中的视频播放器以视频编码速率解码流媒体内容。 视频编码和播放速率之间有什么关系吗?即正常播放(不使用x2,x0.5等设置)是否也会以编码率发生?

如果不是,那么播放速率是如何定义的?

谢谢! 问候, 约翰

【问题讨论】:

    标签: video streaming playback rate


    【解决方案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 的顺序解码,而且按此顺序流式传输它们是有意义的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-13
      • 1970-01-01
      • 1970-01-01
      • 2014-05-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多