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