在多个文件上使用 FFMPEG

在多个文件上使用 FFMPEG

如果我想使用

$ffmpeg -i video.avi -vf subtitles=subtitle.srt out.avi

我有一组编号为 ?? 到 ?? 的 .avi 文件,还有另一组共享相同标题的 .srt 文件

–– 看起来像这样:

$ [AnimeRG] Naruto Shippuden - 072 [720p] [x265] [pseudo].ass [AnimeRG] Naruto Shippuden - 072 [720p] [x265] [pseudo].mkv [AnimeRG] Naruto Shippuden - 073 [720p] [x265] [pseudo].ass [AnimeRG] Naruto Shippuden - 073 [720p] [x265] [pseudo].mkv ...

并无限延续——

我该如何使用“for;do;done”公式?

下面是其他人针对类似问题找到的解决方案;但它包含我的系统无法识别的语法。

$for %%a in ("*.mkv") do ffmpeg -i "%%a" -vf subtitles=%%a.ass "%%~na.mp4" pause

我的解决方案应该是这样的:

$for a in *.mkv;do ffmpeg -i "$a" -vf subtitles="$a.ass" "EmbeddedTest/${a%.mkv}.mp4";done

答案1

$a.ass例如,将导致[AnimeRG] Naruto Shippuden - 072 [720p] [x265] [pseudo].mkv.ass改用${a%.mkv}.ass

for a in *.mkv; do ffmpeg -i "$a" -vf subtitles="${a%.mkv}.ass" "EmbeddedTest/${a%.mkv}.mp4"; done

有关参数扩展的更多信息

相关内容