Как объединить эти две команды FFmpeg в одну?

Как объединить эти две команды FFmpeg в одну?

Я использую ffmpeg для изменения нескольких .mp4файлов.

Сначала я использую эту команду, чтобы изменить язык по умолчанию с engна fr.

ffmpeg.exe -i "imput 1.mp4" -map 0 -c copy -disposition:a:0 0 -disposition:a:1 default "Output 2.mp4" 

Затем я хочу использовать эту команду для добавления мягких субтитров из .srtфайла в .mp4.

ffmpeg.exe -i "Input 1.mp4" -i "Input 2.srt" -c copy -c:s mov_text -metadata:s:s:0 language=fr "Output 1.mp4"

Эти две команды работают независимо, но я хотел бы объединить их в одну строку.

Я пробовал что-то подобное, но меняется только звук, на субтитры это никак не влияет.

ffmpeg.exe -i "Input 1.mp4" -i "Input 2.srt" -map 0 -c copy -disposition:a:0 0 -disposition:a:1 default -c:s mov_text -metadata:s:s:0 language=fr Output 1.mp4"

Я знаю, что что-то не так, но не могу понять, что именно.

Может ли кто-нибудь сказать мне, что не так с моим объединенным командованием?

Затем, как я уже говорил, я работаю над несколькими файлами (314 точно), и у каждого файла есть свое имя, и утомительно вручную менять имя файла каждый раз. Есть ли способ сделать это для каждого файла, присутствующего в каталоге?

решение1

Попробуйте сделать это внутри папки, где находятся видео и субтитры, откройте командную строку и используйте эту команду:

for %a in (*.mkv *.mp4) do ffmpeg -i "%a" -i "%~na.srt" -map 0 -map 1:s:0 -disposition:a:0 0 -disposition:a:1 default -c copy -metadata:s:s:0 language=fr "%~na_new.%~xa"

Должно создаться новое видео с тем же названием, что и у старого, но с приставкой «новое» в названии, а также измененным звуком и субтитрами.

Связанный контент