我有.m2ts视频文件(VBR,持续时间= 1小时)。
如果我想从20分钟开始播放此文件,我需要知道应该从哪个字节读取此文件。
M2TS是标准TS,在同步字节(0x47)之前有4字节时间戳,但我不明白如何使用它。请在我的视频文件中查看同步字节之前的时间戳:
0D 9E E2 02
35 8B 62 28
1D 77 E2 4F
05 64 62 76
二维50 E2 9C
15 3D 62 C3
3D 29 E2 E9
25 16 63 10
有人可以解释如何使用时间戳来搜索.m2ts文件吗?
答案 0 :(得分:3)
M2TS
没有 4字节的时间戳。
它具有的是4字节TP_extra_header
,包含2-bit
复制权限指示符加上30-bit
到达时间戳(ATS),分辨率为27 MHz
。
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| C | ATS |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| TS [188 bytes] |
| |
| . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
由于BDAV
格式用于存储,因此它使用可变速率(VBR)传输流而不是广播中发现的典型恒定速率(CBR)流来节省空间。记录到达时间,以便能够convert the variable stream into a constant rate和T-STD兼容播放。
此时间戳将每隔(2^30 - 1) / 27000000 ~= 39.768
秒翻转一次。
例如:1D77E24F ∧ 3FFFFFFF
是十进制494395983 / 27000000 ~= 18.32
秒。
我对BD并不熟悉,但我认为有关m2ts
文件的更多信息会保存在clpi
和mpls
附带的文件中。如果您只有m2ts
文件,那么您必须通过PCR寻找。