我有2个视频(相同的分辨率,相同的编码)文件,我想连接,我想在它们之间插入一些文本3秒,作为分割器 . 我在Windows上用ffmpeg做这个 .
我感兴趣的可选想法:
-
避免在此过程中重新编码视频
-
在每个部分的交叉处有淡入/淡出
现在,我将文本作为图像(但我对其他建议持开放态度) . 比方说我有:
-
video1.mp4:6:33
-
splitter.png(与video1.mp4相同的分辨率)
-
video2.mp4:16:44
我尝试了一些事情,但我总是遇到同样的问题:视频是23:20(视频1 3秒视频2),但3秒间隙只是最后一个视频1帧冻结而不是我的图像/文本.. .
任何想法我做错了什么或我应该如何做到这一点?
这是我到目前为止尝试的内容:
方法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
中不可见 . 另外,我知道如何验证 .
方法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工作了 .
1 回答
我猜这是所有的编解码器问题 - PNG转向MP4可能与您的真实MP4不同 .
试试这个 - concatenation of files of different codecs .