当第一个视频没有音轨时,使用 ffmpeg 连接视频会产生静音视频

当第一个视频没有音轨时,使用 ffmpeg 连接视频会产生静音视频

我有3个mp4文件:

  • 1.mp4 - 有视频,无音频
  • 2.mp4 - 包含视频和音频
  • 3.mp4 - 包含视频和音频

我已经创建了一个用于连接的剪辑文件(clips.txt):

file '1.mp4'
file '2.mp4'
file '3.mp4'

我运行以下命令行:

ffmpeg -f concat -i "clips.txt" -c:a aac -b:a 160k -y "out.mp4"

生成的文件有视频没有音频,大概是因为1.mp4没有音轨。

如果我重新排列 clips.txt,使 1.mp4 不是第一个,则 out.mp4 有一个音轨。

有没有办法强制 ffmpeg 使用音频?我猜它必须为任何无声视频制作无声音轨。

谢谢!

答案1

对于那些偶然发现这个问题并且想要和我一样实现同样目标的人,我采用了如下方法解决:

ffmpeg -i "1.mp4" -f lavfi -i aevalsrc=0 -shortest -y "new_1.mp4"

这句话的意思是:

  • 取 1.mp4(即没有音频的视频片段)(-i“1.mp4”)
  • 生成所需的最小静默(-f lavfi -i aevalsrc=0 -shortest)
  • 输出结果(-y“new_1.mp4”)

从这里我像以前一样进行连接,但将 clips.txt 中的“1.mp4”替换为“new_1.mp4”

相关内容