如何更改 MP4 中 EIA-608 字幕的偏移量?

如何更改 MP4 中 EIA-608 字幕的偏移量?

我有一个包含 H.264 视频、AAC 音频和 EIA-608 隐藏式字幕的 MP4 文件:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'file.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf57.83.100
  Duration: 00:11:26.02, start: 0.000000, bitrate: 4952 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], Closed Captions, 4818 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 125 kb/s (default)
    Metadata:
      handler_name    : SoundHandler

然而,字幕显示早了大约2秒。

问题在于,正如你所见,ffmpeg 无法识别eia_608可以使用命令进行操作的“流” -map(例如这个问题)。因此,多次输入文件以延迟重新混合字幕会导致以下错误:

Stream map '1:s' matches no streams.
To ignore this, add a trailing '?' to the map.

并且显然-itsoffset在每种情况下对视频的影响都与对字幕的影响一样大。

那么,如何eia_608在不重新编码的情况下为 MP4 文件中的字幕添加轻微延迟?

相关内容