我的电视只能播放嵌入在文件中的字幕(例如 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:
- 在终端窗口中输入:
sudo add-apt-repository ppa:stebbins/handbrake-releases
您的系统现在将获取 PPA 的密钥。 - 现在只需使用 apt-get 更新软件存储库列表,包括刚刚添加的 PPA:
sudo apt-get update
- 打开“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