【问题标题】:FFMPEG batch for loop with multiple inputs具有多个输入的 FFMPEG 批处理循环
【发布时间】:2017-06-25 22:07:27
【问题描述】:

我们有什么:

测试.mp3 测试.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 文件。

【问题讨论】:

    标签: batch-file ffmpeg batch-processing


    【解决方案1】:

    你所拥有的东西看起来相当不错,但你没有准确描述如何它不适合你。

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

    • 仅获取 *.mp3 文件
    • 使用%%~pa%%~na 仅获取路径和文件名,但没有扩展名,然后在其末尾添加.mp4
    • 在结果名称中添加_final

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

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

    【讨论】:

    • 效果很好! thx 很多 :) 以及如何删除旧的?只是 DEL %%aDEL %%~pa%%~na.mp4 不起作用。
    • 拒绝编辑,因为传递给程序的各种选项不是问题/问题的一部分。传递正确的参数取决于海报。我只是回答如何获取正确的文件名。
    • @JackBrown 请注意默认的stream selection 行为不一定总是选择正确的流。我编辑了这个答案以避免这种情况,但 abelenky 不喜欢任何其他人触摸他们的答案并将其还原。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-26
    • 1970-01-01
    相关资源
    最近更新 更多