为什么在读取VUI时会收到无效的num_units_in_tick和time_scale?

时间:2016-07-19 16:17:00

标签: h.264

我正在阅读视频可用性信息,它对于所有29.97fps文件都是正确的,但对于25fps文件,我得到了错误的值。

num_units_in_tick我得到771而time_scale得到3892314307.

该标准对fps没有任何影响:

if( timing_info_present_flag )
{
    num_units_in_tick                  u (32)
    time_scale                         u (32)
    fixed_frame_rate_flag              u (1)
}

为什么我能够从一个文件中读取正确的值,而不是从另一个文件中读取正确的值?

编辑: NALU:

00 00 00 01 67 64 00 28 AD 84 3F FF C2 1F FF E1
0F FF F0 87 FF F8 43 FF FC 21 FF FE 10 FF FF FF
FF FF FF FF FF 08 7F FF FF FF FF FF FF FF 2C C5
01 E0 11 3F 78 0A 10 10 10 1F 00 00 03 03 E8 00
00 C3 50 94

1 个答案:

答案 0 :(得分:0)

问题出在emulation byte。如果我们看看最后10个字节,我们有:

00 00 03 03 E8 00 00 C3 50 94

第一个03是模拟防止字节,应该跳过它。然后我们有num_units_in_tick = 1000和time_scale = 50000。