x265

1. Сводка
Программно кодирует видео H.265/HEVC через libx265. Даёт более высокую эффективность сжатия, чем H.264, при сопоставимом качестве — ценой большего объёма вычислений; хорошо подходит для лестниц ABR в UHD/4K и архивных мастеров.
2. Когда использовать
- Готовите поставки HEVC для платформ и устройств, принимающих воспроизведение H.265.
- Уменьшаете архивные или мезонинные мастеры при высоком качестве, когда потеря времени на кодирование приемлема.
- Собираете лестницы ABR в UHD/4K, которые подаются на mp4 или в упаковщик HLS/DASH.
- Перекодируете из любого источника, отличного от HEVC, — перед перекодированием входа HEVC см. Антипаттерны.
3. Входы
Video—filtergraph.VideoTransform. Видеопоток или граф фильтров для кодирования. Обязателен.Совместимые узлы выше по потоку:
- map/video — выбирает видеопоток для выхода.
- vf/crop — обрезает кадр до интересующей области.
- vf/dar — задаёт метаданные соотношения сторон при отображении.
- vf/deinterlace — убирает артефакты чересстрочности.
- vf/fieldorder — меняет или задаёт флаг порядка полей.
- vf/format — преобразует пиксельный формат или цветовые свойства.
- vf/fps — меняет частоту кадров на выходе.
- vf/hwupload — загружает кадры в GPU для аппаратной обработки.
- vf/letterbox — дополняет кадр до целевого растра.
- vf/overlay — накладывает графику на видео.
- vf/scale — масштабирует видео до заданных размеров.
4. Выходы
Video—core.VideoTrack. Закодированная видеодорожка HEVC, готовая к мультиплексированию.Совместимые узлы ниже по потоку:
- ccinject — вставляет скрытые субтитры или субтитры в выход.
- mov — упаковывает потоки в контейнер QuickTime MOV.
- mp4 — упаковывает потоки в файл MP4 (ISO‑BMFF).
- mxf — упаковывает потоки в контейнер MXF.
- ts — упаковывает потоки в транспортный поток MPEG-2.
- dash — упаковывает выход для потоковой передачи MPEG-DASH.
- hls3 — упаковывает выход для HLS с плейлистами v3.
- hls5 — упаковывает выход для HLS с плейлистами v5.
5. Параметры

