我有一个视频文件(.mp4、.mkv、.avi 或其他格式)和一个字幕文件 (.srt)。我想将字幕文件嵌入到视频文件中,以便我只有一个文件 - 视频文件与视频和字幕文件相反。
是否可以?如何?
slh*_*hck 24
带有FFmpeg 的免费跨平台解决方案,它执行比特流复制,因此即使对于大文件也不会超过几秒钟:
ffmpeg -i input.mp4 -i subtitles.srt -c:s mov_text -c:v copy -c:a copy output.mp4
Run Code Online (Sandbox Code Playgroud)
这适用于 MP4。请注意,某些字幕格式可能不会自动与所选的输出格式兼容,因此您必须在以下之后更改编解码器-c:s:
MP4:使用mov_text实现MPEG-4 Part 17的字幕编解码器(如上例所示)。
MKV:使用srt,subrip,ssa或ass。MKV 不支持mov_text.
AVI:嵌入字幕非常有问题。理论上他们支持 SubRip 和 SSA/ASS 字幕,但只能通过第三方软件。
有关容器及其支持的字幕格式的列表,请参阅 Wikipedia 。
使用 Handbrake 等专用视频编码程序将重新编码您的视频,这会降低其质量并可能需要您花费数小时进行编码 - 这就是您应该检查这些工具是否支持复制视频和音频比特流的原因。
MKVtoolnix是另一个易于使用的选项,因为您已经拥有所需的文件。您可以将它们组合成一个 MKV 容器,而无需更改原件。它还有一个很好的 GUI 来指导您完成组合过程。
我看到user1301428 提到了Handbrake,它也是一个非常常见/流行的工具。我不太熟悉它,但如果它不重新编码您的源 AVI,那么它应该很棒。