Я мультиплексирую MP4 видео и WebM видео с файлами SRT (субтитры). Все файлы имеют одинаковые имена файлов, но разные расширения. Как это:

Video1.mp4
Video1.srt

или же

Video2.webm
Video2.srt

Иногда мультиплексирование (слияние видео с субтитрами) не удается, поскольку файл srt пуст. Инструмент командной строки, который я использую для объединения видео с субтитрами, называется MKVMerge и имеет 3 кода выхода:

0 - этот код выхода означает, что мультиплексирование завершено успешно.

1 - В этом случае mkvmerge(1) выдает хотя бы одно предупреждение, но мультиплексирование продолжалось. Предупреждение начинается с текста «Предупреждение:». В зависимости от проблем, в результате файл может быть в порядке или нет. Пользователю рекомендуется проверить как предупреждение, так и полученный файл.

2 - Этот код выхода используется после возникновения ошибки. mkvmerge(1) прерывает сразу после вывода сообщения об ошибке. Сообщения об ошибках варьируются от неправильных аргументов командной строки, ошибок чтения / записи до поврежденных файлов.

Я хочу команду для удаления файла SRT, если код ошибки 1.

Вот что я использую:

FOR /R "D:\Folder" %%A IN (*.mp4 *.webm) do (
"D:\mkvmerge.exe" -o "%%~nxA" "%%~A" --language 0:eng "%%~nA.srt"
)

Я хочу, чтобы эта командная строка удаляла файл .srt (который использует то же имя файла, что и mp4 или webm), если код ошибки 1 (один).

1 ответ1

1

Я хочу, чтобы эта командная строка удалила файл .srt, если код ошибки равен 1.

Посмотрите на уровень ошибки, установленный mkvmerge .

Попробуйте следующий командный файл:

FOR /R "D:\Folder" %%A IN (*.mp4 *.webm) do (
  "D:\mkvmerge.exe" -o "%%~nxA" "%%~A" --language 0:eng "%%~nA.srt"
  if %errorlevel% equ 1 (
    del /q "%%~nA.srt"
  )
)

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

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