Форма «Настройки» раскладывает поля в два столбца. Левый столбец группирует
идентичность кодека и управление битрейтом; правый — GOP, опорные кадры и
сигнализацию. Описаны в порядке следования в форме. Некоторые поля
(Rate Factor, Max bitrate, Buffer size) появляются только после выбора
соответствующего режима Rate Control — они описаны в подпункте Когда
менять у соответствующей записи.
Левый столбец
Node Label (
string, по умолчанию пусто)Произвольное имя, отображаемое на плитке узла на холсте.
- Что задаёт. Подпись над плиткой; на кодирование не влияет.
- Когда менять. Задавайте, когда в одном графе несколько узлов x265 (например, разные битрейты лестницы ABR), чтобы каждая копия была узнаваема с одного взгляда.
H265 Codec Profile (
enum, по умолчанию"main")Профиль HEVC, записываемый в битовый поток.
- Что задаёт. Набор возможностей декодера, нужных для воспроизведения
выхода.
mainпринуждает к 8-битной цветности 4:2:0;main10допускает 10-битные пиксельные форматы для большей точности и HDR. - Когда менять. Используйте
mainдля SDR-поставок 8 бит ради максимальной совместимости с устройствами. Переходите наmain10для HDR-мастеров (PQ/HLG), 10-битных конвейеров градации и любого процесса, питаемого 10-битным фильтром выше по потоку (yuv420p10le). - Допустимые значения.
main,main10. - Обязательно. да.
- Что задаёт. Набор возможностей декодера, нужных для воспроизведения
выхода.
Preset (
enum, по умолчанию"medium")Компромисс «скорость/качество», поставляемый libx265.
- Что задаёт. Набор внутренних параметров кодера; более медленные пресеты делают больше анализа и дают меньший файл при том же качестве.
- Когда менять. Переходите на
fast/veryfast, когда ограничен ЦПУ или кодирование идёт в реальном времени; наslow/slower/veryslow— для архивных мастеров, где лишнее время кодера некритично. Пресеты HEVC медленнее эквивалентов H.264 — если важна пропускная способность, опустите на ступень относительно сопоставимого кодирования x264. - Допустимые значения.
ultrafast,superfast,veryfast,faster,fast,medium,slow,slower,veryslow,placebo. - Обязательно. да.
Codec Level (
enum, по умолчанию51, показан какAuto)Флаг тира/уровня HEVC, записываемый в битовый поток.
- Что задаёт. Бюджет декодера, который должен поддерживать плеер (разрешение, частота кадров, потолок битрейта, размер DPB).
- Когда менять. Оставляйте на
Auto(51, Level 5.1) для общего выхода UHD/4K; понижайте до41(Level 4.1), когда целевое устройство тянет HEVC только до 1080p; повышайте для 8K. Низкие уровни ограничивают размер кадра и битрейт, поэтому слишком малое значение отвергнет выбранное разрешение. - Допустимые значения.
1,11,12,13,2,21,22,3,31,32,4,41,42,5,51. - Обязательно. нет.
Rate Control (
enum, по умолчанию"abr")Выбирает стратегию битрейта и то, какие условные поля появляются.
- Что задаёт. Стратегию битрейта кодера: ABR держит средний битрейт, CRF держит постоянное воспринимаемое качество, CBR держит битрейт ровным.
- Когда менять. Выбирайте
abrдля предсказуемого размера файла,crf— для VOD, где качество важнее размера, иcbr— для вещания или доставки с фиксированной полосой. Смена режима открывает соответствующие поля ниже:crfпоказывает Rate Factor;abrиcbrпоказывают Bitrate, а Max bitrate и Buffer size доступны для ограничения VBV. - Допустимые значения.
abr,crf,cbr. - Обязательно. да.
Rate Factor (
number0–51, без значения по умолчанию; только CRF)Значение постоянного коэффициента качества.
- Что задаёт. Цель по воспринимаемому качеству для кодера. Меньшие числа дают выше качество и больший файл; шкала идёт от 0 (без потерь) до 51 (худшее).
- Когда менять. Типичные значения HEVC лежат в диапазоне 20–28:
22— распространённая точка качественного мастера,28— поставка меньшего размера. Тот же Rate Factor на HEVC даёт заметно меньший файл, чем эквивалентный CRF на H.264.
Bitrate (
numberкбит/с, без значения по умолчанию)Целевой битрейт видео.
- Что задаёт. Средний (ABR) или постоянный (CBR) выходной битрейт.
- Когда менять. Задавайте всегда, когда Rate Control —
abrилиcbr. Типичные значения HEVC примерно вдвое ниже эквивалента H.264 при том же качестве: 1500–2500 кбит/с для 720p, 3000–5000 кбит/с для 1080p, 8000+ кбит/с для UHD. - Обязательно. да, когда Rate Control —
abrилиcbr.
Max bitrate (
numberкбит/с, без значения по умолчанию; только ABR/CRF)Верхняя граница VBV.
- Что задаёт. Пиковый битрейт, который кодер вправе выдать.
- Когда менять. Задавайте, когда у тракта доставки есть потолок полосы — чанки HLS, аппаратные декодеры, спутниковые аплинки. Применяйте в паре с Buffer size.
Buffer size (
numberкбит/с, без значения по умолчанию; только ABR/CRF)Размер буфера VBV.
- Что задаёт. Размер виртуального буфера декодера, который кодер соблюдает при выдерживании Max bitrate.
- Когда менять. Приводите в соответствие буферу, заданному целевым декодером. Частая отправная точка — Buffer size, равный Max bitrate (буфер на одну секунду); бо́льшие буферы сглаживают качество ценой задержки декодера. Задавайте всегда, когда задан Max bitrate, — неограниченный VBV сводит ограничение на нет.
Two Pass (
boolean, по умолчаниюfalse)Включает проход сбора статистики перед финальным кодированием.
- Что задаёт. Делает ли libx265 проход анализа для измерения сложности сцен перед финальным кодированием.
- Когда менять. Включайте для кодирования в ABR, когда важны точность битрейта и качество; время кодирования при этом примерно удваивается. Выключайте для CRF (у него нет цели по битрейту) и для прямых эфиров.
Tune (
enum, по умолчанию пусто)Подстройки под тип контента поверх выбранного Preset.
- Что задаёт. Корректирует психовизуальные настройки и матрицы квантования под известный тип контента.
- Когда менять.
grain— чтобы сохранить зерно плёнки, а не дать кодеру его сгладить;zerolatency— для прямых трансляций;fastdecode— для маломощных декодеров;psnr/ssim— только при настройке под объективные бенчмарки. Оставляйте пустым, когда ничего не подходит. - Допустимые значения. пусто,
psnr,ssim,grain,zerolatency,fastdecode.
Scene Detection (
number, без значения по умолчанию)Порог вставки дополнительного ключевого кадра на склейках сцен.
- Что задаёт. Чувствительность детектора смены сцен в libx265. Большие числа означают, что для вставки ключевого кадра IDR кодеру нужна более резкая склейка.
- Когда менять. Оставляйте пустым для поведения по умолчанию. Повышайте для
материала с частыми кроссфейдами (концерты, клипы), чтобы кодер перестал
принимать смену освещения за склейку; ставьте
0, чтобы полностью отключить ключевые кадры на склейках, чего иногда требуют вещательные и HLS-конвейеры со строго периодическим GOP.
Advanced options (
array, по умолчанию[])Произвольная передача пар «ключ/значение» в libx265.
- Что задаёт. Список «сырых» имён и значений параметров libx265, которые без изменений передаются кодеру; редактируется в отдельном окне.
- Когда менять. Только когда настройка не вынесена в отдельное поле —
типичные записи:
psy-rd,psy-rdoq,limit-modes,rc-lookahead,hdr10-optили поля HDR-сигнализации, такие какmaster-displayиmax-cll.
Правый столбец
B-Frames (
number, по умолчанию4)Максимум подряд идущих B-кадров.
- Что задаёт. Предел числа двунаправленно предсказанных кадров, которые libx265 может разместить между опорными кадрами.
- Когда менять.
3или4— хорошие значения по умолчанию. Ставьте0для прямого эфира в режимеzerolatency(B-кадры добавляют задержку). Большие значения (до 16) незначительно улучшают сжатие ценой сложности декодера — большинство бытовых декодеров HEVC принимают до4.
Reference Frames (
number, по умолчанию3)Размер DPB.
- Что задаёт. Сколько ранее декодированных кадров P- или B-кадр может использовать как опорные для предсказания движения.
- Когда менять.
3–4— практичный оптимум для большинства поставок HEVC. Большие значения дают незначительный выигрыш на материале с интенсивным движением и анимации; очень высокие значения ограничены выбранным Codec Level.
Key Interval (
numberкадры, по умолчанию250)Максимальная длина GOP.
- Что задаёт. Самую длинную серию кадров, которую libx265 выдаёт перед принудительным ключевым кадром IDR.
- Когда менять. Для стриминга задавайте небольшое кратное частоты кадров
(например,
50при 25 fps для 2-секундных сегментов), чтобы ритм ключевых кадров совпадал с границей чанка сегментатора. Значение250по умолчанию подходит для VOD-архивов (10-секундные GOP при 25 fps).
Min Key Interval (
numberкадры, без значения по умолчанию)Минимальное расстояние между кадрами IDR.
- Что задаёт. Не даёт libx265 ставить два IDR слишком близко, когда обнаружение сцен срабатывает многократно.
- Когда менять. Повышайте для материала с частыми склейками (клипы, спортивные нарезки), чтобы «мелькание» не порождало очень короткие GOP. Частая пара — Min Key Interval, равный числу кадров в одной секунде.
Open GOP (
boolean, по умолчаниюtrue)Разрешает B-кадрам ссылаться через границы ключевых кадров.
- Что задаёт. Будет ли GOP «открытым» (B-кадры перед I-кадром могут ссылаться на предыдущий GOP) или «закрытым».
- Когда менять. Оставляйте включённым ради небольшого выигрыша в сжатии в конвейерах VOD, допускающих открытые GOP. Выключайте для целей HLS/DASH и вещания — большинство сегментаторов и систем вставки рекламы требуют закрытых GOP на каждой границе сегмента.
Color Space (
enum, по умолчанию пусто)Флаг матричных коэффициентов в битовом потоке.
- Что задаёт. Тег цветовой матрицы, по которому плеер переводит YCbCr в RGB; сами пиксели не преобразуются.
- Когда менять. Приводите в соответствие источнику:
bt709— для HD,smpte170m— для SD,bt2020nc— для UHD/HDR. Оставляйте пустым, чтобы унаследовать значение из входной цепочки фильтров. - Допустимые значения. пусто,
bt709,fcc,bt470bg,smpte170m,smpte240m,GBR,YCgCo,bt2020nc,bt2020c,smpte2085,chroma-derived-nc,chroma-derived-c,ICtCp.
Color Transfer (
enum, по умолчанию пусто)Флаг характеристик передачи (гамма-кривая).
- Что задаёт. Тег OETF/EOTF, записываемый в битовый поток; пиксели не изменяются.
- Когда менять.
bt709— для SDR HD,smpte170m— для SDR SD,smpte2084— для PQ HDR,arib-std-b67— для HLG HDR. Задавайте, когда входная цепочка фильтров применила известную передачу. - Допустимые значения. пусто,
bt709,reserved,bt470m,bt470bg,smpte170m,smpte240m,linear,log100,log316,iec61966-2-4,bt1361e,iec61966-2-1,bt2020-10,bt2020-12,smpte2084,smpte428,arib-std-b67.
Color Primaries (
enum, по умолчанию пусто)Флаг основных цветов (primaries).
- Что задаёт. Координаты цветности закодированного видео, по которым цветоуправляемые плееры точно его отображают.
- Когда менять.
bt709— для HD,smpte170m— для SD,bt2020— для UHD/HDR. Оставляйте пустым, когда источник уже корректно размечен выше по потоку. - Допустимые значения. пусто,
bt709,bt470m,bt470bg,smpte170m,smpte240m,film,bt2020,smpte428,smpte431,smpte432.
B-Adapt (
enum, по умолчанию пусто)Алгоритм выбора расстановки B-кадров.
- Что задаёт. Как libx265 решает, куда ставить B-кадры: быстрой эвристикой или полным RD-анализом.
- Когда менять. Оставляйте пустым для значения кодера по умолчанию. Выбирайте более быстрый алгоритм на очень быстрых пресетах, если критична скорость; более медленный (RD-оптимальный) — на медленных пресетах, когда нужно выжать последнее качество при заданном битрейте.
B-Pyramid (
boolean, по умолчаниюtrue)Могут ли B-кадры ссылаться на другие B-кадры.
- Что задаёт. Могут ли отдельные B-кадры использоваться опорными для других B-кадров, улучшая сжатие.
- Когда менять. Оставляйте включённым для стриминга и VOD. Отключайте только для старого аппаратного декодера, не поддерживающего B-пирамиду.
Video Format (
enum, по умолчанию пусто)Флаг исходного формата в VUI.
- Что задаёт. Тег метаданных, описывающий исходный видеоформат (NTSC, PAL, компонентный, MAC и т. п.); декодеры используют его только справочно.
- Когда менять. Оставляйте пустым, если только проверка соответствия стандарту ниже по потоку не требует конкретного тега (редко, в основном вещательные процессы).
Соответствие JSON-ключей и названий полей
| JSON-ключ | Название поля |
|---|---|
profile |
H265 Codec Profile |
level |
Codec Level |
rc |
Rate Control |
crf |
Rate Factor |
maxrate |
Max bitrate |
bufsize |
Buffer size |
2pass |
Two Pass |
bf |
B-Frames |
refs |
Reference Frames |
gop |
Key Interval |
gop_min |
Min Key Interval |
gop_open |
Open GOP |
color_space |
Color Space |
color_transfer |
Color Transfer |
color_prim |
Color Primaries |
opts |
Advanced options |
6. Пример

