合并视频文件和字幕

Posted

技术标签:

【中文标题】合并视频文件和字幕【英文标题】:Merge video files and subtitles 【发布时间】:2019-10-28 15:59:29 【问题描述】:

我有一些文件

chapter1.mp4
chapter1.srt
chapter2.mp4
chapter2.srt
chapter3.mp4
chapter3.srt

我知道如何合并视频文件,但是字幕呢,我不想将其硬编码为视频。是否可以合并并在单个 .srt 文件中设置适当的时间?

【问题讨论】:

使用 ffmpeg 你可以制作一个包含 mp4 和 srt 的 mkv 容器文件。 嗨@zakari。您如何合并视频文件?也许你的工具也可以合并 srt ......正如 Smile4ever 提到的,ffmpeg 也是一个可以同时做这两者的工具,它真的很强大,但有一个命令行界面。 -itsoffset offset (input) 参数听起来很有希望…… 【参考方案1】:

您可以通过 ffmpeg 做到这一点。

虽然可能有一种(复杂的)方法可以先连接 srt 文件,但最简单的方法是先组合视频和文本对,然后再连接生成的容器文件。

    复制chapter1.mp4中的所有内容并添加chapter1.srt中的字幕
# Assuming English for subtitle language
ffmpeg -i chapter1.mp4 -i chapter1.srt -c copy -c:s mov_text -metadata:s:s:0 language=en -metadata:s:s:0 title=English chapter1-srt.mp4

-c copy 将复制可能在 chapter1.mp4 中的所有内容,-c:s mov_text 会将来自 chapter1.srt 的文本流格式化为 mp4 (mov_text) 的字幕。结果将写入chapter1-srt.mp4

    对第 2 章和第 3 章重复相同的命令

    使用生成的文件名创建一个文本文件(例如 chapters.txt)

chapter1-srt.mp4
chapter2-srt.mp4
chapter3-srt.mp4
    连接文本文件中列出的生成的容器文件
ffmpeg -f concat -safe 0 -i chapters.txt -c copy everything.mp4

见ffmpeg's concatenate demuxer

【讨论】:

以上是关于合并视频文件和字幕的主要内容,如果未能解决你的问题,请参考以下文章

字幕和电影合成

如何将一个H264视频,AAC音频,一个中文字幕,一个英文字幕,合成一个高清MP4中英双字幕的视频文件?

如何将字幕合成视频文件里面

怎么把字幕放到电影里 把字幕嵌入视频

在 iOS 中动态包含视频文件的字幕?

muxerdemuxer muxer是什么?视频封装解封装(逆封装)