词典

什么是开始时间?

当你的文件包含一个名为 Start Time 的字段时,这意味着什么?继续阅读,了解它代表什么,以及为什么 Start Time 的值甚至可能是负数。

start-time

“开始时间”是文件内部时钟上,流应当开始播放的时间点。在大多数文件中,这个时间点就是 0,但也不一定非要是 0;它的数值告诉你,第一帧画面或第一个音频采样在时间线上应处于什么位置。

哪些文件包含它以及该数值从何而来

“开始时间”在 MP4、MOV、AVI、MKV 等视频文件以及电视节目录制常用的 MPEG 传输流中最为重要,音频文件中也包含这一信息。一个文件可以包含多条流,如画面、声音,有时还有字幕;每条流都有自己的开始时间,同时文件整体也会有一个开始时间。

该数值由生成此文件的程序写入,例如编码器、录制软件或相机,而不是由用户手动设置。

同样的信息还会以另一种形式出现,通常标记为 PTS,即 Presentation Time Stamp(显示时间戳)。“开始时间”以秒为单位,而起始 PTS 则记录的是该流自有时钟的“计时刻度”,每个刻度的长度由名为 Time Base 的配套字段决定。两者标记的是同一时刻。

该数值的格式

时间单位为秒,通常会打印出多位小数:

  • 0.000000 - 常见情况,流从文件开头开始
  • 0.021333 - 几百分之一秒的小偏移量
  • 1.400000 及更大值 - 在广播录制中很常见,时钟沿用输入流的时间,而不是从 0 重新开始
  • 负值,表示该流被标记为在文件时间 0 点之前稍早就已开始

小的偏移量和负值通常并不是故障。压缩音频编码器在输出真实声音之前,需要一小段“预热”采样,这段前导必须在某处被记录下来;开始时间中的偏移量就是文件记录这一点的方式,以便播放器既能丢弃这段前导,又能保持声音与画面对齐。这并不意味着有帧丢失。

它的重要性

此字段在实际使用中的重要性体现在同步上。如果文件中画面和声音声明了不同的开始时间,能读取并遵从这两者的播放器会让它们保持同步,而忽略这些时间的应用则会让声音恰好偏移相应的时间量。看上去没有明显原因、仅相差零点几秒的“对不上嘴型”问题,很大程度上都可以追溯到文件中某处的开始时间设定。

在编辑时这也很重要。剪切、拼接或重新封装文件时会丢弃或重写这些时间戳,因此一个从录制中裁出的片段可能会出现字幕逐渐漂移,或者剪辑点最终落在你设置位置前后片刻的情况。非零的开始时间也解释了为什么两个程序对同一文件的时长计算结果会不同,因为一个可能量到最后一个时间戳,另一个则会减去开始时间。

该字段不包含任何形式的个人信息。