Don Melton Video Transcoding

Don Melton Video Transcoding помогает автоматически перекодировать видеофайлы и нешифрованные образы Blu-ray/DVD в более компактные MKV, MP4 или M4V, подбирая целевой видеобитрейт по разрешению, управляя аудиодорожками и субтитрами, проверяя кадрирование и сохраняя технический лог HandBrake для последующего анализа. Набор рассчитан на командную строку: основную работу выполняет transcode-video, а detect-crop, convert-video и query-handbrake-log закрывают проверку полей кадра, перепаковку контейнера и разбор результатов транскодирования.

Практический смысл Don Melton Video Transcoding в том, что пользователю не приходится каждый раз вручную собирать длинную команду HandBrakeCLI для типового рипа. Инструмент сам определяет базовый целевой битрейт, выбирает основную звуковую дорожку, формирует совместимый набор аудиопотоков, контролирует контейнер и может автоматически учесть особенности частоты кадров. При этом почти все ключевые решения можно переопределить параметрами командной строки — от номера title и диапазона глав до конкретного кодировщика, кропа, выходного формата и политики обработки субтитров.

Это не универсальный видеоредактор и не программа для монтажа с таймлайном. Ее сильная сторона — воспроизводимый сценарий подготовить исходник, проверить дорожки, выбрать правила, запустить транскодирование, изучить лог. Такой подход особенно удобен для коллекций фильмов и сериалов, где важны одинаковые настройки, предсказуемая структура выходных файлов и возможность автоматизировать обработку через shell-скрипты.

Скачать Don Melton Video Transcoding

Оценка 9.7Рекомендуем
  • Конвертация видео
  • Сжатие файлов
  • Просто для новичков
Скачать бесплатно на Windows
Лучшая альтернатива
Don Melton Video Transcoding
Оценка 8.5
  • Только командная строка
  • Нужны внешние утилиты
  • Кроп требует проверки
Скачать Don Melton Video Transcoding
Загрузка начнётся после нажатия

Что именно делает Don Melton Video Transcoding

Набор состоит из нескольких самостоятельных команд, каждая из которых решает узкую часть общей задачи. Главная команда transcode-video сканирует исходный медиаконтейнер, выбирает title, видео, аудио и субтитры, строит команду HandBrakeCLI и запускает кодирование. Важная особенность заключается не в самом факте вызова HandBrake, а в готовой политике принятия решений: целевые битрейты зависят от исходного разрешения, основная аудиодорожка обрабатывается иначе, чем дополнительные, а сложные параметры кодировщика сводятся к более коротким опциям.

detect-crop предназначен для отдельной проверки черных полей. Он сопоставляет результаты детектора HandBrakeCLI с анализом FFmpeg и сообщает, совпадают ли оценки. Если они различаются, пользователь получает несколько вариантов и может предварительно открыть нужный участок через mpv. Это принципиально отличается от безусловного автокропа: программа позволяет увидеть спорный случай до финального кодирования и избежать ситуации, когда алгоритм срезал полезную часть кадра.

convert-video выполняет перепаковку между Matroska и MP4 без повторного кодирования видеодорожки, если формат потока совместим с целевым контейнером. При необходимости аудио может быть преобразовано в формат, который допускает MP4. Это полезно, когда длительный видеотранскод уже завершен, но позже выяснилось, что конкретному плееру нужен другой контейнер.

query-handbrake-log извлекает полезные показатели из журналов HandBrake, создаваемых вместе с выходным видео. Вместо ручного чтения длинного лога можно получить таблицу времени кодирования, скорости в кадрах в секунду, итогового видеобитрейта или показателя ratefactor. Особенно удобно обрабатывать сразу каталог журналов и быстро находить необычно медленные или нетипичные по битрейту задания.

КомандаНазначениеТипичный результат
transcode-videoПолное транскодирование видео, аудио и выбранных субтитровMKV/MP4/M4V и файл .log
detect-cropПоиск черных полей и сравнение детекторовЗначения T:B:L:R и команды для предпросмотра
convert-videoПерепаковка MKV ↔ MP4 без перекодирования видеоНовый контейнер с перенесенными дорожками
query-handbrake-logРазбор журналов HandBrakeОтсортированный отчет по времени, скорости, битрейту или ratefactor

Требования и установка

Don Melton Video Transcoding распространяется как Ruby gem. Для установки нужен Ruby версии 2.0 или новее, а сами команды полагаются на внешние консольные утилиты. В документации перечислены HandBrakeCLI, FFmpeg, mkvpropedit из MKVToolNix и mp4track из MP4v2. Для визуальной проверки кропа дополнительно используется mpv. Это означает, что одной установки gem недостаточно: все вызываемые бинарники должны находиться в системном PATH.

gem install video_transcoding

В средах, где системная директория gem защищена правами администратора, встречается установка через sudo gem install video_transcoding. Однако при современном Ruby обычно удобнее пользоваться менеджером версий языка или пользовательской директорией gems, чтобы не смешивать пакеты с системным Ruby. Для самой программы важно не то, каким способом установлен Ruby, а чтобы команды transcode-video, detect-crop, convert-video и query-handbrake-log были доступны из оболочки.

Перед первым кодированием имеет смысл по отдельности вызвать версии зависимостей. Такой подход сразу отделяет проблему установки от проблемы конкретного файла. Если оболочка не находит HandBrakeCLI, программа не сможет просканировать источник; если отсутствует FFmpeg, будут недоступны часть операций анализа и конвертации; отсутствие MKVToolNix или MP4v2 проявится при обработке контейнеров и метаданных.

ruby --version
HandBrakeCLI --version
ffmpeg -version
mkvpropedit --version
mp4track --version
transcode-video --help

На macOS зависимости традиционно удобно ставить через Homebrew. На Linux конкретные имена пакетов зависят от дистрибутива. В Windows наиболее важный практический момент — расположить исполняемые файлы в директориях, перечисленных в PATH, и помнить, что синтаксис экранирования путей в cmd.exe, PowerShell и Bash различается. Сами Ruby-команды кроссплатформенны, но ошибки часто возникают именно на стыке оболочки, путей и внешних бинарников.

Как проверить, что окружение готово

Команда transcode-video --help работает как быстрый тест того, что gem установлен и Ruby запускает исполняемый файл. Она выводит группы параметров для входа, контейнера, качества, видео, аудио, субтитров, расширенных опций и диагностики. Если справка открывается, но реальная обработка сразу завершается сообщением о недостающей утилите, проблема почти всегда находится в зависимостях, а не в Ruby gem.

Для проверки самого HandBrakeCLI полезно выполнить его без Don Melton Video Transcoding на небольшом тестовом файле или хотя бы запросить справку. Программа передает HandBrake большой набор параметров, поэтому отсутствие конкретного кодировщика или фильтра может быть связано с конкретной сборкой HandBrake. Аналогично аппаратные кодировщики появляются только тогда, когда данная сборка HandBrake и драйверы действительно предоставляют соответствующий backend.

Базовый сценарий транскодирования

Минимальная команда содержит только путь к исходнику:

transcode-video "/Media/Movie.mkv"

При таком запуске программа анализирует входной контейнер, определяет нужный title, выбирает первую аудиодорожку как основную, задает собственную стратегию видеокодирования и создает файл Matroska в текущем рабочем каталоге. Рядом появляется журнал HandBrake с тем же базовым именем и суффиксом .log. Лог лучше сохранять: по нему позднее можно сравнить скорость, итоговый битрейт и относительный ratefactor без повторного запуска кодирования.

Самое важное в базовом режиме — понимать, что автоматически не означает безусловно правильно для любого материала. Типичный чистый MKV из Blu-ray или DVD подходит хорошо, но коллекции, собранные из файлов с разными кодеками, телезаписей, нестандартных частот кадров или экзотических субтитров, требуют предварительного сканирования. Don Melton Video Transcoding дает инструменты для такого контроля, но не может угадать смысл каждой дорожки.

Сканирование входного файла и выбор title

Опция --scan выводит структуру входного видео и завершает работу без кодирования. В отчете видны длительность, геометрия кадра, частота, главы, аудиодорожки и субтитры. Это первый диагностический шаг, если неизвестно, какая дорожка содержит нужный язык, почему выбрана не та озвучка или какой title соответствует основному фильму.

transcode-video --scan "/Media/Movie.mkv"

Для файла с единственным видеопотоком выбор title обычно не вызывает вопросов. У нешифрованного образа диска title может быть много: основной фильм, дополнительные материалы, эпизоды сериала, альтернативные версии. Программа пытается определить основной материал, а если это невозможно — берет первый. Опция --title INDEX позволяет указать номер явно.

transcode-video --scan "/Media/Disc image/"
transcode-video --title 5 "/Media/Disc image/"

При работе с дисковыми структурами лучше не полагаться только на номер, а сравнить длительность и наборы дорожек. Короткий title может оказаться трейлером или бонусом, а два близких по длине title — театральной и расширенной версиями. Программа умеет автоматизировать выбор по структуре, но семантику конкретного издания всегда лучше подтвердить сканированием.

Выбор глав

Параметр --chapters ограничивает выход одной главой или диапазоном. Он полезен для тестового фрагмента, бонусного сегмента или ситуации, когда требуется перекодировать только часть длинного материала без предварительного разрезания файла.

transcode-video --chapters 3-5 "/Media/Movie.mkv"

Для оценочного прогона такой диапазон особенно удобен на сложной сцене: можно быстро проверить выбранный кроп, субтитры и дорожки, а затем запустить весь фильм теми же параметрами. Следует помнить, что это ограничение передается в HandBrake и не превращает программу в монтажный инструмент: точность определяется структурой глав исходника.

Куда сохраняется результат и как управлять именем

