если я хочу использовать

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

а у меня одна группа .avi файлов пронумерована ?? to ??, и еще одна группа файлов .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 %%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 ответ1

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

Больше информации о расширении параметров.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .