ni264

1. Сводка
Кодирует видео H.264/AVC с аппаратным ускорением NetInt. Даёт ту же поставку H.264, что и x264, но выгружает кодирование на карту NetInt T4XX / Quadra, освобождая ЦПУ под параллельные кодирования и достигая целей пропускной способности в реальном времени, которые программному кодированию недоступны.
2. Когда использовать
- Держите высокопроизводительную ферму перекодирования, где много выходов H.264 должны завершаться в реальном времени или быстрее на одной машине.
- Кодируете прямой или почти прямой процесс, чей бюджет задержки не допускает проходов анализа программного кодера.
- Готовите H.264-копию лестницы ABR, когда бюджет ЦПУ уже потрачен на
параллельные ветви
x264/x265/ упаковки. - Перекодируете из любого источника, отличного от H.264, на системе с ускорителем NetInt, который иначе простаивал бы.
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. Закодированная видеодорожка H.264, готовая к мультиплексированию.Совместимые узлы ниже по потоку:
- mp4 — упаковывает потоки в файл MP4 (ISO-BMFF).
- mov — упаковывает потоки в контейнер QuickTime MOV.
- mxf — упаковывает потоки в контейнер MXF.
- ts — упаковывает потоки в транспортный поток MPEG-2.
- ccinject — вставляет скрытые субтитры или субтитры в выход.
- dash — упаковывает выход для потоковой передачи MPEG-DASH.
- hls3 — упаковывает выход для HLS с плейлистами v3.
- hls5 — упаковывает выход для HLS с плейлистами v5.
5. Параметры

