FFMPEG batch for 具有多个输入的循环

FFMPEG batch for loop with multiple inputs

我们有:

test.mp3 test.mp4

我们想使用 ffmpeg 合并它

ffmpeg -i "test.mp3" -i "test.mp4" -c copy D:\test_final.mp4

问题是我们只需要它来处理大量视频。

我们目前拥有的:

for %%a in ("merge\*.*") do ffmpeg -i "%%a" -i "%%a" -c copy D:\%%~na

那么,正确的形式是什么?我不知道:/

merge中总是有同名的mp3和mp4文件。

你的东西看起来非常好,你没有准确描述为什么它不适合你。

为了更准确地匹配您想要的行:

  • 仅获取 *.mp3 个文件
  • 使用%%~pa%%~na获取路径和filename-only,但没有扩展名,然后在其末尾添加一个.mp4
  • 在生成的名称中添加一个 _final

如果这对您不起作用,请准确描述它是如何失败的。

for %%a in ("merge\*.mp3") do (
    ffmpeg -i "%%a" -i "%%~pa%%~na.mp4" -c copy D:\%%~na_final.mp4 )