Files
create-vod/docs/QUALITY.md

41 lines
2.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Регулировка качества и измерение
## Целевое качество
- Ориентир: средний 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:
```bash
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.