Jos*_*osh 13 video synchronization dts pts
同步一直让我着迷,或者更确切地说:为什么媒体播放器可以同步查看.ts,而重新组合的多路分解音频+视频不同步.
所以我试图理解这一点,以及可以做些什么来防止它.
我已经阅读了以下内容:https: //trac.handbrake.fr/wiki/LibHandBrakeSync和sync.c的源代码(也可以在wiki上找到)
BitStreamTools也写了关于这个主题的理论101(但我无法链接,因为我是新用户,抱歉)
虽然我认为我对PCR/PTS的理解是(概念上)正确的,但我很难跟上手刹的优秀A/V同步纸.
我的问题是:是否有一些直观的(可能是简短的,短的或更长的,同样长的)a/v同步的解释?虽然我知道如果音频或视频pts被破坏(不连续?),可以从PCR重新计算PTS,手刹似乎不依赖于此,而是依赖于它的内部PTS.0,+ = 1/fps(〜= 5),10,15,....
是否有可能通过修复所有音频和视频PTS值来重新计算pts偏移并校正.ts(二进制)(并且使用相同的偏移量倾斜所有DTS,因此播放器不会"耗尽帧",所以因此,有一个可以被解复用的.ts,然后隔离的轨道同步(如果放回去)?
编辑:或者不可能通过使用PCR来重新计算给定.ts中的所有PTS值?虽然我知道有些帧/音频可能在广播中被损坏而无法正确显示,但我会留下处理(如删除视频,如果它被损坏并有相应的音频部分,插入x ms静音,如果音频包被损坏等等以后,为了讨论起见,我假设所有帧都完好无损.(但那么PTS值总是正确的,或者是什么?)
附录:我对手刹A/V纸的看法是:在"预期"100处,偏移量计算为视频点(100) - 音频点(0) - 内部PTS,将音频带到同一个演示文稿时间,因此给出了99的偏移量.在105处,偏移量将是105-5 = 100,而不是99,但我们继续使用99作为偏移量,因为不需要重新计算(100-99 = 1.1/fps < 100毫秒).在150处,随着视频点的减少,再次计算pts偏移,而不是增加...
我几乎是肯定的,我对此完全错了,但是有人能指出我正确的方向吗?
Dip*_*hta 20
音频视频同步的概念要深刻得多.我推荐的第一个读物是以下论文.
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&代表= REP1&类型= PDF
最后的论文将所有事情放在一起很好.
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.50.975&rep=rep1&type=pdf
请记住 - 基于PCR和PTS/DTS的音频视频同步使得数字电视广播非常严格,并且与互联网流媒体中使用的任何其他流媒体方法有很大不同.这对于使24x7流媒体正常运行至关重要.
归档时间: |
|
查看次数: |
26812 次 |
最近记录: |