ffmpeg:concat视频和图像

Yos*_*sko 7 ffmpeg video-editing

我有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
Run Code Online (Sandbox Code Playgroud)

input.txt样子:

file 'E:\video1.mp4'
file 'E:\splitter.mp4'
file 'E:\video2.mp4'
Run Code Online (Sandbox Code Playgroud)

内容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
Run Code Online (Sandbox Code Playgroud)

input.txt样子:

file 'E:\video1.mp4'
file 'E:\splitter.png'
...
file 'E:\splitter.png'
file 'E:\video2.mp4'
Run Code Online (Sandbox Code Playgroud)

编辑:可能解决方案?

由于我所做的只是截屏,我不妨截取我的分割器图像.这样我就可以确定音频和视频编码,并且不会有任何问题合并,也不需要任何重新编码...我知道它可能听起来很愚蠢,但它可能会成功...

注意:我没有尝试过,因为我已经通过Openshot工作了.

Jar*_*red 1

我的猜测是这都是编解码器问题 - PNG 转换的 MP4 可能与真正的 MP4 的编解码器不同。

试试这个——不同编解码器的文件串联