1

我有 .m2ts 视频文件(VBR,持续时间 = 1 小时)。
如果我想从 20 分钟开始播放这个文件,我需要知道我应该从哪个字节读取这个文件。
M2TS 是标准 TS,在同步字节(0x47)之前有一个 4 字节的时间戳,但我不明白如何使用它。请在我的视频文件中查看同步字节之前的以下时间戳:
0D 9E E2 02
35 8B 62 28
1D 77 E2 4F
05 64 62 76
2D 50 E2 9C
15 3D 62 C3
3D 29 E2 E9
25 16 63 10
有人可以解释一下如何使用时间戳在 .m2ts 文件中查找?

4

1 回答 1

4

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) 流以节省空间。记录到达时间是为了能够将可变流转换为恒定速率和符合 T-STD 的流进行播放。

此时间戳将每秒钟翻转一次(2^30 - 1) / 27000000 ~= 39.768

例如:1D77E24F ∧ 3FFFFFFF以十进制494395983 / 27000000 ~= 18.32秒为单位。

我对 BD 不是很熟悉,但我认为有关这些m2ts文件的更多信息保存在随附的文件中clpimpls如果您只有m2ts文件,则必须通过 PCR 查找。

于 2015-09-02T15:06:53.203 回答