如何以可用格式从 MP4 文件中提取字幕轨道?

如何以可用格式从 MP4 文件中提取字幕轨道?

我有一个包含字幕轨道的 MP4 文件。当我使用以下方式提取它时

MP4Box -raw 3:output=track3 myfile.mp4

我得到一个.tx3g文件 - 半二进制格式。我的字幕编辑器不支持它,我不知道如何将其转换为可用的格式。

我在较新的 GNU/Linux 发行版上使用 Cinnamon。

答案1

GPAC/MP4Box 维护者在这里。请阅读此内容我们的维基百科上有关字幕的页面

可以轻松转换为 srt 或 vtt:

gpac -i myfile.mp4 -o subtitles.vtt

为了获得更好的支持,请访问我们的官方错误追踪。 谢谢!

答案2

用于ffmpeg.vtt 或 .srt:

ffmpeg -i your_file.mkv outfile.vtt

提取字幕

答案3

这是一个相当丑陋的方法 - 但它有效:

  • 忘记这个.tx3g文件。

第一阶段:

  • 如果你还没有,请下载/安装MKVToolnix
  • 开始mkvtoolnix-gui
  • 将您的myfile.mp4源添加到新的多路复用会话中
  • 仅保留字幕轨道(通过清除其他轨道的复选框)
  • 设置不会覆盖任何内容的目标文件名,例如myfile_subs.mks
  • 混合它!

mkvmerge注意:您可以在命令行上实现相同的功能,例如:

mkvmerge \
    --output myfile_subs.mks --no-audio --no-video --no-global-tags \
    --language 2:en '(' my_file.mp4 ')' 

(对于以 0 为基础的轨道索引为 2 的英语字幕;请用与您的文件相关的值替换。)

第二阶段:

  • 启动终端。

  • 跑步mkvextract myfile_subs.mkv tracks 0:subs.srt

  • 你应该看到类似这样的内容:

    Extracting track 0 with the CodecID 'S_TEXT/UTF8' to the file 'subs.srt'. Container format: SRT text subtitles
    Progress: 
    

    进度条会上升到 100%,此时您就完成了。

  • 您的字幕是subs.srt

  • 删除myfile_subs.mks

相关内容