По умолчанию выход создается в текущем рабочем каталоге с именем исходника и расширением выбранного контейнера. Опция -o или --output задает полный путь к файлу либо только директорию. Это важно в скриптах: запуск из одной служебной папки не обязательно означает, что результат должен появляться там же.

transcode-video --output "/Transcoded/" "/Rips/Movie.mkv"

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

MKV, MP4 и M4V

Базовый выход Don Melton Video Transcoding — Matroska. MKV удобен тем, что свободнее обращается с дорожками и субтитрами. Если целевому проигрывателю нужен MP4, используется --mp4. Опция --m4v создает тот же тип MP4-контейнера, но с расширением .m4v, которое традиционно лучше распознается некоторыми Apple-сценариями.

transcode-video --mp4 "/Media/Movie.mkv"
transcode-video --m4v "/Media/Movie.mkv"

Выбор контейнера влияет не только на расширение. Некоторые типы субтитров и аудио могут быть допустимы в MKV, но не поддерживаться конкретной комбинацией MP4 и HandBrake. Поэтому если задача требует необычных дорожек, безопаснее сначала проверить ограничения контейнера, а уже затем включать копирование потоков.

Импорт названий глав и отключение лога

Опция --chapter-names принимает CSV-файл с парами вида номер,название и позволяет перенести осмысленные названия глав. Для медиатеки это полезнее, чем безымянные Chapter 1, Chapter 2 и так далее. Если журнал точно не нужен, его создание можно отключить через --no-log, но обычно экономия нескольких текстовых мегабайт не стоит потери диагностической информации.

Dry run: проверка реальной команды HandBrake до запуска

--dry-run — один из самых полезных параметров при изучении поведения программы. Он не запускает кодирование, а печатает сформированную команду HandBrakeCLI. Таким образом можно увидеть фактический контейнер, кодировщик, кроп, частоту кадров, аудиокарту и x264-параметры, которые будут использованы.

transcode-video --dry-run --mp4 --target big "/Media/Movie.mkv"

Dry run помогает в трех ситуациях. Во-первых, когда непонятно, что именно меняет краткая опция вроде --quick или --target big. Во-вторых, при поиске конфликтов между параметрами. В-третьих, когда требуется перенести найденную конфигурацию в другой процесс или сравнить с ручным вызовом HandBrakeCLI. Это не эмуляция кодирования: качество и реальный итоговый размер по dry run определить нельзя, но синтаксическую и логическую конфигурацию увидеть можно.

Как программа выбирает целевой видеобитрейт

Основная идея Don Melton Video Transcoding — не фиксировать один битрейт для любого входа. В документации для типовых разрешений приводятся базовые цели: около 6000 Кбит/с для 1080p/Blu-ray, 3000 Кбит/с для 720p и 1500 Кбит/с для 480i/576p/DVD. Эти значения служат ориентирами для ratecontrol, а не обещанием, что каждый файл завершится точно на такой средней скорости.

Тип входаБазовая цель видеоПрактический смысл
1080p / Blu-ray6000 Кбит/сСущественное уменьшение по сравнению с типичным дисковым потоком при сохранении запаса качества
720p3000 Кбит/сМеньше данных для меньшего кадра без копирования 1080p-политики
480i, 576p / DVD1500 Кбит/сСнижение цели в соответствии с SD-разрешением

Важно различать целевой битрейт и жесткий лимит. В стандартной special схеме используется комбинация CRF, VBV и дополнительного ограничения качества. Поэтому на сложном материале программа может выйти выше цели, если это необходимо для удержания минимального качества. Именно из-за такого поведения итоговый размер более предсказуем, чем у чистого CRF, но не фиксирован до байта.

Опция --target

--target позволяет заменить автоматический ориентир. Можно задать единое значение либо использовать квалификаторы по разрешению, чтобы одна и та же командная строка по-разному работала с DVD и Blu-ray. Такой режим полезен в смешанной очереди, где хочется сохранить общую логику программы, но применить собственные целевые уровни хранения.

transcode-video --target 1080p=6500 --target 480p=2000 "/Media/Movie.mkv"

Повышение цели не гарантирует видимое улучшение каждой сцены: если источник уже простой для кодирования, энкодеру может не понадобиться весь доступный запас. Снижение цели, наоборот, быстрее проявляется на шумном зернистом материале, быстрых движениях, дыме, воде и мелкой фактуре. Поэтому разумнее рассматривать --target как управление компромиссом размера и запаса качества, а не как прямой регулятор качества в процентах.

Макрос --target big

Для случая, когда размер менее критичен, документация рекомендует --target big. Этот макрос увеличивает целевые видеобитрейты примерно на 50 процентов по сравнению с обычной политикой. Он удобен как простая альтернатива ручному подбору нескольких значений для разных разрешений.

transcode-video --target big "/Media/Movie.mkv"

Макрос не делает кодирование lossless и не отменяет ratecontrol. Он лишь предоставляет системе больше битов. На уже хорошо сжимаемом исходнике прибавка может дать минимальную видимую разницу, тогда как на зернистом кино или сложной анимации дополнительный запас иногда заметнее. Решение лучше принимать по репрезентативным сценам, а не по статичному кадру.

Ratecontrol: почему Don Melton Video Transcoding отличается от обычного пресета HandBrake

В типичном CRF-подходе пользователь выбирает показатель качества, а итоговый битрейт получается таким, какой потребует материал. Это удобно, когда размер вторичен, но сложнее прогнозировать объем большой медиатеки. Don Melton Video Transcoding строит процесс вокруг целевого битрейта и использует несколько схем, которые по-разному ограничивают пиковую скорость и минимально приемлемое качество.

Стандартная special схема задает очень высокий целевой уровень качества CRF и одновременно ограничивает максимальную скорость через VBV. Дополнительно применяется максимальное значение CRF и ограничение quantizer, чтобы отдельные тяжелые кадры не проваливались слишком низко по качеству. В результате целевой битрейт становится мягким потолком: на сложном участке поток может выйти выше ориентира, если иначе пришлось бы слишком сильно ухудшить кадр.

Опция --simple сохраняет идею ограничения целевым битрейтом, но убирает дополнительное минимальное качество. Такая конфигурация проще и не порождает характерные предупреждения VBV underflow, возникающие при внутреннем конфликте ограничений стандартной схемы. Ее смысл не в гарантированно лучшем или худшем результате, а в другой компромиссной модели распределения битов.

--abr включает модифицированный average bitrate. Базовый алгоритм x264/x265 стремится к заданной средней скорости, а Don Melton Video Transcoding дополнительно ограничивает максимальный поток примерно полуторакратной величиной цели. Такое ограничение уменьшает вероятность, что сложная сцена заберет слишком много битов, после чего простые участки окажутся чрезмерно обедненными.

--avbr относится к x264 и строится поверх average bitrate иначе: ограничение максимального битрейта снимается, допуск отклонения от средней величины расширяется, а macroblock-tree ratecontrol отключается. В документации указывается, что итоговый битрейт может отклоняться от цели примерно на 10–15 процентов в обе стороны. Эта схема не переносится на x265 в том же виде, поэтому ее не следует считать универсальным режимом для любого кодировщика.

РежимИдеяКогда уместен
СтандартныйВысокий CRF + мягкий VBV-предел + минимальное качествоОсновной автоматизированный сценарий
--simpleОграничение целевым битрейтом без дополнительного минимума качестваНужна более простая модель и отсутствие VBV underflow
--abrСредний битрейт с ограничением пиковВажна более ровная связь с заданной целью
--avbrОслабленный ABR с высокой вариативностьюЭксперименты с x264 и допускаемым отклонением от цели

Скорость кодирования: --quick и пресеты x264

У x264 есть стандартная шкала пресетов от очень быстрых до очень медленных. Don Melton Video Transcoding позволяет выбрать их через --preset, но документация отдельно выделяет --quick. Этот режим не просто переключает x264 на готовый fast или veryfast, а меняет набор параметров так, чтобы ускорить обработку при меньшей потере точности, чем у агрессивных быстрых пресетов.

transcode-video --quick "/Media/Movie.mkv"
transcode-video --preset slow "/Media/Movie.mkv"

В документации для --quick приводится прирост скорости до 70–80 процентов относительно стандартной конфигурации на тестировавшемся x264-процессе. Это не универсальная гарантия для любого процессора, версии HandBrake и любого ролика; значение следует воспринимать как характеристику задуманного профиля. Реальный выигрыш зависит от разрешения, фильтров, сложности материала и производительности дисковой подсистемы.

Пресеты быстрее medium уменьшают вычислительную сложность и эффективность компрессии, поэтому файл может получиться крупнее при близком качестве или заметно хуже при ограниченном битрейте. Пресеты медленнее medium тратят больше времени на поиск эффективного представления кадра. Для большой библиотеки это важный практический выбор: разница между slow и veryslow может означать много дополнительных часов, а визуальная выгода не обязательно будет пропорциональна затраченному времени.

Если цель — получить больше визуального запаса, а не минимизировать размер, повышение --target часто предсказуемее, чем переход на крайне медленный preset. Если цель — ускорить очередь, --quick логичнее тестировать раньше, чем veryfast. В обоих случаях стоит выбрать несколько сложных фрагментов с зерном, движением, дымом, мелкими текстурами и градиентами, чтобы не оценивать профиль только на простой статичной сцене.

Выбор видеокодировщика

Стандартная схема рассчитана прежде всего на x264, но --encoder позволяет передать другой видеокодировщик, который поддерживает установленный HandBrakeCLI. Например, x265 включает HEVC. Поведение ratecontrol при этом не полностью идентично x264: часть специальных параметров применима к обоим программным энкодерам, а AVBR в описанной форме рассчитан только на x264.

