Mp4视频中奇怪的NTSC帧时间戳

问题描述 投票:0回答:2

我正在研究在Android Samsung平板电脑上拍摄的mp4视频。我已经使用MediaCodec和MediaExtractor来获取有关它的一些详细信息,并发现了一些对我没有意义的有趣的东西。 NTSC视频似乎为1080p / 29.97fps。我列出了帧列表以及MediaExtractor.SampleTime信息。这是列表:

0-KEY timestamp: 0
1- timestamp: 36711  diff:36711
2- timestamp: 70022  diff:33311
3- timestamp: 103322  diff:33300
4- timestamp: 136655  diff:33333
5- timestamp: 169955  diff:33300
6- timestamp: 203300  diff:33345
7- timestamp: 236588  diff:33288
8- timestamp: 269955  diff:33367
9- timestamp: 303244  diff:33289
10- timestamp: 336577  diff:33333
11- timestamp: 369855  diff:33278
12- timestamp: 403166  diff:33311
13- timestamp: 436511  diff:33345
14- timestamp: 469800  diff:33289
15- timestamp: 503111  diff:33311
16- timestamp: 536477  diff:33366
17- timestamp: 569733  diff:33256
18- timestamp: 603055  diff:33322
19- timestamp: 636388  diff:33333
20- timestamp: 669700  diff:33312
21- timestamp: 703000  diff:33300
22- timestamp: 736311  diff:33311
23- timestamp: 769633  diff:33322
24- timestamp: 802944  diff:33311
25- timestamp: 836311  diff:33367
26- timestamp: 869577  diff:33266
27- timestamp: 902933  diff:33356
28- timestamp: 936211  diff:33278
29- timestamp: 969522  diff:33311
30-KEY timestamp: 1002833  diff:33311

有趣的事实是,帧的持续时间变化超出我的预期。我以为持续时间应该是1 /(30/1001)毫秒〜33.366ms。但是我可以看到,例如第一帧是〜36.711ms。对我而言,更有趣的是第30个帧(从零开始)始于1.002833秒。它不应该从1.001秒开始吗?有人可以推荐我一些有关数字形式的NTSC视频的文章吗?我是否错过了重要的内容,或者示例中的时间戳不符合标准?最初,我在考虑是否能够计算要从跳过的多个帧中寻找的流时间。假设我要跳过mp4流的27帧。我应该寻求什么时间?最后,我查看了帧列表,想知道发生了什么:)

video mp4 mediacodec ntsc
2个回答
1
投票

您的思考过程已经开始,但是您缺少一件事。大多数软件糟透了。您的意思是对的,但是谁编写了产生mp4的软件,却不在乎或不知道如何正确打包文件。可悲的是,大多数野外的视频文件都是这样的。

尝试平均所有持续时间,它可能确实接近30000/1001


0
投票

[感谢大家的回复,我深表歉意,我得到的信息是29.97,但是在有机会观看另一个相同类型的视频之后,我发现这肯定是一帧可变帧率的视频。 (第二个视频的一帧时长为466333us)无论如何,由于它是实时捕获的视频(不是静态图片或类似内容的演示),所以我看不出为什么帧时长不会以倍数变化固定帧速率。例如,例如frame0 = 33.366ms和frame1 = 66.732(33.366 * 2)。想知道将这样的视频转码成不同的帧率格式(例如23/24/25 / 29.97:)

有多么容易
© www.soinside.com 2019 - 2024. All rights reserved.