将视频和字幕文件合并为一个视频?


14

我有一个视频文件(.mp4,.mkv,.avi或其他格式)和一个字幕文件(.srt)。我想将字幕文件嵌入视频文件,以便只有一个文件-与视频和字幕文件相反的视频文件。

可能吗?怎么样?


1
可以关闭的软嵌入式潜水器是可行的方法(但是AVI可能无法实现);硬质子确实很烦人,添加它们不仅会导致质量下降,而且如果没有更大的损失就无法去除它们。
卡兰

Answers:


8

MKVtoolnix是另一个易于使用的选项,因为您已经有了所需的文件。您可以将它们合并到MKV容器中,而无论如何都不会更改其原件。它也有一个不错的GUI来指导您完成合并过程。

我看到user1301428提到过Handbrake,这也是一种非常常见/受欢迎的工具。我不太熟悉它,但是如果它不重新编码您的源AVI,那么它应该很棒。


22

FFmpeg的免费跨平台解决方案,它可以进行位流复制,因此即使对于大型文件,也不需要花费几秒钟的时间:

ffmpeg -i input.mp4 -i subtitles.srt -c:s mov_text -c:v copy -c:a copy output.mp4

这适用于MP4。请注意,某些字幕格式可能不会自动与所选的输出格式兼容,因此您必须在以下时间更改编解码器-c:s

  • MP4:使用mov_text实现MPEG-4 Part 17的字幕编解码器(如上例所示)。

  • MKV:使用srtsubripssaass。MKV不支持mov_text

  • AVI:嵌入字幕非常有问题。从理论上讲,它们仅支持第三方软件支持SubRip和SSA / ASS字幕。

有关容器及其支持的字幕格式列表,请参见Wikipedia 。

使用专用的视频编码程序(例如Handbrake)将对视频进行重新编码,这会降低质量,并且可能需要花费数小时进行编码-这就是为什么您应该检查工具是否支持复制视频和音频比特流的原因。


1
我发现-f srt有时候很有必要,否则很棒!
史蒂文·彭妮

1
如果您的字幕文件是*.vtt格式文件,请使用以下-c:s webvtt选项:ffmpeg -i input.webm -i input.vtt -c:s webvtt -c:v copy -c:a copy output.webm
user3405291

0

您可以使用手刹。在“字幕”选项卡中,您只需选择字幕文件,然后启动编码。


2
这将对视频进行重新编码,这将导致a)花费大量时间,b)降低质量。
slhck

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.