Files
create-vod/docs/QUALITY.md

2.2 KiB
Raw Permalink Blame History

Регулировка качества и измерение

Целевое качество

  • Ориентир: средний VMAF ≥ 93 для кодированного видео.

Что регулируем

  • GPU-энкодеры используют CQ (Constant Quality).
  • CPU-энкодеры используют CRF (Constant Rate Factor).
  • Значения по умолчанию взяты из текущей логики кодирования (см. src/core/encoding.ts) и могут быть переопределены через CLI (--h264-cq, --h264-crf, --av1-cq, --av1-crf).

Дефолтные CQ/CRF

Энкодер H.264 AV1
NVENC CQ 32 CQ 42
QSV CQ 32 CQ 42
AMF CQ 32 CQ 42
VAAPI CQ 32 CQ 42
videotoolbox CQ 32 CQ 42
v4l2 CQ 32 CQ 42
CPU (libx264 / libsvtav1) CRF 25→20* CRF 40→28*

* CPU значения зависят от целевого разрешения:

  • 360p: H.264 CRF 25, AV1 CRF 40
  • 480p: H.264 CRF 24, AV1 CRF 38
  • 720p: H.264 CRF 23, AV1 CRF 35
  • 1080p: H.264 CRF 22, AV1 CRF 32
  • 1440p: H.264 CRF 21, AV1 CRF 30
  • 2160p: H.264 CRF 20, AV1 CRF 28

Как мерить качество (VMAF)

  1. Закодируйте тестовый ролик с нужными параметрами (CQ/CRF).
  2. Сравните с исходником по VMAF (разрешения должны совпадать, при необходимости приведите к одному размеру).
  3. Пример команды FFmpeg c libvmaf:
    ffmpeg -i encoded.mp4 -i source.mp4 \
      -lavfi "[0:v]setpts=PTS-STARTPTS[enc];[1:v]setpts=PTS-STARTPTS[ref];[enc][ref]libvmaf=log_path=vmaf.json:log_fmt=json" \
      -f null -
    
    В логах ищите VMAF score; если < 93 — увеличьте качество (понизьте CQ/CRF), если > 95 и нужен меньший битрейт — можно чуть поднять CQ/CRF.