让 FFmpeg 进行递归扫描并输出到静态文件夹

让 FFmpeg 进行递归扫描并输出到静态文件夹

我如何更改我的 FFmpeg 脚本 .batch 文件以将 Video.Mkv 输出到脚本同一目录中名为“FIXED”的文件夹。

Mk Fixed
for /R %%f IN (*.mkv) do ffmpeg -i "%%f" -map 0:m:language=English? -c copy "%%~nf.MKV"

目前,它会扫描主文件夹和子文件夹中的任何 Mkv,并仅保留英文音轨,但它会将所有 Mkv 输出到同一文件夹(作为脚本),而不是静态文件夹“Fixed”

我有另一个脚本可以完成我需要的工作,但无法让它与递归扫描子文件夹一起工作以进行批量扫描并将其输出到正确的文件夹。

Mk Fixed
for %%a in ("*mkv*") do ffmpeg -i "%%a" -map 0:0 -c:v copy -map 0:3 -c:a copy "Fixed\%%~na".mkv

如果我尝试将“fixed\%%~nf.Mkv”添加到我的第一个脚本中,我得到了

[matroska,webm @ 0000018fb8518840] File ended prematurely

如果我甚至可以让它将目录(从源)到输出文件夹中的(目标))结构保留下来,那就太好了。

--回复我已经修改了我的脚本

mkdir Fixed
for /R %%f IN (*.mkv) do ffmpeg -i "%%f" -map 0:m:language=English? -c copy "Fixed\%%~nf.mkv"

这可行,但我仍然无法让输出包含子文件夹结构。

我希望 FFMpeg 能够扫描子目录并转换视频文件。很好地维护文件夹 strikeer

我错误地应该包含更多信息。操作系统 Windows 10 Pro 目录结构 C:\Users\User\Desktop\Convert(包含需要转换的文件)FFFMPEG 和 Script.Bat 文件的文件夹以及需要转换的文件的子文件夹。

Example C:\Users\User\Desktop\Convert\Tv Show\Show 1\Season 1\Show.mkv
Goal C:\Users\User\Desktop\Convert\Fixed\Tv Show\Show 1\Season 1\Show.mkv 

答案1

我最终使用了一个程序来获得我需要的结果“FFmpeg Batch AV Converter”,它允许我运行我的脚本并添加一个选项,将源文件夹结构保留在输出目录中。程序右下角有一个选项。感谢大家的帮助,我仅使用 bat 文件并没有得到我期望的结果。在此处输入图片描述

相关内容