Вопрос или проблема
У меня есть фильм в формате .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: Создание батч-файла
- Откройте текстовый редактор (например, Блокнот).
- Вставьте следующие строки кода:
@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: Сохранение и запуск
- Сохраните файл с расширением
.bat
, например,mux_files.bat
. - Поместите его в ту же папку, где находятся ваши MKV-файлы.
- Запустите файл двойным щелчком.
Объяснение работы сценария
@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-сервера. Просто скопируйте и изменяйте файлы по мере необходимости, и вы сможете эффективно управлять своей медиабиблиотекой. Надеемся, что данное руководство было полезным!