AudionAudion

Encoding Pipelines

ENCODING_PIPELINES_RU.md

Encoding Pipelines

Зачем Разделены Архив, Монтаж, Хранение И Доставка

Эти страницы похожи, потому что все строят FFmpeg encode-команды, но цель у них разная.

Если выбирать только по codec, легко ошибиться. Выбирай по назначению результата.

Общие Поля

Во многих encode-разделах повторяются:

Tooltips над этими полями объясняют смысл без открытия документации.

Архив

Назначение: долговременные мастер-форматы.

Профили:

Цели:

Когда выбирать:

Контейнер по смыслу обычно MKV, потому что он хорошо держит FFV1/FLAC и служебные потоки.

Монтажные Кодеки

Назначение: intermediate/mezzanine для NLE.

Профили:

Цели:

Когда выбирать:

Рекомендации:

Хранение

Назначение: компактные качественные файлы для библиотеки или передачи.

Профили:

Цели:

Когда выбирать:

CRF:

Доставка / Публикация

Назначение: файлы для просмотра, заливки и передачи.

Профили:

CPU/NVENC/AMF/QSV выбираются отдельно в блоке Кодер, чтобы профиль описывал сценарий вывода, а не аппаратный backend.

Цели:

Когда выбирать:

Hardware encode использует CQ/QP, software encode обычно использует CRF.

Decode Backend

Декодировать через:

Decode backend отвечает за чтение входного потока. Он не равен encode backend. Например, можно декодировать AV1 через dav1d и кодировать H.264 через x264 CPU.

dav1d AV1 - не «ускоритель вообще», а принудительный декодер AV1 (-c:v libdav1d). На источнике другого кодека FFmpeg такой файл прочитать не может, поэтому preflight проверяет кодек первого файла Source и останавливает операцию с понятным сообщением. Для смешанного Source выбирай CPU/Auto.

Где живут кадры: -hwaccel_output_format

Аппаратный декодер отдаёт кадры либо в видеопамять, либо в системную. Управляет этим -hwaccel_output_format, и поведение по умолчанию у трёх стеков разное:

Поэтому проект задаёт формат сам:

Смешанные пары (например CUDA-декод и CPU-кодирование) полностью рабочие: аппаратный декодер ускоряет чтение, а кодирование идёт на CPU.

Encode Backend

Кодировать через:

Рекомендации:

Кодер применяется ко всем трём семействам таргетов: H.264, HEVC и AV1. Цель AV1 кодируется через SVT-AV1 на CPU и через av1_nvenc, av1_qsv или av1_amf на соответствующем железе. Регуляторы качества при этом всегда родные для backend: CRF и SVT-AV1 preset для CPU, CQ/QP и NVENC preset/QSV preset/AMF quality для аппаратных кодеров.

Перед hardware encode запускай Hardware Capabilities.

Audio Mode

Общее поле Аудио:

Для delivery обычно AAC. Для archive - source или FLAC. Для монтажных задач - source или PCM.

Не каждый режим влезает в любой контейнер, и это проверяется до запуска:

Недоступный режим гасится в GUI, а при переключении контейнера на MXF или MOV уже выбранный несовместимый режим сам переходит на PCM 24-bit. Backend проверяет то же самое, поэтому CLI и профиль тоже не могут собрать невозможную пару.

MP3 / LAME

При Аудио = MP3 появляется та же шкала пресетов LAME, что и на странице Аудио, - одна на весь проект:

Поле Битрейт аудио при MP3 показывается только для третьего варианта, потому что первые два его не читают. Значение 384 kbps для MP3 недоступно: потолок MPEG-1 Layer III - 320 kbps, и LAME молча опускает до него любое большее число. Ограничение живёт в общем контракте, поэтому и GUI, и CLI (AUDION_MP3_LAME_PRESET) кодируют MP3 одинаково.

Pixel Format

Варианты:

Практически:

Pixel format применяется и к аппаратным кодерам: выбранный формат переводится в родной формат кодера (yuv420p10lep010le, для QSV yuv420pnv12). Если выбранный кодер физически не умеет запрошенный формат, операция останавливается с явным сообщением, а не пишет молча другой формат:

auto оставляет согласование формата за FFmpeg — это по-прежнему поведение по умолчанию.

Encode Tuning

Флаги:

Не включай tuning “на всякий случай”. Он должен соответствовать материалу или delivery-требованию.

Это значения tune для x264/x265, поэтому блок показывается только при Кодер = CPU. У NVENC, QSV и AMF своя шкала качества (NVENC preset, QSV preset, AMF quality), и список tuning они не читают.

Test On First File

Тест: первый файл особенно важен для encode-разделов. Он проверяет:

Для больших Source это обязательная привычка.

Все проекты