9

我有 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。

4

1 回答 1

1

我的猜测是这完全是一个编解码器问题——PNG 转换的 MP4 可能与你真正的 MP4 的编解码器不同。

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

于 2013-08-26T20:15:27.460 回答