如何将字幕嵌入电影文件?

如何将字幕嵌入电影文件?

我的电视只能播放嵌入在文件中的字幕(例如 MKV 或视频中的硬编码字幕)。

因此,给定一部某种格式(例如 MP4)的电影和一个类似 SRT 的字幕,我如何将它们组合成电视可以播放的内容?

答案1

简短回答

你可以使用合并apt-get install mkvtoolnix)创建一个Matroska 容器并在输出中包含字幕:

mkvmerge -o output.mkv input.mp4 subtitle0.srt subtitle1.srt

这不需要重新编码,所以速度非常快。

进一步定制

您可以设置每个字幕轨道的语言和名称:

mkvmerge -o output.mkv input.mp4 \
    --language 0:en --track-name 0:English english_subtitles.srt
    --language 0:es --track-name 0:Español spanish_subtitles.srt

请注意,我们对两种语言使用相同的轨道 ID(0:),它与输入视频轨道相对应。

需要--language正确编码。您可以使用以下命令列出所有允许的 ISO 639-2 和 ISO 639-1 代码:

mkvmerge --list-languages

其他实用功能

您还可以使用以下命令设置输出视频的标题:

--title "Your title"

我们可以检查所有字幕是如何添加到输出中的:

$ mkvmerge -i output.mkv
File 'output.mkv': container: Matroska
Track ID 0: video (MPEG-4p10/AVC/H.264)
Track ID 1: audio (AAC)
Track ID 2: subtitles (SubRip/SRT)
Track ID 3: subtitles (SubRip/SRT)

如果你真的想“刻录”视频中的字幕,你可以改用ffmpeg

答案2

尝试手刹。HandBrake 是一款开源、GPL 授权、多平台、多线程的视频转码器,适用于 MacOS X、Linux 和 Windows。它允许用户将字幕添加为电影的一部分,并可以选择打开或关闭字幕。有点像 DVD 电影字幕。

要从 Ubuntu PPA 安装 HandBrake:

  1. 在终端窗口中输入:sudo add-apt-repository ppa:stebbins/handbrake-releases 您的系统现在将获取 PPA 的密钥。
  2. 现在只需使用 apt-get 更新软件存储库列表,包括刚刚添加的 PPA:sudo apt-get update
  3. 打开“Ubuntu 软件中心”并检查“声音和视频”类别。您也可以通过点击“所有软件”选项右侧的小向下箭头来过滤结果,然后选择您的 PPA。

或者

如果你正在使用 Karmic (9.10) 或更高版本,你可以直接点击PPA 页面并选择您的 Ubuntu 版本。因此显示的 sources.list 条目可以直接添加到您的系统的软件源中:System Setting > Software Sources > Other Software(Tab)

答案3

我使用 avconv 添加它们,如下所示:

avconv -i The.Hunt.For.Red.October.1990.1080p.BluRay.x264.anoXmous_.mp4 -f srt -i The.Hunt.For.Red.October.1990.1080p.BluRay.x264.anoXmous_.spa.srt -c:v copy -c:a copy -c:s mov_text The.Hunt.For.Red.October.1990.1080p.BluRay.x264.anoXmous_subtitles.mp4

答案4

使用 ffmpeg:

ffmpeg -i "/tmp/toggle-android-lib-and-layout.mp4" -f srt -i "/tmp/toggle-android-lib-and-layout.srt" -c:v copy -c:a copy -c:s mov_text /tmp/t.mp4 -y

相关内容