Пакетный файл для мультиплексирования mkv с субтитрами в другой mkv файл

Вопрос или проблема

У меня есть фильм в формате .mkv, у которого больше одного субтитра, и я кодирую его для моего сервера Plex тоже в .mkv, но Handbrake продолжает конвертировать субтитры в формат SSA. Поэтому я кодирую его без включенных субтитров. Теперь, если я хочу сделать это быстро, потому что у меня много фильмов, которые нужно загрузить на сервер Plex, мне нужен пакетный файл, который я могу использовать быстро. Примеры файлов:

1.mkv
1.ori.mkv (это оригинальный файл, который имел все субтитры)

Я хочу сделать 1.muxed.mkv с видео и аудио из 1.mkv и субтитрами из 1.ori.mkv.

Заранее спасибо.

Ответ или решение

Создание батч-файла для мультиплексирования MKV с субтитрами

Если вы хотите быстро организовать ваши видеофайлы для Plex-сервера, используя существующие субтитры из оригинального MKV-файла, создание батч-файла будет идеальным решением. В этом руководстве вы узнаете, как написать такой батч-файл, чтобы автоматизировать процесс мультиплексирования MKV-файлов с субтитрами.

Шаг 1: Подготовка инструментов

Прежде чем начать, убедитесь, что на вашем компьютере установлен ffmpeg — мощный инструмент для обработки видео и аудио файлов. Вы можете скачать его с официального сайта: FFmpeg. Поместите бинарный файл в папку, указанную в переменной среды PATH, чтобы вы могли вызывать его из командной строки в любом месте.

Шаг 2: Создание батч-файла

  1. Откройте текстовый редактор (например, Блокнот).
  2. Вставьте следующие строки кода:
@echo off
setlocal enabledelayedexpansion

REM Определяем расширение и путь к mkv файлам
set "inputFile=1.mkv"
set "originalFile=1.ori.mkv"
set "outputFile=1.muxed.mkv"

REM Проверяем, существуют ли файлы
if not exist "!inputFile!" (
    echo !inputFile! не найден!
    exit /b
)

if not exist "!originalFile!" (
    echo !originalFile! не найден!
    exit /b
)

REM Выполняем мультиплексирование
ffmpeg -i "!inputFile!" -i "!originalFile!" -map 0:v -map 0:a -map 1:s -c:v copy -c:a copy -c:s copy "!outputFile!"

echo Мультиплексирование завершено. Файл создан: !outputFile!

pause

Шаг 3: Сохранение и запуск

  1. Сохраните файл с расширением .bat, например, mux_files.bat.
  2. Поместите его в ту же папку, где находятся ваши MKV-файлы.
  3. Запустите файл двойным щелчком.

Объяснение работы сценария

  • @echo off: Отключает вывод команд в окне консоли для более чистого просмотра.
  • setlocal enabledelayedexpansion: Включает расширение переменных, позволяя использовать переменные внутри условий.
  • if not exist: Проверяет наличие указанных файлов и выводит сообщение, если файл не найден.
  • ffmpeg -i: Использует ffmpeg для мультиплексирования видео, аудио и субтитров из оригинального MKV-файла в целевой MKV-файл.
    • -map 0:v -map 0:a -map 1:s: Указывает, какие дорожки использовать из входных файлов: видео и аудио из первого, а субтитры — из второго.
    • -c:v copy -c:a copy -c:s copy: Копирует кодеки без перекодирования, что ускоряет процесс.

Заключение

Теперь, когда у вас есть рабочий батч-файл, вы сможете быстро создать новые MKV-файлы с субтитрами для вашего Plex-сервера. Просто скопируйте и изменяйте файлы по мере необходимости, и вы сможете эффективно управлять своей медиабиблиотекой. Надеемся, что данное руководство было полезным!

Оцените материал
Добавить комментарий

Капча загружается...