gpt4 book ai didi

c - AVCodec PTS 时间戳不从 0 开始

转载 作者:太空宇宙 更新时间:2023-11-04 04:54:35 24 4
gpt4 key购买 nike

我注意到对于某些视频文件,AVPacket 结构中返回的 PTS 时间戳不是从 0 开始,而是在一段时间后。例如。在 3.128 左右。我测试的 99% 的视频文件都有从 0 开始的 PTS 时间戳,但很少有文件有一些奇怪的时间戳从 3.128 或 1.2 或其他什么开始。我该如何处理这些案件?我是否应该只记录第一个数据包的 PTS 时间戳,然后从所有后续时间戳值中减去此 PTS 以获得基于 0 的 PTS 值?或者我应该如何处理这些非基于 0 的时间戳?感谢您的帮助!

最佳答案

Libavcodec/avformat 只是为您提供文件中的数据。不幸的是(或者幸运的是,这取决于您的观点),许多文件格式不需要时间戳从 0 开始。事实上,如果多个文件各自构成较长流的一部分并且您让它们从其他值开始可能很重要希望能够以非破坏性方式将它们重新组合在一起。

如果您想要基于 0 的时间戳,那么就像您所说的那样,您需要保存最低/第一个时间戳并从所有时间戳中减去该值。但是请注意,对于一些非常丑陋的格式(如 DVD 视频),时间戳在内容中间重置是很常见的,这甚至可能导致您的方法得到负时间戳。如果您预计自己可能会处理此类内容,则需要检测不连续性并对其进行修补。上次我使用 avcodec/avformat,它们没有自动为您执行此操作的功能,但它们现在可以了。如果您认为您可能需要,我会调查一下。

关于c - AVCodec PTS 时间戳不从 0 开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10570685/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com