transcode-video --encoder x265 "/Media/Movie.mkv"

HEVC имеет смысл, если целевые устройства его декодируют и дополнительное время кодирования оправдано уменьшением потока. Для старых телевизоров, приставок и программных плееров H.264 остается более консервативным выбором. Программа не проверяет за пользователя всю цепочку воспроизведения: возможность создать HEVC-файл еще не означает, что конкретный клиент сможет его аппаратно декодировать.

Аппаратные энкодеры

Если HandBrakeCLI собран с поддержкой аппаратного кодирования и драйверы доступны, через --encoder можно выбрать Intel Quick Sync, Nvidia NVENC, AMD VCE или Apple VideoToolbox. Имена энкодеров зависят от API HandBrake: встречаются qsv_h264, qsv_h265, nvenc_h264, nvenc_h265, vce_h264, vce_h265, vt_h264 и vt_h265.

transcode-video --encoder vt_h264 "/Media/Movie.mkv"
transcode-video --encoder nvenc_h265 "/Media/Movie.mkv"

Главное ограничение аппаратного режима — зависимость от конкретной системы. Одинаковая команда на двух компьютерах может быть рабочей на одном и завершаться ошибкой encoder unavailable на другом. Поэтому сначала полезно посмотреть раздел Video Options в HandBrakeCLI --help. Если нужного имени там нет, Don Melton Video Transcoding не сможет создать его самостоятельно.

Аппаратный энкодер также не следует сравнивать с x264 только по времени. Он использует другую внутреннюю реализацию ratecontrol и может иначе распределять битрейт на зерне, градиентах или быстрых сценах. Если скорость критична, аппаратный путь удобен; если важнее воспроизводимый результат, следует сначала проверить несколько характерных исходников и только затем переносить настройку на массовую очередь.

Размер кадра, масштабирование и соотношение пикселя

Опция --720p ограничивает видео рамками 1280×720. Для произвольных пределов есть --max-width и --max-height. Они не означают безусловное растягивание до заданного размера: цель — вписать изображение в указанные границы с учетом геометрии.

transcode-video --720p "/Media/Movie.mkv"
transcode-video --max-width 1280 --max-height 720 "/Media/Movie.mkv"

Масштабирование имеет два последствия. Во-первых, уменьшается число пикселей и вычислительная нагрузка. Во-вторых, программа выбирает битрейт с учетом выходного класса разрешения, поэтому уменьшение 1080p до 720p не означает, что сохранится цель 6000 Кбит/с. Для архивной копии это может быть нежелательно, а для мобильного устройства — наоборот, разумно.

--pixel-aspect X:Y переопределяет соотношение сторон пикселя. Такой параметр нужен прежде всего для анаморфных или неправильно размеченных SD-источников. Его не стоит применять на глаз к обычному квадратному пикселю: ошибочное значение растянет изображение по горизонтали или вертикали, а затем проблема окажется запеченной в финальном файле.

Частота кадров и видеофильтры

Don Melton Video Transcoding содержит автоматическую логику частоты кадров и деинтерлейса для некоторых типов источников. Для явного управления есть --force-rate и --limit-rate. Первая опция задает постоянную частоту, вторая — верхний предел. В справке также отмечается автоматическое применение 23.976 fps для части входов и ограничение 30 fps для большинства сценариев, но конкретное решение зависит от просканированного материала.

transcode-video --force-rate 23.976 "/Media/Movie.mkv"
transcode-video --limit-rate 30 "/Media/Movie.mkv"

Неправильное принудительное значение частоты может привести к повторению или отбрасыванию кадров и изменению характера движения. Поэтому --force-rate следует применять, когда природа источника известна: например, после диагностики телесинематического материала. Если задача лишь не допустить 50/60 fps в выходе, ограничение через --limit-rate обычно менее агрессивно.

Опция --filter NAME[=SETTINGS] передает фильтр HandBrakeCLI. Ее можно использовать несколько раз. Поддержка конкретных фильтров определяется HandBrake; среди применявшихся в проекте встречались deinterlace, detelecine, comb-detect, hqdn3d, pad и другие. Фильтр стоит добавлять только по реальному дефекту источника, поскольку каждое дополнительное преобразование меняет изображение и увеличивает время обработки.

transcode-video --filter detelecine "/Media/Telecined.mkv"

Для редких проблемных дисков сочетание --force-rate 23.976 --filter detelecine может быть уместно, но это не универсальный улучшатель. На уже прогрессивном материале detelecine не нужен. Аналогично шумоподавление не следует включать только ради меньшего файла: оно действительно упрощает кодирование, но одновременно удаляет часть текстуры изображения.

Кадрирование: ручное, автоматическое и проверяемое

В базовом режиме transcode-video не применяет кроп. Значения задаются в порядке TOP:BOTTOM:LEFT:RIGHT. Например, 144:144:0:0 удаляет по 144 строки сверху и снизу, а 0:0:240:240 обрезает по 240 пикселей слева и справа.

transcode-video --crop 144:144:0:0 "/Media/Widescreen.mkv"
transcode-video --crop 0:0:240:240 "/Media/Classic-TV.mkv"

Ручное значение надежно только тогда, когда оно проверено на разных местах фильма. Черные поля иногда меняются между сценами: IMAX-вставки расширяют изображение, титры выходят за привычную границу, а некоторые диски содержат небольшие грязные края, которые детектор воспринимает как поле. Обрезка по одному случайному кадру может оказаться слишком агрессивной.

detect-crop как отдельный этап

Команда detect-crop запускает анализ через HandBrakeCLI и FFmpeg, сравнивает найденные границы и печатает результат. При согласии детекторов вывод содержит команды mpv для визуальной проверки и готовую строку transcode-video --crop .... Это превращает потенциально рискованную автоматическую операцию в контролируемый этап.

detect-crop "/Media/Movie.mkv"

Одна из печатаемых команд рисует прямоугольник по предполагаемой границе полезного изображения, другая показывает уже обрезанный кадр. Пользователь может перейти по нескольким моментам видео и убедиться, что лицо, титры или расширенный кадр не попадают за рамку. После этого рекомендованные значения копируются в основную команду.

Если HandBrakeCLI и FFmpeg не согласны, detect-crop сообщает Results differ и выводит оба набора. Разница в несколько пикселей не обязательно означает серьезную проблему, но это сигнал посмотреть источник. Наличие двух независимых оценок — важная функция набора: программа не скрывает неопределенность за одним правильным числом.

--crop detect и fallback

Ту же логику можно вызвать прямо из transcode-video:

transcode-video --crop detect "/Media/Movie.mkv"

Если детекторы расходятся, автоматический режим может остановиться. Параметр --fallback-crop задает запасное поведение: принять вариант HandBrake, вариант FFmpeg, минимальный совместный кроп или вообще не обрезать. Значение minimal формирует наименьшее удаление, которое следует из обоих результатов, и тем самым снижает риск потерять контент.

transcode-video --crop detect --fallback-crop minimal "/Media/Movie.mkv"

Для массовой очереди fallback полезен, потому что предотвращает остановку на каждом спорном файле. Но он не заменяет контроль для фильмов с меняющимся aspect ratio. Если библиотека содержит известные IMAX-релизы, музыкальные клипы с плавающей рамкой или старые трансферы с нестабильными полями, безопаснее хранить индивидуальные значения кропа рядом с очередью.

Особенность образов дисков

Для каталога, представляющего нешифрованный образ Blu-ray/DVD, возможности detect-crop ограниченнее: FFmpeg не используется тем же способом, и команда не печатает готовый предпросмотр. Причина в структуре диска и доступе к выбранному title. Поэтому для максимально контролируемого процесса удобнее сначала извлечь нужный title в отдельный MKV, а уже затем выполнять детектирование и транскодирование.

Основная аудиодорожка

По умолчанию основным аудио считается первая дорожка. Она становится первой и default-дорожкой в результате. Номер можно переопределить через --main-audio:

transcode-video --main-audio 3 "/Media/Movie.mkv"

Вместо номера разрешен трехбуквенный код языка ISO 639-2. Например, spa выбирает первый испанский поток. Если такого языка нет, программа возвращается к первой доступной дорожке. Такой fallback удобен для смешанной библиотеки, но его надо учитывать: отсутствие ожидаемого языка не приводит к пустому аудио, а может незаметно дать дорожку другого языка.

transcode-video --main-audio spa "/Media/Movie.mkv"

Дорожке можно назначить имя прямо в аргументе, например 3="Original Stereo". Имена позволяют различать оригинальную озвучку, дубляж, комментарий режиссера и descriptive audio в плеере. Для больших коллекций это лучше делать последовательно, иначе одни файлы будут иметь понятные метки, а другие — безымянные Track 1/Track 2.

Дополнительные аудиодорожки

--add-audio добавляет отдельный трек по номеру, по языку или все доступные дорожки. Параметр можно повторять, а для выбранного номера задать название.

transcode-video --add-audio 4 --add-audio 5="Director Commentary" "/Media/Movie.mkv"
transcode-video --add-audio fra,spa "/Media/Movie.mkv"
transcode-video --add-audio all "/Media/Movie.mkv"

Добавлять all удобно не всегда. На коммерческом диске могут присутствовать десятки потоков: дубли, комментарии, описательный звук и вторичные языки. Каждый транскодированный поток увеличивает размер и время muxing, а копирование lossless-дорожек может полностью изменить расчет хранения. Для повседневной медиатеки обычно лучше явно выбирать нужные языки и комментарии.

Понятие audio width

