首页 文章

ffmpeg:concat视频和图像

提问于
浏览
7

我有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 回答

相关问题