【问题标题】:Audio/video synchronization, TS MPEG2;H264/AVC, understanding PTS in Handbrake音视频同步,TS MPEG2;H264/AVC,了解Handbrake中的PTS
【发布时间】:2011-01-18 20:12:28
【问题描述】:

同步一直让我着迷,或者更准确地说:为什么一个 .ts 可以被媒体播放器同步观看,而重新组合的解复用音频+视频不同步。

所以我试图理解这一点,以及可以做些什么来防止它。

我已阅读以下内容: https://trac.handbrake.fr/wiki/LibHandBrakeSync 以及 sync.c 的来源(也可在 wiki 上找到)

BitStreamTools 也写了一篇关于该主题的 Theory 101(但我无法链接,因为我是新用户,抱歉)

虽然我认为我对 PCR/PTS 的理解(在概念上)是正确的,但我很难理解 handbrake 出色的 A/V 同步论文。

我的问题是:是否有某种直观的(可以是简短的、简短的或更长的,只要)a/v 同步的解释吗?虽然我知道如果音频或视频 pts 损坏(不连续性?),可以从 PCR 重新计算 PTS,但手刹似乎并不依赖于此,而是依赖于它的内部 PTS。 0, += 1/fps (~=5), 10, 15, ....

是否可以通过修复所有音频和视频 PTS 值(并以相同的偏移量倾斜所有 DTS 来重新计算 pts 偏移量并更正 .ts(二进制)),这样播放器就不会“用完帧” ,可以这么说),因此有一个可以解复用的 .ts,然后隔离的轨道同步(如果放回一起)?

编辑: 还是无法通过使用 PCR 重新计算给定 .ts 中的所有 PTS 值来修复?虽然我了解某些帧/音频可能在广播中损坏,因此无法正确呈现,但我将保留此处理(例如,如果视频损坏并具有相应的音频部分,则删除视频,如果音频包损坏等)到以后,为了讨论,我假设所有帧都完好无损。 (但是 PTS 值总是正确的,或者什么?)

附录: 我对手刹 A/V 论文的看法是这样的: 在“预期”100 处,偏移量计算为视频 pts (100) - 音频 pts (0) - 内部 PTS,以使音频达到相同的呈现时间,从而给出 99 的 pts 偏移量。在 105 处,偏移量将是 105-5 = 100,而不是 99,但我们继续使用 99 作为偏移量,因为不需要重新计算(100-99 = 1. 1/fps

我几乎可以肯定我完全错了,但是请有人指出我正确的方向吗?

  • 乔什

【问题讨论】:

    标签: video synchronization dts pts


    【解决方案1】:

    音视频同步的概念要深得多。我推荐的第一读是下面的论文。

    http://downloads.bbc.co.uk/rd/pubs/reports/1996-02.pdf

    我不会在这里重复所有内容 - 但本质上,每个编码器都会记录时间戳并将其标记在各自的音频和视频上。稍后,当解码器播放它时,它会做两件事 - 第一,确保解码器自己的时钟被编码器的时钟“奴役”,第二,它确保每张图片都显示在屏幕上,并且音频帧在相应的时间准确地呈现给扬声器时间发生。这是音频与视频保持同步的唯一也是最好的方式。这些时间戳称为 PTS/DTS 值,其分辨率为 90 kHz 时钟。

    了解随着时间的推移时钟会出现偏差,但由于只参考了准确的时间,因此解码器播放完全按照相同的时间顺序。

    现在主要的问题是解码器的时钟需要保持在编码器时钟的控制/同步中。在 MPEG 中所做的第一件事是在 27 MHz 处使用更高的精度(高 300 倍)。此外,这需要在中间的任何传输路径期间保持一致。 (这称为时钟恢复过程)。

    下面是另一篇很好的论文,解释了时钟恢复/同步过程的工作原理。

    https://www.soe.ucsc.edu/sites/default/files/technical-reports/UCSC-CRL-98-04.pdf
    http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.86.1016&rep=rep1&type=pdf

    这篇最终论文很好地整合了所有内容。
    http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.50.975&rep=rep1&type=pdf

    请记住 - 基于 PCR 和 PTS/DTS 的音频视频同步使数字电视广播非常严格,与互联网流媒体中使用的任何其他流媒体方法大不相同。这对于使其 24x7 流式传输发挥作用至关重要。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-15
      • 1970-01-01
      • 2014-11-08
      • 2015-11-05
      • 2021-10-20
      • 1970-01-01
      • 2012-12-16
      • 2015-11-02
      相关资源
      最近更新 更多