В терминологии программы width — не разрядность и не число каналов исходника, а количество и тип выходных дорожек, которые разрешено сформировать из одного аудиовхода. Значение double допускает пару выходов — например, surround AC-3 и стерео AAC. surround оставляет одну дорожку с возможностью многоканального звука, а stereo ограничивает результат одной стереодорожкой.

transcode-video --audio-width main=surround "/Media/Movie.mkv"
transcode-video --audio-width other=double "/Media/Movie.mkv"

По умолчанию основная дорожка обрабатывается шире дополнительных: surround-источник может породить AAC-стерео и AC-3 5.1, тогда как добавленная дорожка обычно остается одним AAC-потоком. Это разумно для комментариев, которые часто не нуждаются в отдельной 5.1-копии. Если дополнительная дорожка действительно должна получить ту же структуру, что основная, ширину можно изменить.

AAC и AC-3

Для mono AAC документация указывает 80 Кбит/с, для stereo — 160 Кбит/с. Для surround основной дорожки предусмотрен AC-3 до 640 Кбит/с с 5.1 каналами, а также стерео AAC. Это политика программы, а не жесткая характеристика всех исходников: копирование уже совместимого AC-3/AAC может заменить перекодирование, а пользователь может изменить битрейт и выбранный энкодер.

Опции --ac3-bitrate и --pass-ac3-bitrate задают лимиты для кодируемого и проходного AC-3. Для Enhanced AC-3 предусмотрен выбор аудиоэнкодера. При этом сочетание E-AC-3 и MP4 зависит от возможностей HandBrakeCLI; известный сценарий с eac3 мог завершаться сообщением о несовместимом muxer, хотя FFmpeg при перепаковке в convert-video способен работать иначе.

Копирование исходного аудио

--copy-audio пытается сохранить выбранный поток без перекодирования, если формат поддерживается HandBrake и целевым контейнером. Аргумент all относится к уже включенным дорожкам, а не означает автоматическое добавление всех входных потоков. Поэтому команда с --copy-audio all при стандартном выборе затронет только основное аудио.

transcode-video --copy-audio all "/Media/Movie.mkv"
transcode-video --add-audio 4 --copy-audio all "/Media/Movie.mkv"

Копирование DTS-HD, TrueHD или другого тяжелого потока может противоречить исходной цели Don Melton Video Transcoding — получить компактный и переносимый файл. Оно уместно для архивного варианта или конкретной домашней системы, но не следует включать его как безусловное правило для всей библиотеки. Кроме того, MP4 накладывает более строгие ограничения на допустимые кодеки, чем MKV.

--copy-audio-name переносит исходное имя дорожки, если пользователь не задал другое. Это полезно для рипов, где MakeMKV или другая программа уже сохранила метки типа Commentary, Original Mix или название языка.

prefer-ac3 и порядок double-дорожек

--prefer-ac3 заставляет предпочитать AC-3 даже там, где обычная политика выбрала бы AAC, и переводит ширину аудио в surround. Такой режим ориентирован на системы, где декодирование Dolby Digital надежнее, чем AAC multichannel. Для современных программных плееров универсальной необходимости в нем нет, поэтому параметр лучше связывать с требованиями конкретного устройства.

--reverse-double-order меняет порядок двух выходов у double-схемы. Это влияет на то, какая версия аудио встречается раньше в контейнере и может выбираться некоторыми плеерами по умолчанию. Опция особенно полезна, когда домашняя система предпочитает 5.1-дорожку, а мобильный профиль — стерео.

Субтитры внутри исходного файла

По умолчанию Don Melton Video Transcoding пытается автоматически обнаружить первый forced subtitle и прожечь его в видео. Forced-дорожки используются для фраз на иностранном языке, надписей и других эпизодов, которые должны появляться даже при выключенных обычных субтитрах. Прожиг надежен с точки зрения отображения, потому что текст или bitmap становится частью видеокадра и больше не зависит от поддержки формата субтитров плеером.

Конкретную дорожку можно указать через --burn-subtitle. Аргумент scan просит HandBrake выполнить специальный поиск forced-фрагментов в языке основной аудиодорожки.

transcode-video --burn-subtitle 3 "/Media/Movie.mkv"
transcode-video --burn-subtitle scan "/Media/Movie.mkv"

Режим scan удобен, но его результат нельзя считать безошибочным: forced-флаг на дисках и рипах размечен не всегда последовательно. Ошибка может проявиться только в готовом видео, если нужный фрагмент находится далеко от начала. Поэтому для важного материала надежнее сначала выполнить --scan, определить дорожку и проверить короткий диапазон глав, где точно есть реплика.

Добавление и принудительный флаг

--add-subtitle сохраняет субтитры отдельной дорожкой. Выбор возможен по номеру, языку или через all. --force-subtitle добавляет выбранный поток и устанавливает forced-флаг. Опция --no-auto-burn отключает автоматический прожиг первого forced-потока, если пользователь хочет полностью контролировать поведение.

transcode-video --add-subtitle eng "/Media/Movie.mkv"
transcode-video --force-subtitle 2 "/Media/Movie.mkv"
transcode-video --no-auto-burn "/Media/Movie.mkv"

Здесь важен формат. PGS с Blu-ray — bitmap-субтитры и не являются текстом. Они крупнее, зависят от геометрии кадра и имеют ограничения в MP4. DVD-субтитры тоже основаны на изображениях. Поэтому перенос всех субтитров без разбора особенно рискован при целевом MP4; для переносимой коллекции текстовый SRT часто практичнее.

Внешние SRT: прожиг, добавление и привязка метаданных

Внешний SubRip-файл можно добавить как отдельную дорожку через --add-srt, прожечь через --burn-srt или добавить с forced-флагом через --force-srt. Имена файлов с запятыми поддерживаются, что удобно для сложных названий релизов.

transcode-video --add-srt "/Subs/Movie.ru.srt" "/Media/Movie.mkv"
transcode-video --burn-srt "/Subs/Forced.srt" "/Media/Movie.mkv"

После добавления внешнего файла к нему можно привязать ISO-код языка через --bind-srt-language, кодировку через --bind-srt-encoding и временное смещение через --bind-srt-offset. Эти параметры относятся к ранее указанному SRT, поэтому порядок аргументов важен при нескольких файлах.

transcode-video \
  --add-srt "/Subs/Movie.ru.srt" \
  --bind-srt-language rus \
  --bind-srt-encoding utf-8 \
  --bind-srt-offset 0 \
  "/Media/Movie.mkv"

Смещение задается в миллисекундах и может быть положительным или отрицательным. Его следует исправлять по реально измеренному рассинхрону, а не случайным подбором. Если субтитры начинают правильно, но постепенно уходят от речи, проблема, скорее всего, связана не с постоянным offset, а с различием частоты кадров или таймбазы.

Расширенные параметры HandBrake и x264

Когда встроенных опций недостаточно, Don Melton Video Transcoding позволяет передать параметр непосредственно x264 или HandBrakeCLI. -E/--encoder-option работает с настройками x264, а -H/--handbrake-option — с API HandBrake. Параметр с префиксом подчеркивания может отключить настройку, которую программа добавляет сама.

transcode-video -E vbv-bufsize=8000 "/Media/Movie.mkv"
transcode-video -H stop-at=duration:30 "/Media/Movie.mkv"

Это мощный, но рискованный уровень. Можно легко разрушить внутренние предположения программы: например, отключить маркеры, изменить ratecontrol или передать несовместимый muxer. Поэтому расширенные опции лучше применять только после --dry-run и понимания того, какой параметр заменяется. Некоторые API HandBrake специально запрещены, потому что конфликтуют с логикой обертки.

Если цель состоит в полностью ручном управлении десятками параметров HandBrake, преимущество Don Melton Video Transcoding уменьшается. Набор наиболее полезен там, где его автоматическая политика является базой, а прямые HandBrake/x264-опции нужны лишь для исключений.

Диагностический вывод

-v или --verbose увеличивает объем диагностической информации, -q/--quiet уменьшает его. В интерактивном поиске проблемы verbose полезен, потому что видны решения сканера и формируемые параметры. В cron-задаче или скрипте, наоборот, лишний поток текста затрудняет поиск ошибки, поэтому quiet может быть уместнее при отдельном сохранении stderr и итогового лога.

Не стоит путать диагностический вывод Ruby-обертки с файлом .log HandBrake. Первый объясняет поведение команды во время запуска, второй содержит подробности реального кодирования и используется query-handbrake-log. Для сложного сбоя полезны оба источника.

convert-video: смена контейнера без повторного кодирования видео

convert-video нужен, когда видеопоток уже подходит, а контейнер — нет. Команда принимает MKV и создает MP4 либо принимает MP4 и создает MKV. Видео не перекодируется, поэтому операция обычно намного быстрее полного transcode-video и не накапливает дополнительную потерю качества.

convert-video "Movie.mkv"
convert-video "Movie.mp4"

Однако без перекодирования видео не означает бит-в-бит копирование всех потоков. При переходе в MP4 аудиодорожка может потребовать преобразования в AAC или AC-3. Главы, названия дорожек и большинство совместимых субтитров переносятся, но Blu-ray PGS не подходит для обычного MP4-сценария и игнорируется. Поэтому перед перепаковкой важно понимать не только видеокодек, но и весь набор потоков.

Практический случай: фильм уже много часов кодировался в H.264 внутри MKV, а телевизор удобнее индексирует MP4. Повторять x264 не нужно — convert-video меняет контейнер. Обратный переход полезен, если позже понадобилась более свободная работа с субтитрами и дополнительными дорожками.

Когда лучше сразу выбрать --mp4

Если требования конечного устройства известны заранее и все нужные дорожки совместимы с MP4, проще запустить transcode-video --mp4. convert-video особенно ценен как поздний этап, когда решение о контейнере изменилось после транскодирования или когда одна видеокопия должна существовать в разных контейнерах без повторного кодирования картинки.

