FFmpeg Batch 同时遍历两个不同文件夹中的文件
Posted
技术标签:
【中文标题】FFmpeg Batch 同时遍历两个不同文件夹中的文件【英文标题】:FFmpeg Batch loop through files in two different folders at the same time 【发布时间】:2020-11-20 02:54:49 【问题描述】:我在这样的两个文件夹中有文件
Video
record01.mkv
record02.mkv
Audio
audio1.avi
audio2.avi
Merged
我想运行一个循环以根据字母顺序将文件夹中的文件与一对一对应的文件组合起来(例如,“视频”文件夹中的第一个文件与“音频”文件夹中的第一个文件相结合,依此类推)
我需要使用的命令很简单:
ffmpeg -i "record01.mkv" -i "audio1.avi" -map 0 -map 1 -map -1:v -c copy ".\Merged\record01.mkv"
我尝试使用以下命令,但它不起作用(正如我所料,因为两个不同文件夹中的文件具有不同的名称)
FOR /R %%i IN (*.mp4) DO ffmpeg -i ".\Video\%%i" -i ".\Audio\%%i" -map 0 -map 1 -map -1:v -c copy ".\Merged\%%~dni.mkv"
谢谢!
【问题讨论】:
在 linux 上很好,我建议管道我不确定 Windowsls Video | ffmpeg -i
【参考方案1】:
有一个技巧可以并行读取两个文件(或一个文件和一个命令输出):一个输入流使用 for
循环,另一个输入流使用重定向加上 set /p
(这个必须是文件):
@echo off
setlocal enabledelayedexpansion
dir /b /s /on audio\*.avi > audioFiles
< audioFiles (for /f %%a in ('dir /on /b /s video\*.mkv') do (
set /p "audio="
echo %%a, !audio!
))
我相信您能够自己实现ffmpeg
命令。
【讨论】:
聪明!谢谢!以上是关于FFmpeg Batch 同时遍历两个不同文件夹中的文件的主要内容,如果未能解决你的问题,请参考以下文章
ffmpeg 命令用于从两个不同的视频和两个不同的音频创建最终视频
Windows下ffmpeg批处理遍历当前文件夹下所有特定格式文件(如MP4等)无损提取视频音频且生成文件存到原视频文件夹下同时跳过已经处理的文件
Windows下ffmpeg批处理遍历当前文件夹下所有特定格式文件(如MP4等)无损提取视频音频且生成文件存到原视频文件夹下同时跳过已经处理的文件
Windows下ffmpeg批处理遍历当前文件夹下所有特定格式文件(如MP4等)无损提取视频音频且生成文件存到原视频文件夹下同时跳过已经处理的文件