1

В Windows 10, что такое простая команда для последовательного объединения нескольких файлов видео и субтитров с различными последовательными именами файлов с помощью ffmpeg? Я делаю вручную

    ffmpeg -i "moviename part 1.mp4" -i "moviename part 1.srt" -c copy "temp01.mkv"
    ffmpeg -i "moviename part 2.mp4" -i "moviename part 2.srt" -c copy "temp02.mkv"
    ffmpeg -i "moviename part 3.mp4" -i "moviename part 3.srt" -c copy "temp03.mkv"
    ffmpeg -i "moviename part 4.mp4" -i "moviename part 4.srt" -c copy "temp04.mkv"
    ffmpeg -i "moviename part 5.mp4" -i "moviename part 5.srt" -c copy "temp05.mkv"
    ffmpeg -i "moviename part 6.mp4" -i "moviename part 6.srt" -c copy "temp06.mkv"
    ffmpeg -i "moviename part 7.mp4" -i "moviename part 7.srt" -c copy "temp07.mkv"
    ffmpeg -i "moviename part 8.mp4" -i "moviename part 8.srt" -c copy "temp08.mkv"
    ffmpeg -i "moviename part 9.mp4" -i "moviename part 9.srt" -c copy "temp09.mkv"
    ffmpeg -i "moviename part 10.mp4" -i "moviename part 10.srt" -c copy "temp10.mkv"
    ffmpeg -i "moviename part 11.mp4" -i "moviename part 11.srt" -c copy "temp11.mkv"
    .
    .
    .
    ffmpeg -i "moviename part 99.mp4" -i "moviename part 99.srt" -c copy "temp99.mkv"

на данный момент, но это утомительно. Я нашел эту команду, которая объединяет файлы

for %%a in ("*.mp4") do ffmpeg -i "%%~na.mp4" -i "%%~na.srt" -c copy "%%~na.mkv"

но он выводит те же имена файлов moviename часть 1.mkv, moviename часть 2.mkv, moviename часть 3.mkv и т. д. вместо temp01.mkv, temp02.mkv, temp03.mkv и т. д., как я хотел.

1 ответ1

1

Какая простая команда для последовательного мультиплексирования нескольких файлов видео и субтитров?

Использовать for /l:

@echo off
setlocal enabledelayedexpansion
for /l %%a in (1,1,99) do (
  set _count=00%%a
  ffmpeg -i "moviename part %%a.mp4" -i "moviename part %%a.srt" -c copy "temp!_count:~-2!.mkv"
)
endlocal

Дальнейшее чтение

  • Индекс AZ командной строки Windows CMD - Отличный справочник по всем вопросам, связанным с командной строкой Windows.
  • enabledelayedexpansion - отложенное расширение приведет к тому, что переменные будут расширяться во время выполнения, а не во время анализа.
  • for /l - условно выполнить команду для диапазона чисел.
  • set - отображать, устанавливать или удалять переменные окружения CMD. Изменения, сделанные с помощью SET, будут сохраняться только в течение текущего сеанса CMD.
  • переменные - извлечение части переменной (подстроки).

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