query-handbrake-log: что можно узнать из журналов

Каждый обычный запуск transcode-video оставляет файл .log. query-handbrake-log умеет читать один журнал или каталог и выводить четыре вида отчета: time, speed, bitrate и ratefactor. Это простой способ превратить технический лог в данные, пригодные для сравнения серии заданий.

query-handbrake-log time "/Transcoded/Logs/"
query-handbrake-log speed "/Transcoded/Logs/"
query-handbrake-log bitrate "/Transcoded/Logs/"
query-handbrake-log ratefactor "/Transcoded/Logs/"

time показывает длительность кодирования и сортирует результаты от коротких к длинным. Для двухпроходных процессов учитывается суммарное время. Такой отчет быстро находит фильмы, которые неожиданно кодировались в несколько раз дольше остальных, что часто связано с фильтрами, необычным разрешением, сложностью материала или другим энкодером.

speed выводит среднюю скорость в кадрах в секунду и сортирует от быстрых результатов к медленным. Если источник имеет 23.976 fps, значение выше этого порога означает кодирование быстрее реального времени, ниже — медленнее. Но сравнивать fps корректно только между достаточно похожими заданиями: 480p и 2160p, x264 и x265, software и NVENC находятся в разных вычислительных классах.

bitrate извлекает фактический видеобитрейт из лога. Это особенно полезно для Matroska, где некоторые внешние утилиты показывают лишь приблизительные оценки общего потока. Сортировка позволяет увидеть, какие файлы сильно недобрали цель, а какие вышли выше нее из-за сложного материала.

ratefactor связан со средним P-frame quantizer x264 и используется как относительный индикатор качества внутри сопоставимой серии. Это не универсальная шкала MOS и не заменяет визуальную проверку. Его разумно применять для поиска выбросов: например, если десятки похожих рипов имеют близкие значения, а один резко отличается, этот файл стоит посмотреть отдельно.

Пакетная обработка и очереди

Все команды принимают несколько входов, но для серьезной очереди документация рекомендует отдельный скрипт. Причина проста: разные фильмы нередко требуют разных значений кропа, title, аудиодорожек или субтитров. Одна длинная команда с wildcard удобна только для действительно однородных файлов.

#!/usr/bin/env bash
transcode-video --crop 132:132:0:0 "/Rips/Movie 1.mkv"
transcode-video "/Rips/Movie 2.mkv"
transcode-video --crop 0:0:240:240 "/Rips/Movie 3.mkv"

Такой файл легко прочитать перед запуском, можно вручную переставлять задания и перезапускать только неудачную строку. Если набор большой, удобнее хранить пути в queue.txt, а индивидуальные параметры — в отдельных файлах. Тогда управляющий скрипт берет первый путь, строит опции, удаляет выполненную строку и продолжает. Этот подход прост, но хорошо переживает перезагрузку и не требует отдельной базы заданий.

При пакетной обработке нельзя полагаться только на успешный exit code. После завершения полезно проверить, что ожидаемый выходной файл существует, имеет разумную длительность, содержит нужные аудио- и субтитровые дорожки, а лог не оборвался до финального muxing. Сам Don Melton Video Transcoding не ведет полноценную очередь с транзакционным состоянием, ретраями и графическим мониторингом; эту логику берет на себя внешний скрипт.

Постоянные и индивидуальные параметры

Общие параметры лучше писать один раз в переменную или в функцию. Например, если вся библиотека предназначена для MP4, --mp4 можно применять ко всем заданиям. Индивидуальный кроп, выбор commentary track или forced subtitle хранится отдельно. Такая структура снижает риск, что случайная опция одного фильма перейдет на следующий.

Для путей с пробелами всегда нужны кавычки. В Bash безопаснее хранить путь как один элемент массива, а не склеивать команду строкой. В PowerShell также лучше использовать массив аргументов или оператор вызова, а не вручную строить длинную строку с несколькими уровнями кавычек. Большинство таинственных ошибок пакетной обработки на самом деле связано не с видео, а с тем, что оболочка разбила путь на части.

Практический сценарий: Blu-ray MKV в компактный MKV

Наиболее естественный сценарий начинается с отдельного MKV, извлеченного из диска. Сначала выполняется --scan, чтобы подтвердить основную аудиодорожку, forced subtitle и длительность. Затем запускается detect-crop. Если оба детектора согласны и предпросмотр показывает только черные поля, значение переносится в transcode-video. Для обычного H.264 результата достаточно стандартного энкодера и контейнера MKV.

transcode-video --scan "/Rips/Movie.mkv"
detect-crop "/Rips/Movie.mkv"
transcode-video --crop 132:132:0:0 "/Rips/Movie.mkv"

Если у исходника есть commentary track, его добавляют явно по номеру и присваивают название. Если на диске forced subtitle корректно отмечен, его можно оставить автоматике; если нет — указать --burn-subtitle. Такой способ дает меньше сюрпризов, чем --add-audio all --add-subtitle all, потому что структура результата формируется осознанно.

Практический сценарий: DVD и SD-материал

DVD отличается не только меньшим разрешением. Часто встречаются анаморфный пиксель, interlaced или telecined video, необычные частоты и несколько VOB-структур. Поэтому для SD особенно важно посмотреть вывод --scan. Если программа автоматически применяет deinterlace или меняет rate, это должно соответствовать природе источника, а не только внешнему впечатлению в одном плеере.

Целевой видеобитрейт для DVD ниже, чем для Blu-ray, поэтому копировать настройки 1080p вручную обычно нет смысла. Если исходник очень шумный или содержит пленочное зерно, можно поднять --target, но это решение следует принимать после тестового фрагмента. На чистой студийной анимации стандартная SD-цель может быть более чем достаточной, тогда как старый зернистый мастер потребует больше данных.

При кропе DVD важно учитывать не квадратный пиксель. Если источник имеет анаморфную разметку, видимая геометрия после декодирования отличается от физических 720×480 или 720×576. Don Melton Video Transcoding и HandBrake учитывают aspect metadata, но принудительный --pixel-aspect следует задавать только при явной проблеме исходника.

Практический сценарий: MP4 для телевизора или медиаплеера

Если устройство предпочитает MP4, основной запуск дополняется --mp4. Перед этим нужно проверить аудио и субтитры. H.264 + AAC/AC-3 обычно переносимее, чем редкие lossless-кодеки и PGS. Если дорожка несовместима с MP4, копирование оригинала может завершиться ошибкой либо потребовать перекодирования.

transcode-video --mp4 --main-audio eng --add-audio 5="Commentary" "/Rips/Movie.mkv"

Удобно сначала выполнить тот же вызов с --dry-run. В сформированной команде видно, какие дорожки будут кодироваться, какой muxer выбран и не включена ли случайно несовместимая опция. После транскодирования стоит открыть свойства файла в целевом плеере, а не только в VLC на компьютере: аппаратные телевизоры и приставки часто имеют более узкие ограничения.

Практический сценарий: сохранить видео, но заменить контейнер

Если H.264 или HEVC уже готов, повторный запуск transcode-video создает ненужное поколение потерь. В таком случае применяется convert-video. Сначала полезно посмотреть, какие аудио и субтитры находятся в файле. Если целевой MP4 не принимает один из них, нужно решить, перекодировать, удалить или оставить контейнер MKV.

Перепаковка особенно полезна для двух вариантов одной библиотеки. Например, мастер может храниться в MKV с несколькими дорожками, а для отдельного устройства создается MP4. Видео остается тем же, поэтому процесс быстрее и не меняет картинку. Ограничения будут в основном на уровне аудио, субтитров, метаданных и особенностей muxer.

Практический сценарий: HEVC

Для x265 достаточно выбрать соответствующий encoder. Но перед массовым запуском нужно учитывать три фактора: скорость программного HEVC, декодирование на конечном устройстве и изменение поведения ratecontrol. Нельзя автоматически предполагать, что x265 при любой настройке даст то же качество вдвое меньше. Эффективность зависит от сцены и параметров.

transcode-video --encoder x265 --target 1080p=4500 "/Rips/Movie.mkv"

Приведенное значение цели — пример пользовательской настройки, а не рекомендуемое универсальное число. Для собственного профиля лучше выбрать несколько типичных фильмов: чистую цифровую съемку, зернистый материал, анимацию и быстрый экшен. Если новый профиль приемлем на всех, его можно переносить на очередь. Если он выигрывает только на одном типе источника, разумнее иметь несколько политик.

Практический сценарий: аппаратное кодирование ради скорости

На рабочей станции с доступным NVENC, Quick Sync или VideoToolbox аппаратный encoder может радикально сократить время обработки. Don Melton Video Transcoding упрощает выбор, но не скрывает особенности backend. Для начала нужно убедиться, что encoder перечислен в HandBrakeCLI --help, затем выполнить короткий тест и сравнить получившийся файл с x264 на сложных сценах.

Если аппаратный backend падает до начала кодирования, причина обычно находится в драйвере, доступности устройства, сборке HandBrake или ограничениях виртуальной среды. Переключение обратно на x264 — полезная диагностика: если тот же файл с x264 работает, источник и контейнер, скорее всего, исправны, а проблема локализуется в аппаратном encoder.

Практический сценарий: комментарий режиссера и несколько языков

Лучше сначала получить номера дорожек через --scan. Затем основную озвучку выбрать --main-audio, а комментарии добавить отдельно. Если языки размечены корректно, можно использовать ISO-коды, но commentary track часто имеет тот же язык, что основной, поэтому по одному eng отличить их невозможно.

transcode-video \
  --main-audio 1="English" \
  --add-audio 4="Director Commentary" \
  --add-audio 5="Producer Commentary" \
  "/Rips/Movie.mkv"