Полный разбор — переменные, настройка каждого узла и ожидаемый результат — смотрите в HEVC.
7. Где используется
- HEVC — перекодирует SD-мастер в H.265 MP4 1024×576 со стереозвуком AAC на 1,6 Мбит/с.
8. Антипаттерны
- Перекодирование входа HEVC. Когда источник уже HEVC, перекодирование тратит много ЦПУ и накапливает артефакты сжатия. Используйте copy, когда преобразование не нужно, или меняйте только контейнер.
- Сочетание CRF с ограничением Bitrate без Buffer size. Задание Max bitrate рядом с Rate Factor без соответствующего Buffer size оставляет кодеру свободу долго превышать цель; тогда ограничение либо не действует, либо обедняет буфер декодера. Задавайте Buffer size всегда при ограничении.
- Open GOP на входе HLS/DASH. Большинство сегментаторов требуют закрытых GOP на границах сегментов. У x265 значение Open GOP включено по умолчанию — выключайте его для выходов адаптивного стриминга.
- Неверный уровень кодека для выбранного разрешения. Уровень, слишком низкий
для закодированного разрешения и битрейта, не проходит проверки соответствия на
строгих плеерах. Оставляйте Codec Level на
Auto, если только спецификация поставки не требует фиксированного значения.
9. Заметки
- Воспроизведение HEVC не универсально: проверяйте поддержку устройствами перед поставкой потребительской аудитории и проверяйте лицензионные ограничения на коммерческое распространение HEVC.
- Для HDR-мастеринга используйте H265 Codec Profile
main10и задайте флаги цветовой сигнализации (Color Space, Color Transfer, Color Primaries) под мастер; метаданные HDR, такие какmaster-displayиmax-cll, заносятся в Advanced options.