如果我想使用
$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