Для commentary обычно достаточно стандартной узкой схемы дополнительного аудио, то есть одной AAC-дорожки. Переключать все дополнительные треки в double имеет смысл только при реальной необходимости многоканального варианта. Иначе размер растет без заметной пользы.

Практический сценарий: forced subtitles

Forced subtitle лучше рассматривать как часть фильма, а не как опциональную локализацию. Если рип правильно выставил forced-флаг, стандартная автоматика может прожечь дорожку. Если флаг отсутствует, надежнее указать номер вручную. Для диска, где forced-фразы спрятаны внутри полной дорожки, режим scan помогает найти нужные сегменты, но его нужно проверять.

Хорошая проверка — ограничить транскодирование главой с известной иностранной репликой. Если субтитр появился вовремя, размер и позиция нормальны, можно запускать полный фильм. Это экономит часы по сравнению с обнаружением ошибки после финального кодирования.

Практический сценарий: библиотека с разным разрешением

Смешанная папка 480p/720p/1080p — как раз тот случай, где автоматические target значения полезнее одного фиксированного битрейта. Если нужна собственная политика, можно переопределить отдельные классы. Тогда одна команда применяет, например, повышенную цель только к 1080p, не раздувая DVD.

При этом стоит разделить решение о размере кадра и о битрейте. --max-width может превратить 1080p в 720p, после чего логика цели должна соответствовать уже меньшему выходу. Если вы одновременно меняете масштаб и --target, --dry-run помогает увидеть итоговую комбинацию и не гадать, какой профиль сработал.

Что делать, если transcode-video не находится

Сообщение оболочки вроде command not found означает, что исполняемый файл gem не находится в PATH. Это не ошибка видео и не проблема HandBrake. Сначала нужно узнать, куда RubyGems установил бинарники, и добавить эту директорию в PATH либо использовать Ruby version manager, который делает это автоматически.

Если gem list video_transcoding показывает пакет, но команда отсутствует, причина почти всегда в разрыве между Ruby, которым выполнялась установка, и Ruby, активным в текущей оболочке. На машине могут одновременно существовать системный Ruby, Homebrew Ruby, rbenv или RVM. Команды which ruby, which gem и gem env помогают понять, относятся ли они к одному окружению.

Ошибка: не найден HandBrakeCLI, ffmpeg, mkvpropedit или mp4track

Don Melton Video Transcoding не встраивает эти утилиты внутрь gem. Если одна зависимость отсутствует, соответствующая операция не работает. Установка GUI HandBrake не всегда означает наличие CLI-команды с правильным именем в PATH. Аналогично GUI MKVToolNix может быть установлен, но mkvpropedit должен быть доступен как отдельный бинарник.

Полезно запускать каждый бинарник напрямую. Если HandBrakeCLI --version не работает, исправлять нужно PATH или установку HandBrake. Если команда работает в интерактивном Terminal, но не в cron/службе, сравните переменные окружения: сервисы часто запускаются с гораздо более коротким PATH.

Ошибка сканирования образа диска

Команда может сообщить, что сканирование media или выбранного title не удалось. Сначала нужно убедиться, что каталог действительно является нешифрованной структурой Blu-ray/DVD и не поврежден. Don Melton Video Transcoding не предназначен для самостоятельного обхода шифрования коммерческого диска. Если исходник воспроизводится только через специальный decryptor, его лучше предварительно извлечь в обычный MKV.

Другая причина — несовместимость конкретной структуры с версией HandBrakeCLI. Для диагностики имеет смысл запустить HandBrakeCLI на том же каталоге без обертки. Если HandBrake тоже не может определить title, проблему нельзя решить параметром Don Melton Video Transcoding. Если HandBrake видит структуру, а обертка нет, тогда уже следует проверять формат scan output и совместимость версий.

Ошибка: detect-crop выдает разные результаты

Results differ — не авария, а честное сообщение о расхождении двух детекторов. Следующий шаг — открыть оба предложенных варианта в mpv и посмотреть несколько сцен. Выбирать большее число автоматически опасно: оно удалит больше картинки. minimal как fallback снижает риск, но может оставить тонкую черную полоску.

Особенно осторожно следует относиться к фильмам с меняющимся форматом кадра. Если один алгоритм анализировал сцену 2.40:1, а другой попал на раскрытый IMAX-кадр, оба могут быть правы для разных моментов. В таком случае лучший кроп для всего фильма часто равен нулю или минимальному значению, сохраняющему максимальную полезную область.

Ошибка: субтитры исчезли в MP4

Первый вопрос — формат субтитров. Blu-ray PGS нельзя считать универсальным потоком для MP4. Если важна переносимость, проще прожечь forced PGS или подготовить SRT. DVD bitmap subtitles также поддерживаются неодинаково разными плеерами. То, что контейнер технически записал дорожку, еще не гарантирует, что телевизор ее покажет.

Второй вопрос — была ли дорожка действительно включена. --copy-audio all не добавляет субтитры, а --add-subtitle должен быть указан отдельно. Проверьте --scan до кодирования и свойства выходного файла после. Если вы использовали --burn-subtitle, отдельной дорожки в контейнере и не должно быть — она уже стала частью изображения.

Ошибка: выбран не тот язык аудио

Если основной звук задан кодом языка и такого кода нет, программа возвращается к первой аудиодорожке. Поэтому отсутствие ожидаемого rus, eng или jpn может не привести к явной ошибке. Перед пакетной обработкой важно убедиться, что входные файлы размечены одинаково.

Для критичной очереди можно добавить внешний шаг проверки: сначала парсить --scan и останавливать файл, если требуемый язык не найден. Это уже логика скрипта вокруг программы, зато она исключает тихий fallback на неподходящую озвучку.

Ошибка: E-AC-3 не проходит в MP4

Enhanced AC-3 поддерживается программой как аудиоформат, но конкретная комбинация HandBrakeCLI и MP4 muxer может отвергнуть encoder с сообщением о несовместимости. Если E-AC-3 обязателен, один вариант — оставить MKV, другой — закончить транскодирование в совместимом контейнере и затем проверить перепаковку через convert-video, который использует FFmpeg для части операций.

Не следует лечить такую ошибку случайной заменой расширения .mkv на .mp4. Контейнер определяется структурой файла, а не именем. Если muxer не поддерживает сочетание потоков, требуется реальная перепаковка или перекодирование аудио.

Ошибка: VBV underflow в логе

При стандартной special-схеме x264 может печатать предупреждения VBV underflow. В документации проекта это объясняется как следствие того, что одновременно работают ограничение битрейта и нижняя граница качества. Само по себе сообщение не означает поврежденный файл.

Оценивать нужно результат: завершилось ли кодирование, существует ли файл, корректна ли длительность, нет ли визуального дефекта. Если предупреждения мешают диагностике или требуется более простая ratecontrol-модель, можно изучить --simple. Но менять схему только ради чистого лога без просмотра результата не обязательно.

Ошибка: аппаратный encoder недоступен

Если указанный nvenc_h264, qsv_h265 или другой backend не найден, проверьте сначала список HandBrakeCLI. Причины включают отсутствие совместимого GPU, старый драйвер, сборку HandBrake без нужного модуля, удаленную сессию, контейнер или виртуальную машину без доступа к устройству.

Диагностический тест прост: тот же исходник запустить с x264. Если software-режим работает, а hardware — нет, менять аудио, кроп или субтитры бессмысленно. Нужно чинить именно аппаратный путь. После появления encoder в HandBrakeCLI можно возвращаться к Don Melton Video Transcoding.

Ошибка: x265 работает слишком медленно

Программный HEVC требует значительно больше вычислений, чем x264, особенно на медленных пресетах и высоком разрешении. Это нормальное свойство encoder, а не обязательно зависание. query-handbrake-log speed помогает сравнить fps с предыдущими заданиями и понять, насколько сильна разница.

Варианты решения: использовать более быстрый preset, выбрать аппаратный HEVC encoder, уменьшить разрешение, повысить допустимое время обработки или вернуться на x264. Выбор зависит от цели. Если библиотека воспроизводится в основном на старых устройствах, многочасовое x265-кодирование может вообще не иметь практического смысла.

Ошибка: внешние SRT идут не синхронно

Если смещение постоянно от начала до конца, подходит --bind-srt-offset. Если ошибка растет постепенно, причина другая: субтитры подготовлены под релиз с иной частотой кадров, монтажом или длительностью. Постоянный offset исправит только одну точку и ухудшит остальные.

Для рассинхрона, который растет, SRT следует пересинхронизировать отдельным редактором субтитров или найти файл для того же издания. Don Melton Video Transcoding умеет привязать готовый offset, но не является редактором таймингов.

Ошибка: итоговый файл неожиданно большой

Проверять нужно не только видеобитрейт. Большой размер может создавать скопированная TrueHD/DTS-HD дорожка, несколько commentary tracks, высокая --target или --target big, отсутствие кропа у широких черных полей, а также сложный зернистый материал, на котором standard ratecontrol выходит выше цели ради минимального качества.

Сначала выполните query-handbrake-log bitrate, затем посмотрите структуру аудио. Если видеопоток близок к ожиданиям, а файл все равно огромен, причина почти наверняка в звуке или числе дорожек. Если видео намного выше цели, это повод проверить сложность материала и активную ratecontrol-схему.

Ошибка: итоговый файл слишком маленький или выглядит хуже ожидаемого

Низкий битрейт может быть нормален для легко сжимаемой анимации или статичных сцен. Но если видны banding, блоки и потеря текстуры, попробуйте поднять target, отказаться от агрессивного preset или аппаратного encoder, а также убедиться, что случайно не масштабировали 1080p до 720p. Нежелательный фильтр шумоподавления тоже может восприниматься как слишком сильное сжатие.

