qsv264

1. Сводка
Кодирует видео H.264/AVC с аппаратным ускорением Intel Quick Sync Video. Даёт ту же поставку H.264, что и x264, но выгружает кодирование на iGPU Intel или дискретную карту Arc / Flex, освобождая ЦПУ под параллельную работу и достигая целей пропускной способности в реальном времени.
2. Когда использовать
- Держите ферму перекодирования на оборудовании Intel, где iGPU или QSV-способная дискретная карта иначе простаивала бы.
- Готовите H.264-копию лестницы ABR, когда бюджет ЦПУ уже отдан другим параллельным кодированиям.
- Кодируете прямой или почти прямой процесс, чей бюджет задержки не допускает проходов анализа программного кодера.
- Перекодируете из любого источника, отличного от H.264, на системе Intel; QSV обычно равноценен по качеству низшим пресетам программного кодера и на порядки быстрее по реальному времени.
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. Параметры

Форма «Настройки» раскладывает поля в два столбца. Левый столбец группирует идентичность кодека и управление битрейтом; правый — B-кадры, опорные кадры и сигнализацию GOP. Описаны в порядке следования в форме.
Левый столбец
Node Label (
string, по умолчанию пусто)Произвольное имя, отображаемое на плитке узла на холсте.
- Что задаёт. Подпись над плиткой; на кодирование не влияет.
- Когда менять. Задавайте, когда в одном графе несколько узлов qsv264 (параллельные ступени лестницы ABR на одном iGPU), чтобы каждая копия была узнаваема.
H264 Codec Profile (
enum, по умолчаниюmain)Профиль H.264.
- Что задаёт. Набор возможностей декодера, нужных выходу.
baseline— самый совместимый (без B-кадров),main— частый безопасный выбор,highвключает преобразование 8×8 и более богатые инструменты кодирования, поддерживаемые современными декодерами. - Когда менять. Выбирайте наименьший профиль, который принимают целевые
декодеры. Опускайтесь до
baselineтолько для устаревшего мобильного или приставочного оборудования, не справляющегося с B-кадрами. - Допустимые значения.
baseline,main,high. - Обязательно. да.
- Что задаёт. Набор возможностей декодера, нужных выходу.
Preset (
string, по умолчаниюmedium)Компромисс «скорость/качество» в кодере QSV.
- Что задаёт. Набор внутренних параметров кодера. Более медленные пресеты делают больше анализа и дают меньший файл при том же целевом битрейте.
- Когда менять. Переходите к
fast/veryfast, когда пропускная способность в реальном времени бескомпромиссна; кslow/slower, когда у процесса есть запас, а качество при заданном битрейте важно. Более медленные пресеты QSV всё равно заметно быстрее программногоmedium.
H264 Codec Level (
string, по умолчаниюAuto)Флаг уровня, записываемый в битовый поток.
- Что задаёт. Бюджет декодера, который должен заявлять плеер — разрешение,
частота кадров, потолок битрейта, размер DPB.
Autoдаёт QSV выбрать уровень, согласованный с настройками кодирования. - Когда менять. Фиксируйте конкретный уровень, когда спецификация поставки его требует (вещательные конвейеры часто требуют Level 4.0 или 4.1 для HD) или когда целитесь в декодеры с батарейным питанием и жёстким потолком.
- Что задаёт. Бюджет декодера, который должен заявлять плеер — разрешение,
частота кадров, потолок битрейта, размер DPB.
Bitrate (
numberKBPS, без значения по умолчанию)Целевой битрейт H.264.
- Что задаёт. Средний битрейт, к которому стремится кодер, в килобитах в секунду.
- Когда менять. Задавайте всегда, когда нужна цель по битрейту. Типичные значения: 2000–4000 KBPS для 720p, 4000–8000 KBPS для 1080p, 12000+ KBPS для UHD.
Max bitrate (
numberKBPS, без значения по умолчанию)Верхний потолок битрейта.
- Что задаёт. Пиковый битрейт, который кодеру разрешено выдать. В сочетании с Buffer size образует ограничение VBV.
- Когда менять. Задавайте, когда у тракта доставки есть потолок полосы — чанки HLS, аппаратные декодеры, спутниковые аплинки. Оставляйте пустым для VOD, чьё единственное ограничение — средний Bitrate.
Buffer size (
numberKBPS, без значения по умолчанию)Размер буфера VBV.
- Что задаёт. Размер виртуального буфера декодера, который кодер соблюдает при выдерживании Max bitrate.
- Когда менять. Приводите в соответствие буферу, заданному целевым декодером. Частая отправная точка — Buffer size, равный Max bitrate (буфер на одну секунду); бо́льшие буферы сглаживают качество ценой задержки декодера.
Правый столбец
B-Frames (
number, без значения по умолчанию)Максимум подряд идущих B-кадров.
- Что задаёт. Предел числа двунаправленно предсказанных кадров, которые QSV может разместить между опорными кадрами.
- Когда менять. Большие значения (2–4) улучшают сжатие для профилей
mainиhigh. Ставьте0дляbaseline(где B-кадры запрещены) или для прямого кодирования с низкой задержкой.
Reference Frames (
number, без значения по умолчанию)Размер DPB — сколько ранее декодированных кадров P- или B-кадр может использовать как опорные.
- Что задаёт. Число опорных кадров, которые кодер держит в своём буфере декодированных изображений.
- Когда менять.
2–4— разумное значение по умолчанию для QSV. Выбранный H264 Codec Level в итоге ограничивает это значение сверху; QSV консервативнее с опорными кадрами, чем программный libx264.
Key Interval (
numberкадры, без значения по умолчанию)Максимальная длина GOP.
- Что задаёт. Самую длинную серию кадров, которую кодер выдаёт перед принудительным ключевым кадром IDR.
- Когда менять. Для стриминга задавайте небольшое кратное частоты кадров (2× fps, чтобы IDR совпадал с границей чанка сегментатора). Для VOD более длинные GOP лучше сжимают, но замедляют перемотку.
Min Key Interval (
numberкадры, без значения по умолчанию)Минимальное расстояние между кадрами IDR.
- Что задаёт. Не даёт логике обнаружения сцен выдавать два IDR слишком близко друг к другу.
- Когда менять. Повышайте для материала с частыми склейками (клипы, спорт), чтобы очень короткие GOP не появлялись на последовательных сменах сцен.
Open GOP (
boolean, по умолчанию выкл.)Разрешает B-кадрам ссылаться через границы ключевых кадров.
- Что задаёт. Будет ли GOP «открытым» — B-кадры перед I-кадром могут ссылаться на предыдущий GOP — или «закрытым».
- Когда менять. Включайте ради небольшого выигрыша в сжатии в конвейерах VOD, допускающих открытые GOP. Оставляйте выключенным для целей HLS / DASH и вещания; большинство сегментаторов и систем вставки рекламы требуют закрытых GOP.
Соответствие JSON-ключей и названий полей
| JSON-ключ | Название поля |
|---|---|
profile |
H264 Codec Profile |
level |
H264 Codec Level |
maxrate |
Max bitrate |
bufsize |
Buffer size |
bf |
B-Frames |
refs |
Reference Frames |
gop |
Key Interval |
gop_min |
Min Key Interval |
gop_open |
Open GOP |
8. Антипаттерны
- Перекодирование существующего H.264. Когда источник уже H.264 с приемлемым битрейтом, декодирование и повторное кодирование через этот узел жгут время ускорителя и накапливают артефакты сжатия. Используйте copy, когда менять нужно только контейнер.
- Принудительные ЦПУ-фильтры перед ускорителем. Когда цепочка выше по потоку
выполняет ЦПУ-связанные конверсии
vf/formatилиvf/scaleпрямо перед этим узлом, кадры скачиваются из памяти QSV, обрабатываются на ЦПУ и снова загружаются — что сводит на нет аппаратный тракт. Либо двигайте работу с пиксельным форматом вышеvf/hwupload, либо опирайтесь на нативный масштабатор QSV. - Прогон битрейтов программного кодера через QSV без изменений. QSV на
mediumобычно требует на ~10–15 % больше битрейта, чем программный libx264medium, для того же воспринимаемого качества. Добавляйте запас к цели Bitrate при переносе лестницы программного кодера на QSV или повышайте Preset кslower, чтобы закрыть разрыв. - Несовпадение Profile и B-Frames. Задание B-Frames выше нуля при
H264 Codec Profile
baselineдаёт либо тихое переопределение, либо нарушение профиля — в зависимости от поколения драйвера. Сопоставляйте оба:baseline⇒ B-Frames = 0;main/high⇒ B-Frames = 2–4. - Open GOP на входе HLS/DASH. Большинство сегментаторов требуют закрытых GOP на границах сегментов. Оставляйте Open GOP выключенным для выходов адаптивного стриминга.
9. Заметки
Этому кодеру нужен процессор Intel с поддержкой QSV или дискретная
QSV-способная видеокарта (Intel Arc, Flex). Развёртывания на оборудовании AMD
или ARM откатываются к программному кодированию или падают. Оборудование
предоставляет только профили baseline, main и high — для high10,
high422 или high444 используйте
x264. Управления битрейтом CRF нет; для
VOD с постоянным качеством кодируйте на ЦПУ через
x264. Сопрягайте узел с vf/hwupload
выше по потоку, когда предшествующие фильтры процесса живут в памяти ЦПУ.