Форма «Настройки» — один столбец. Описаны в порядке следования в форме.
Node Label (
string, по умолчанию пусто)Произвольное имя, отображаемое на плитке узла на холсте.
- Что задаёт. Подпись над плиткой; на кодирование не влияет.
- Когда менять. Задавайте, когда в одном графе несколько узлов ni264 (параллельные копии на одной карте-ускорителе), чтобы каждая ветвь была узнаваема.
Profile (
enum, по умолчаниюmain)Профиль H.264.
- Что задаёт. Набор возможностей декодера, нужных выходному потоку.
baseline— самый совместимый (без B-кадров),main— частый безопасный выбор,highвключает преобразование 8×8 и более богатые инструменты кодирования, поддерживаемые современными декодерами,high10делает то же с 10-битными сэмплами для HDR или финишных конвейеров. - Когда менять. Выбирайте наименьший профиль, который принимают целевые
декодеры. Опускайтесь до
baselineтолько для очень старого мобильного или приставочного оборудования, не декодирующего B-кадры. - Допустимые значения.
baseline,main,high,high10. - Обязательно. да.
- Что задаёт. Набор возможностей декодера, нужных выходному потоку.
Codec Level (
enum, по умолчаниюAuto)Флаг уровня H.264 в битовом потоке.
- Что задаёт. Бюджет декодера, который должен поддерживать плеер —
разрешение, частота кадров, потолок битрейта, размер DPB.
Autoдаёт ускорителю выбрать уровень, согласованный с настройками кодирования. - Когда менять. Задавайте конкретный уровень, когда спецификация поставки его требует (вещательные конвейеры часто фиксируют Level 4.0 или 4.1 для HD) или когда целитесь в декодеры с батарейным питанием, заявляющие жёсткий потолок.
- Допустимые значения.
Auto(пусто),1,1.1,1.2,1.3,2,2.1,2.2,3,3.1,3.2,4,4.1,4.2,5,5.1,6,6.1,6.2.
- Что задаёт. Бюджет декодера, который должен поддерживать плеер —
разрешение, частота кадров, потолок битрейта, размер DPB.
Rate Control (
enum, по умолчаниюABR)Стратегия битрейта.
- Что задаёт. Целится ли кодер в средний битрейт (ABR) или держит битрейт ровным (CBR). Аппаратный бэкенд не предоставляет режим CRF — для VOD с постоянным качеством используйте x264 на ЦПУ того же процесса.
- Когда менять. Выбирайте
ABRдля предсказуемого размера файла на VOD или поставках с прогрессивной загрузкой;CBR— для вещания или каналов с фиксированной полосой (спутниковый аплинк, выделенный слот CDN), где битрейт не должен дрейфовать. - Допустимые значения.
ABR,CBR. - Обязательно. да.
vbvBuf size (
numberмс, по умолчанию3000)Размер буфера VBV в миллисекундах битрейта.
- Что задаёт. Размер виртуального буфера декодера, который кодер соблюдает
при управлении битрейтом, выраженный в миллисекундах. Значение
3000резервирует три секунды запаса на целевом битрейте; бо́льшие буферы дают кодеру тратить больше бит на сложные сцены, экономя на простых. - Когда менять. Повышайте (к 3000) для VOD, когда полоса в избытке, а визуальное качество важнее ровности битрейта. Понижайте (к 30–500) для прямой или интерактивной доставки, где принимающий декодер не может позволить долгий pre-roll. Диапазон: от 30 до 3000.
- Что задаёт. Размер виртуального буфера декодера, который кодер соблюдает
при управлении битрейтом, выраженный в миллисекундах. Значение
Bitrate (
numberKBPS, обязательно)Целевой битрейт H.264.
- Что задаёт. Средний (ABR) или постоянный (CBR) выходной битрейт, к которому стремится ускоритель, в килобитах в секунду.
- Когда менять. Задавайте всегда, когда Rate Control —
ABRилиCBR. Типичные значения: 2000–4000 KBPS для 720p, 4000–8000 KBPS для 1080p, 12000+ KBPS для UHD. Звёздочка в форме (Bitrate*) помечает поле как обязательное. - Обязательно. да.
GOP pattern (
enum, по умолчаниюI-B-B-B-P,... (gop_size=4))Шаблон типов кадров внутри каждого GOP.
- Что задаёт. Форму группы изображений — целиком интра (
I-I-I-I,...), целиком P (I-P-P-P,...), целиком B (I-B-B-B,...) или смешанный шаблон, такой как ритм произвольного доступа по умолчаниюI-B-B-B-P. Значениеgop_sizeв подписи каждого варианта — это ритм внутри одного повторяющегося цикла. - Когда менять. Выбирайте интра-only-шаблон (вариант 1) только когда дальнейший монтаж требует покадрово точной перемотки — для этого предпочтите avcintra. Выбирайте шаблоны с подряд идущими P (варианты 2 / 6 / 9) для прямого кодирования с низкой задержкой. Оставляйте смешанный шаблон по умолчанию для VOD и доставки ABR.
- Допустимые значения.
1: I-I-I-I,..I (all intra, gop_size=1),2: I-P-P-P,... P (consecutive P, gop_size=1),3: I-B-B-B,...B (consecutive B, gop_size=1),4: I-B-P-B-P,... (gop_size=2),5: I-B-B-B-P,... (gop_size=4),6: I-P-P-P-P,... (consecutive P, gop_size=4),7: I-B-B-B-B,... (consecutive B, gop_size=4),8: I-B-B-B-B-B-B-B-B,... (random access, gop_size=8),9: I-P-P-P,... P (consecutive P, gop_size=1, single reference).
- Что задаёт. Форму группы изображений — целиком интра (
GOP (
numberкадры, по умолчанию92)Интервал ключевых кадров.
- Что задаёт. Максимальное число кадров между ключевыми кадрами IDR.
Значение должно быть кратно
gop_sizeвыбранного GOP pattern. - Когда менять. Для стриминга задавайте небольшое кратное частоты кадров (обычно 2× fps, чтобы IDR попадал на каждую границу сегмента). Для VOD бо́льшие значения (4× — 10× fps) лучше сжимают, но стоят точности перемотки. Диапазон: от 0 до 1024.
- Что задаёт. Максимальное число кадров между ключевыми кадрами IDR.
Значение должно быть кратно
Enable flushing the GOP (
boolean, по умолчанию выкл.)Сбрасывать предыдущий GOP на каждом IDR.
- Что задаёт. Сбрасывает ли кодер все кадры предыдущего GOP перед вставкой следующего IDR. С установленным флагом каждый сегмент HLS / DASH содержит все объявленные им кадры; без него первые несколько кадров каждого сегмента могут принадлежать предыдущему GOP.
- Когда менять. Включайте для выходов HLS или DASH с невыровненными шаблонами GOP, чей сегментатор строг к самодостаточности сегментов. Оставляйте выключенным для простых поставок MP4, где выравнивание сегментов нерелевантно.
Enable AUD (Access Unit Delimiters) (
boolean, по умолчанию выкл.)Вставлять NAL-единицы AUD на границах кадров.
- Что задаёт. Пишет ли кодер NAL-единицы разделителей единиц доступа между кадрами в битовом потоке.
- Когда менять. Включайте для выходов в транспортный поток MPEG-2 (вещательный мультиплекс, спутниковая контрибуция), где AUD требуются спецификацией контейнера. Оставляйте выключенным для MP4, HLS, DASH и других контейнеров на основе ISO-BMFF — там AUD избыточны и добавляют небольшие накладные расходы на кадр.
Соответствие JSON-ключей и названий полей
| JSON-ключ | Название поля |
|---|---|
rc_init_delay |
vbvBuf size |
gop_idx |
GOP pattern |
gop |
GOP |
flush_gop |
Enable flushing the GOP |
aud |
Enable AUD (Access Unit Delimiters) |
6. Пример

Полный разбор — переменные, настройка каждого узла и ожидаемый результат — смотрите в Adaptive streaming with HLS, DASH and captions.
7. Где используется
- Adaptive streaming with HLS, DASH and captions — работает как аппаратно-ускоренная H.264-копия, питающая упаковщики HLS v3, HLS v5 и DASH параллельно с программной ветвью x264.
8. Антипаттерны
- Перекодирование существующего H.264. Когда источник уже H.264 с приемлемым битрейтом, декодирование и повторное кодирование через этот узел жгут время ускорителя и накапливают артефакты сжатия. Используйте copy, когда менять нужно только контейнер.
- Целевой CRF на оборудовании. Этот узел предоставляет только ABR и CBR; режима постоянного качества нет. Попытка имитировать кодирование CRF заданием очень высокого целевого битрейта тратит биты без лежащего в основе контроля качества. Для VOD с постоянным качеством кодируйте на ЦПУ через x264.
- Принудительные конверсии пиксельного формата на ЦПУ перед ускорителем.
Когда цепочка фильтров выше по потоку выполняет ЦПУ-связанные конверсии
vf/formatилиvf/scaleпрямо перед этим узлом, кадры скачиваются из памяти ускорителя, обрабатываются на ЦПУ и снова загружаются — что сводит на нет аппаратный тракт. Двигайте работу с пиксельным форматом вышеvf/hwuploadили опирайтесь на нативный масштабатор ускорителя, когда он доступен. - Выбор неверного GOP pattern для поставки. Вариант 1 (интра-only) верен только для монтажных интермедиатов; его применение к стриминговой ABR-копии даёт файлы в 5–10 раз крупнее необходимого. Используйте avcintra для интра-only-поставок и оставляйте GOP pattern на смешанном ритме по умолчанию для стриминга.
- AUD на MP4. Включение Enable AUD для выхода MP4 слегка раздувает файл без пользы, а некоторые устаревшие плееры предупреждают или отвергают поток. Оставляйте AUD для контрибуции MPEG-TS.
9. Заметки
Этому кодеру нужен видеоускоритель NetInt (семейство T4XX / Quadra) на хосте
выполнения; развёртывания без него откатываются к программному кодированию или
падают. Аппаратный ускоритель накладывает более узкий набор Profile, чем
программный libx264 — нет high422 или high444. Сопрягайте узел с
vf/hwupload выше по потоку, когда работаете в процессе, иначе остающемся в
памяти ЦПУ; на выделенных узлах-перекодировщиках шаг загрузки может быть не
нужен.