Не стоит сравнивать только размер файла. Два encoder могут расходовать одинаковый битрейт по-разному. Качественная проверка проводится в движении на проблемных сценах, а не по одному стоп-кадру и не по числу мегабайт.

Ограничения Don Melton Video Transcoding

  • Нет графического интерфейса: все действия задаются опциями и путями в командной строке.
  • Для основной работы нужны внешние инструменты HandBrakeCLI, FFmpeg, MKVToolNix и MP4v2, а для удобного просмотра кропа — mpv.
  • Автоматический кроп не гарантирует правильный результат на материале с меняющимся aspect ratio; отдельная визуальная проверка остается полезной.
  • Формат MP4 ограничивает некоторые типы аудио и bitmap-субтитров сильнее, чем MKV.
  • Выбор hardware encoder зависит от конкретной сборки HandBrake, драйвера и доступного устройства.
  • Пакетная обработка не включает развитую очередь с GUI, приоритетами, ретраями и уведомлениями; для этого нужен внешний скрипт или обертка.
  • Программа не заменяет риппер защищенных дисков и ожидает уже доступный файл либо нешифрованную структуру.
  • Внешний SRT можно сместить, но полноценного редактирования текста и таймингов нет.

Эти ограничения логично следуют из архитектуры. Набор концентрируется на воспроизводимом транскодировании и автоматизации параметров, а не на визуальном монтаже, авторинге дисков или управлении медиатекой. Пользователь, которому нужен именно контролируемый CLI-процесс, получает гибкость; пользователю, который ожидает кнопки, предпросмотр на таймлайне и визуальную очередь, будет удобнее другой класс программ.

Как выбрать между автоматикой и ручными параметрами

Хорошая стратегия — начинать с минимальной команды и добавлять только параметры, для которых есть конкретная причина. Если исходный MKV имеет правильную геометрию, первую нужную аудиодорожку и корректный forced-флаг, стандартный запуск уже решает большую часть задачи. Чем больше ручных переопределений, тем выше вероятность конфликтов при обновлении HandBrake или переходе на другой компьютер.

Параметры стоит фиксировать, когда правило стабильно: например, все файлы для определенного телевизора должны быть MP4, commentary всегда добавляется с конкретным названием, а каталог анимации хранится в 720p. Индивидуальные исключения — кроп конкретного фильма, редкий detelecine, нестандартный subtitle track — лучше держать рядом с конкретным заданием.

--dry-run является границей между предположением и фактической конфигурацией. Если непонятно, как несколько опций взаимодействуют, не нужно угадывать. Сформированная команда HandBrake показывает, какой encoder, muxer, rate, audio map и x264 options действительно выбраны.

Какие исходники подходят лучше

Наиболее предсказуемы отдельные MKV с одним фильмом или эпизодом, корректно размеченными языками и выделенным forced subtitle. В таком файле FFmpeg и HandBrake имеют прямой доступ к потокам, а detect-crop может сравнить два анализа. Нешифрованная структура диска тоже поддерживается, но часть автоматизации и предпросмотра ограничена.

Менее удобны транспортные потоки со сложными DVB-субтитрами, файлы с поврежденными timestamps, записи переменной частоты кадров с некорректной метаинформацией и контейнеры, где все языки помечены как und. Программа передает много работы надежным внешним инструментам, но не может исправить любую ошибочную метаинформацию без явной команды пользователя.

Логи как часть рабочего процесса

Файл .log лучше рассматривать как технический паспорт конкретного транскода. Он фиксирует версию HandBrake, параметры, скорость и статистику encoder. Если через несколько месяцев файл кажется подозрительно большим или медленным, журнал позволяет понять, чем он отличался от соседних.

Для большой коллекции имеет смысл хранить логи рядом с результатом или в отдельном каталоге с теми же базовыми именами. Тогда query-handbrake-log превращает архив в простой набор метрик. Удалять логи сразу после успешного воспроизведения обычно невыгодно: они малы по сравнению с видео, но экономят время при расследовании.

Сравнение Don Melton Video Transcoding с аналогами

ПрограммаЛучше подходит дляГлавное ограничение
Don Melton Video TranscodingСценарного транскодирования рипов с готовой политикой битрейта, аудио, кропа и логовТребует командной строки и набора внешних CLI-зависимостей
HandBrakeРучного и пакетного H.264/HEVC-кодирования с графическим интерфейсом или HandBrakeCLIНет именно той готовой политики Don Melton для выбора target, audio width и отдельного анализа логов
FFmpegМаксимально гибких конвейеров, фильтров, нестандартных контейнеров и автоматизацииБольшинство правил выбора потоков, битрейта и совместимости пользователь строит сам
StaxRipГлубокой настройки кодирования через GUI, AviSynth/VapourSynth и внешние энкодерыСильнее ориентирован на Windows и более сложный проектный workflow
HybridМногокодековых задач с большим числом фильтров и тонких параметровИнтерфейс и число настроек сложнее для простого воспроизводимого сценария
Shutter EncoderПовседневной конвертации и FFmpeg-операций через графический интерфейсМеньше ориентирован на сценарий рипов с отдельным detect-crop и анализом HandBrake-логов

Практический выбор зависит от того, где нужна сложность. Don Melton Video Transcoding переносит сложность внутрь готовых правил: пользователь вводит короткую команду, а набор формирует HandBrake-параметры. HandBrake удобнее, если важна визуальная настройка и очередь. FFmpeg предпочтителен, когда нужна произвольная обработка, которой нет в готовой обертке. StaxRip и Hybrid уместны для глубокого GUI-процесса с фильтрами и внешними кодировщиками, а Shutter Encoder — для более прямых конвертаций без необходимости строить собственный CLI.

Если задача — последовательно обрабатывать личную коллекцию Blu-ray/DVD-рипов с одинаковой логикой, отдельной проверкой кропа и последующим анализом логов, Don Melton Video Transcoding дает компактный, сценарный процесс. Если нужно интерактивно смотреть превью каждого фильтра, монтировать, накладывать графику или работать с широким набором профессиональных mezzanine-кодеков, следует выбирать инструмент другого класса.

Частые вопросы по работе

Можно ли использовать программу без знания HandBrakeCLI?

Для базового запуска — да: достаточно понимать путь к файлу и несколько высокоуровневых опций. Но при ошибках и нестандартном материале знание HandBrake сильно помогает. --dry-run специально делает границу прозрачной: пользователь видит, какую команду построила обертка, и может разобраться в конкретном параметре.

Обязательно ли кадрировать черные полосы?

Нет. Без --crop программа оставляет кадр как есть. Удаление постоянных черных полей уменьшает число кодируемых пикселей и иногда повышает эффективность, но неправильный кроп хуже, чем сохраненная рамка. Для переменного aspect ratio разумно оставить максимум изображения.

Почему по умолчанию MKV, если многие устройства любят MP4?

Matroska свободнее в отношении аудио и субтитров и поэтому удобна как универсальный контейнер для транскодирования. Если целевой клиент требует MP4, --mp4 меняет выход сразу, а convert-video позволяет перепаковать уже готовое видео позднее.

Нужно ли сохранять lossless-аудио?

Это зависит от цели. Для компактной переносимой копии lossless-дорожка может занимать непропорционально много места, поэтому стандартная политика переводит звук в AAC/AC-3. Для архивной медиатеки пользователь может применять --copy-audio, если контейнер и плеер поддерживают исходный кодек.

Можно ли добавить все языки одной опцией?

Да, есть --add-audio all и --add-subtitle all. Но на реальном диске это часто создает перегруженный файл. Лучше сначала выполнить --scan и выбрать действительно нужные дорожки или языковые коды.

Можно ли использовать один preset для всей коллекции?

Можно, если коллекция однородна и результат проверен. Но смешение SD, 720p, 1080p, зернистого кино, анимации и телезаписей делает одну жесткую настройку менее надежной. Сильная сторона программы как раз в том, что базовый target меняется по разрешению, а отдельные исключения задаются точечно.

Почему итоговый битрейт не равен target точно?

Потому что target — ориентир для ratecontrol. В стандартной схеме есть одновременно ограничение потока и минимальный уровень качества, поэтому сложный материал может превысить цель. В AVBR допускается заметное отклонение в обе стороны. Только совсем другая модель, вроде жесткого двухпроходного average bitrate, стремилась бы ближе к фиксированному среднему значению.

Можно ли полностью отключить звук?

Да, в справке предусмотрен --no-audio. Это полезно для немого исходника, промежуточного видео или научного материала, где звук не нужен. Для обычного фильма случайное включение этой опции приведет к полностью беззвучному выходу, поэтому в batch-скриптах ее лучше не задавать глобально.

Можно ли перенести названия дорожек?

Имена основной и добавочных аудиодорожек можно задавать вручную. Для копирования исходного имени есть --copy-audio-name. Названия глав импортируются отдельным CSV через --chapter-names. Это помогает сделать результат понятным в медиаплеере без последующего ручного редактирования метаданных.

Как понять, что очередь стала медленнее?

Не сравнивайте только субъективное время ожидания. Сохраните логи и запустите query-handbrake-log speed. Затем сравните файлы одного разрешения и одного encoder. Если скорость упала у всех, ищите изменения системы, HandBrake, preset или thermal throttling. Если медленный только один фильм, вероятнее, дело в фильтрах или сложности самого материала.

Что делать с предупреждением, которое не прерывает кодирование?

Сначала отличите warning от fatal error. Если процесс дошел до финального muxing, файл имеет правильную длительность и воспроизводится, предупреждение может быть диагностическим. Пример — VBV underflow в стандартной special-схеме. Если выход отсутствует или оборван, тогда нужно искать первую реальную ошибку выше по логу.

