我有 2 个要连接的视频(相同分辨率,相同编码)文件,我想在它们之间插入一些文本 3 秒,作为拆分器。我在 Windows 上使用 ffmpeg 执行此操作。
我感兴趣的可选想法:
- 避免在此过程中重新编码视频
- 在每个部分的交叉点有淡入/淡出
目前,我将文本制作为图像(但我愿意接受其他建议)。假设我有:
- 视频1.mp4:6:33
- splitter.png(与 video1.mp4 相同的分辨率)
- 视频2.mp4:16:44
我已经尝试了一些东西,但我总是遇到同样的问题:视频是 23:20(视频 1 + 3 秒 + 视频 2),但 3 秒的间隔只是最后一个视频 1 帧冻结而不是我的图像/文本...
任何想法我做错了什么或我应该如何做到这一点?
这是我到目前为止所尝试的:
方法一:图片转视频
将图像转换为 3 秒 mp4 电影,然后将其与其他图像连接(解复用器):
ffmpeg -loop 1 -f image2 -i splitter.png -r 30 -t 3 splitter.mp4
ffmpeg -f concat -i input.txt -codec copy output.mp4
看起来input.txt
像:
file 'E:\video1.mp4'
file 'E:\splitter.mp4'
file 'E:\video2.mp4'
的内容在splitter.png
中可见splitter.mp4
,但在 中不可见output.mp4
。此外,我不完全确定 splitter.mp4 尊重与 2 个视频完全相同的编码,我不知道如何验证这一点。
方法2:插入图像帧
直接在图像上运行 concat (demuxer) 90 次(30fps -> 3 秒)
ffmpeg -f concat -i input.txt -codec copy output.mp4
看起来input.txt
像:
file 'E:\video1.mp4'
file 'E:\splitter.png'
...
file 'E:\splitter.png'
file 'E:\video2.mp4'
编辑:可能的解决方案?
由于我所做的只是截屏,我不妨截屏我的分离器图像。这样我就可以确定音频和视频编码,合并不会有任何问题,也不需要任何重新编码......我知道这听起来可能很愚蠢,但它可能会成功......
注意:我没有尝试过,因为我已经使用过 Openshot。