对于那些熟悉So...probably的人来说,这是一个非常基本的问题(我真的不是)。我知道你可以使用FFMPEG将多个视频合并成一个视频,但是如果每个视频都有自己的srt文件,分别保存在一个'subs‘文件夹中,而不包括在视频本身中,那该怎么办呢?
FFMPEG是否也可以将srt文件合并成一个文件(并重新计算时间戳),然后将其合并到最终的组合视频中?如果是这样,命令是什么?
例如,我有video1.mp4和video2.mp4。它们有相应的sub1.srt和sub2.srt。当video1.mp4和video2.mp4合并时,sub2.srt的时间戳当然现在将不同步,并且需要通过将video1.mp4的持续时间添加到各个时间戳来校正(即,如果video1是30秒长,并且sub2.srt中的第一个字幕出现在2秒标记处,则在组合之后,它现在应该出现在(30+2)=32秒标记处,依此类推。
如果它有帮助,所有的文件都是mp4的,并且具有相同的尺寸(720p)。
发布于 2021-05-28 16:46:16
虽然可能有一种(复杂的)方法来首先连接srt文件,但最简单的方法是首先组合成对的视频和文本,然后连接产生的容器文件。
中的字幕
# Assuming English for subtitle language
ffmpeg -i video1.mp4 -i sub1.srt -c copy -c:s mov_text -metadata:s:s:0 language=en -metadata:s:s:0 title=English 1.mp4-c copy将复制video1.mp4中的所有内容,而-c:s mov_text将把sub1.srt中的文本流格式化为mp4 (mov_text)的字幕。结果将写入1.mp4。
file 1.mp4
file 2.mp4
file 3.mp4
…中列出的结果容器文件
ffmpeg -f concat -safe 0 -i chapters.txt -c copy everything.mp4请参阅ffmpeg's concatenate demuxer
文档中提到的其他ffmpeg命令也可以处理不同的维度。
发布于 2021-10-25 18:03:56
无论出于什么原因,我必须在步骤4中分别显式地复制视频、音频和字幕流,否则我最终只能看到静默的视频。所以我的第四步看起来是这样的:
ffmpeg -f concat -safe 0 -i chapter.txt -c:v copy -c:a copy -c:s copy everything.mp4
https://stackoverflow.com/questions/61856623
复制相似问题