Рабочая схема без лишних действий

  1. Подготовить отдельный MKV или нешифрованный образ и убедиться, что он нормально воспроизводится.
  2. Выполнить transcode-video --scan, записать номера основной озвучки, комментариев и forced subtitle.
  3. Для файла запустить detect-crop и визуально проверить спорные значения.
  4. Собрать команду с минимальным набором переопределений: контейнер, кроп, нужные дорожки, при необходимости target или encoder.
  5. Проверить ее через --dry-run, если используются расширенные параметры.
  6. Для спорного фильма сначала закодировать небольшой диапазон глав.
  7. Запустить полный транскод и сохранить .log.
  8. Проверить выход именно на целевом устройстве и при необходимости добавить индивидуальное исключение в batch-скрипт.
  9. Для большой серии периодически анализировать каталоги логов через query-handbrake-log.

Такая последовательность использует сильные стороны набора и не превращает каждый фильм в ручную настройку десятков параметров. Большинство рипов проходит по короткому пути, а необычные источники получают отдельные решения. В результате автоматизация остается прозрачной: любое решение можно увидеть через scan, dry run или лог.

Что дает связка инструментов

Don Melton Video Transcoding полезен прежде всего как слой логики над HandBrake и несколькими контейнерными утилитами. Он автоматизирует выбор целевого битрейта, дает отдельную модель обработки основной и дополнительных аудиодорожек, умеет работать с forced subtitles, предоставляет проверяемый кроп, поддерживает смену H.264/x265 и аппаратных энкодеров, а также сохраняет журналы, пригодные для последующего анализа.

Главная практическая ценность — воспроизводимость. Команда может быть сохранена в shell-скрипте, проверена через --dry-run и повторена на десятках файлов без ручного переноса параметров из графического интерфейса. При этом программа не пытается скрыть все сложности: пользователь по-прежнему отвечает за правильный title, спорный кроп, совместимость контейнера, языки дорожек и доступность выбранного encoder.

Для аккуратно подготовленных Blu-ray/DVD-рипов процесс получается особенно логичным: scan → detect-crop → transcode-video → query-handbrake-log, а при необходимости container conversion выполняется отдельным convert-video без повторного кодирования картинки. Именно в такой цепочке набор раскрывает все свои реальные функции без приписывания ему возможностей монтажа или медиаменеджмента, которых в нем нет.

Как читать результат --scan

Вывод сканирования лучше разбирать сверху вниз. Сначала проверяются длительность, разрешение, display aspect и частота кадров. Если фильм должен быть 1080p/23.976, а scan показывает 720×480/29.97, вероятно, выбран не тот источник или title. Далее смотрят главы: их число косвенно помогает отличить основной фильм от бонуса, хотя само по себе не является надежным признаком.

В разделе аудио важны номер дорожки, язык, кодек и число каналов. Название может быть полезно, но оно зависит от того, как исходник был создан. Например, две английские 5.1-дорожки могут оказаться основной и descriptive audio, а комментарий может быть stereo. Если метки непонятны, нужно открыть источник в плеере и послушать несколько секунд, а затем закрепить номер через --main-audio или --add-audio.

Субтитры анализируются так же: номер, язык и forced-флаг. Если нужная forced-дорожка отсутствует как отдельный поток, режим --burn-subtitle scan может поискать forced-фрагменты внутри полной дорожки, но проверка тестовой главой остается самым надежным способом. При большом числе PGS-потоков не стоит добавлять их все в MP4 только потому, что они перечислены в scan.

Почему отдельный MKV часто удобнее образа диска

Нешифрованная структура Blu-ray/DVD поддерживается, но отдельный MKV дает более прямой доступ к информации о потоках. Forced subtitle можно изолировать в отдельную дорожку еще на этапе рипа, lossless-аудио — заранее привести к удобному промежуточному формату, а FFmpeg — использовать для независимого анализа кропа. В образе часть этих действий ограничивается структурой title и возможностями libbluray/libdvdnav.

Это не означает, что перед Don Melton Video Transcoding обязательно нужен конкретный риппер. Важен результат: один файл с корректными timestamps, метками языков и нужными дорожками обычно проще автоматизировать. Если же исходник уже хранится как каталог диска и корректно читается HandBrakeCLI, программа может работать и с ним, включая --scan и --title.

Названия глав и структура медиатеки

CSV для --chapter-names имеет простой формат NUMBER,NAME. Нумерация должна соответствовать главам входа. Перед импортом полезно сверить количество глав через scan, особенно если исходник был remuxed или обрезан: при измененной структуре готовый CSV от другого релиза может сместить названия.

Для медиатеки с фильмами и сериалами разумно хранить служебные файлы рядом с исходником: Movie.chapters.csv, Movie.crop.txt, внешние SRT и короткий shell-файл с индивидуальными опциями. Тогда спустя время можно восстановить, почему конкретный фильм кодировался иначе, не изучая историю оболочки.

Безопасная автоматизация через dry run

Для batch-процесса полезно разделить генерацию и выполнение. Первый проход строит команды с --dry-run и сохраняет их в лог; второй запускает реальные задания после просмотра нескольких примеров. Так легко заметить, что неожиданно выбрано --m4v, другой encoder, неправильный номер аудио или агрессивный crop.

В сложном скрипте dry run можно использовать как диагностический режим, включаемый переменной. Это позволяет тестировать изменения batch-логики на сотнях путей без многочасового кодирования. Однако вывод dry run не доказывает, что внешние бинарники успешно закончат работу: он показывает конфигурацию, а не результат обработки.

Как не перепутать проблему контейнера с проблемой кодека

MKV и MP4 — контейнеры, H.264/HEVC — видеокодеки, AAC/AC-3/E-AC-3 — аудиокодеки. Ошибка совместимости часто возникает, когда эти уровни смешивают. Например, HEVC можно хранить и в MKV, и в MP4, но конкретный старый телевизор может не декодировать HEVC независимо от контейнера. И наоборот, телевизор может декодировать H.264, но не видеть PGS в MP4.

При диагностике полезно задавать три отдельных вопроса: способен ли encoder создать поток; способен ли muxer поместить его в выбранный контейнер; способен ли целевой плеер воспроизвести комбинацию. Don Melton Video Transcoding помогает с первыми двумя уровнями через HandBrake/FFmpeg, но третий определяется устройством пользователя.

Когда convert-video не заменяет transcode-video

convert-video меняет упаковку, но не делает тяжелый исходный видеопоток компактнее. Если MKV содержит Blu-ray H.264 с десятками мегабит в секунду, перепаковка в MP4 сохранит этот видеопоток и почти тот же объем. Для уменьшения размера нужен именно transcode-video, который повторно кодирует картинку с выбранной ratecontrol-политикой.

Обратная ситуация тоже важна: если компактный H.264 уже получен, повторный transcode только ради расширения .mp4 ухудшит качество и потратит время. Здесь как раз нужен convert-video. Простое правило: менять кодек/битрейт/разрешение — transcode; менять только контейнер при совместимых потоках — convert.

Когда Don Melton Video Transcoding не лучший инструмент

Если нужно обрезать сцену по точным таймкодам, склеить несколько роликов, наложить графику, выполнить цветокоррекцию или собрать многодорожечный монтаж, набор не подходит по своей модели. Такие задачи требуют NLE или другого редактора. Можно передать некоторые фильтры HandBrake, но это не превращает CLI-обертку в монтажную систему.

Если требуется потоковая доставка HLS/DASH с десятками ABR-представлений, DRM, сегментацией и manifest-файлами, разумнее использовать специализированный FFmpeg pipeline или серверный transcoder. Don Melton Video Transcoding рассчитан на создание законченных файлов для хранения и воспроизведения, а не на упаковку adaptive streaming.

Если пользователь хочет полностью вручную управлять каждым фильтром FFmpeg, pixel format, color matrix, HDR metadata и сложными filter graphs, прямая работа с FFmpeg даст больше контроля. Преимущество Don Melton Video Transcoding появляется именно тогда, когда его готовые решения сокращают количество ручных параметров.

Памятка перед длинным запуском

  • Проверить, что исходный файл воспроизводится от начала до конца и не содержит очевидных повреждений.
  • Сделать --scan и записать нужные номера дорожек.
  • Убедиться, что выбранный контейнер совместим с нужным аудио и субтитрами.
  • Проверить кроп через detect-crop, если черные поля надо удалять.
  • Выполнить --dry-run при использовании необычного encoder или прямых HandBrake/x264 options.
  • Для редких настроек сначала перекодировать короткий диапазон глав.
  • Не отключать лог без причины.
  • Убедиться, что в каталоге назначения достаточно места и имя не конфликтует с существующим файлом.
  • После завершения проверить длительность, наличие дорожек и воспроизведение на целевом устройстве.

Эта памятка особенно полезна для ночных и многодневных очередей. Несколько минут предварительной проверки обычно дешевле, чем повторное кодирование полного Blu-ray из-за неверной дорожки или forced subtitle. При этом не требуется вручную проверять десятки технических параметров: scan, detect-crop и dry run закрывают разные уровни риска.

Заключение

Don Melton Video Transcoding — специализированный набор для тех, кому нужен повторяемый CLI-конвейер поверх HandBrake, а не визуальный конвертер. Его реальные преимущества складываются из автоматической политики target bitrate, осмысленного управления аудио и субтитрами, отдельной проверки кропа, возможности быстро перепаковать контейнер и инструментов анализа логов. При аккуратно подготовленном исходнике большинство работы сводится к короткой команде, а сложные случаи остаются контролируемыми через явные параметры и диагностический вывод.