Ottimizza la Registrazione Video su Linux: Hardware, Codec e Tuning OBS
Le prestazioni di registrazione video su Linux dipendono da **codifica accelerata GPU**, **scheduling kernel a bassa latenza** e **throughput di archiviazione**. Le impostazioni predefinite lasciano spesso il 50%+ delle prestazioni inutilizzate. Ecco la checklist di ottimizzazione per OBS Studio, FFmpeg e pipeline GStreamer.
1. Hardware: Il Fondamento
| Componente | Raccomandazione | Perché |
|---|---|---|
| CPU | 6+ core / 12+ thread (Ryzen 7000/9000, Intel 12th/13th/14th Gen) | Codifica software x264/x265 scala con thread. AVX2/AVX-512 critico. |
| GPU (Nvidia) | RTX 30/40/50 series (NVENC 7th/8th/9th Gen) | Migliore codifica Linux. NVENC HEVC/AV1, 4:4:4, 10-bit, bassa latenza. Driver proprietario richiesto. |
| GPU (AMD) | RX 6000/7000/7000 XT (RDNA2/3 - VCN 3.0/3.1) | AMF HEVC/AV1 tramite **ROCm** o **VAAPI**. In rapido miglioramento. Open source. |
| GPU (Intel) | Arc A-series (Alchemist) / Core Ultra (Meteor Lake) | Migliore codifica open source. VAAPI HEVC/AV1/VP9, 10-bit, bassa potenza. iGPU su laptop = codifica gratuita. |
| RAM | 32GB DDR5-5600/6000 (dual channel) | Page cache per buffering scrittura. 16GB minimo per 4K. |
| Storage | **NVMe Gen4/5 SSD** (Samsung 990 Pro, WD SN850X, Crucial T700) | Scrittura sostenuta >3 GB/s. Evita SATA SSD/HDD — frame drop garantiti a bitrate elevati. |
2. Stack Driver: Fallo Bene
- Nvidia: **Driver Proprietario (550+)** dal repo distro o `.run`. **Non** Nouveau. Abilita parametro kernel **`nvidia-drm.modeset=1`** per Wayland/DRM-KMS.
- AMD: **Mesa 24.0+** (default distro su Fedora 40, Arch, Ubuntu 24.04). Installa `mesa-vdpau`, `mesa-va-drivers`, `libva-mesa-driver`, `vulkan-radeon`. Kernel 6.6+.
- Intel: **Mesa 24.0+** + `intel-media-driver` (VAAPI) + `intel-gmmlib`. Kernel 6.5+ (Xe KMD).
- Verifica: `vainfo` → mostra `VAProfileHEVCMain10` / `VAProfileAV1Profile0` / `VAProfileVP9Profile2` con `VAEntrypointEncSlice`.
3. OBS Studio: Guida Ottimizzazione Linux
Installazione
# Flatpak (consigliato - sandboxato, aggiornato, cattura PipeWire funziona) flatpak install flathub com.obsproject.Studio # O pacchetto distro (potrebbe essere più vecchio) sudo apt/dnf/pacman install obs-studio Impostazioni → Output (Modalità Avanzata)
| Impostazione | Valore | Nota |
|---|---|---|
| Encoder | NVENC H.264 / HEVC (nuovo) (Nvidia) / VAAPI H.264 / HEVC (AMD/Intel) / x264 (CPU fallback) | Codifica hardware = utilizzo CPU quasi zero. |
| Rate Control | CBR (streaming) / CQP / VBR (registrazione) | CQP 18–22 (NVENC) / 20–24 (VAAPI) per qualità registrazione. |
| Bitrate | 15000–25000 Kbps (1080p60) / 30000–50000 (4K60) | Bitrate alto = qualità. Il disco è economico. |
| Keyframe Interval | 2 (streaming) / 1 (registrazione per cercare) | |
| Preset | **P4 (Medium) / P5 (Slow)** (NVENC) / **Quality** (VAAPI) | Non usare P1-P2 (veloce) — qualità crolla. P6-P7 troppo lento per tempo reale. |
| Profile | High (H.264) / Main10 (HEVC) | |
| Lookahead | **On** (NVENC) | Migliora qualità significativamente. Costa leggera VRAM. |
| Psycho Visual Tuning | **On** (NVENC) | Migliore qualità percettiva. |
| GPU | 0 (o seleziona GPU specifica se multi-GPU) | |
| Max B-frames | 2 (H.264) / 4 (HEVC) |
Impostazioni → Video
- Risoluzione Base/Uscita: 1920x1080 o 3840x2160.
- **Filtro Downscaling: Lanczos (Sharpened, 36 campioni)** — migliore qualità.
- **Valori FPS Comuni: 60** (o 59.94).
- **Formato Colore: NV12** (requisito codifica hardware). **Spazio Colore: 709**. **Range Colore: Partial** (per streaming) / **Full** (per registrazione locale se il player supporta).
Impostazioni → Avanzate
- **Priorità Processo: Sopra Normale** (aiuta scheduling).
- **Renderer: OpenGL** (X11) / **Vulkan** (Wayland — preferisci Vulkan su Wayland).
- **Formato Colore: NV12**. **Spazio Colore YUV: 709**.
4. Tuning a Livello di Sistema
Kernel e Scheduler
# /etc/sysctl.d/99-video-recording.conf vm.dirty_ratio = 80 vm.dirty_background_ratio = 10 vm.dirty_expire_centisecs = 3000 vm.dirty_writeback_centisecs = 100 # Writeback aggressivo per streaming NVMe sostenuto # CPU Governor: Performance (disabilita powersave) sudo cpupower frequency-set -g performance # O tramite tuned sudo tuned-adm profile latency-performance PipeWire / WirePlumber (Audio + Cattura Schermo)
- Assicurati che `pipewire`, `wireplumber`, `libpipewire-0.3-{0,modules}`, `gst-plugin-pipewire` siano installati.
- OBS → **Dispositivo Captura Video (V4L2)** per webcam. **PipeWire (Screen Capture)** per desktop — funziona su Wayland + XWayland.
- Correggi permessi: `usermod -a -G video $USER` (ri-login).
Kernel in Tempo Reale (Opzionale, Avanzato)
# Fedora/Arch: kernel-rt / linux-rt (RT_PREEMPT) # Riduce latenza peggiore per thread audio/video. # Richiede parametro kernel `threadirqs`. Testa stabilità. 5. FFmpeg CLI: Controllo Massimo Registrazione
# Nvidia NVENC HEVC 10-bit 4K60 CQP 20 ffmpeg -init_hw_device cuda=gpu -filter_hw_device gpu \ -f x11grab -framerate 60 -video_size 3840x2160 -i :0.0+0,0 \ -f pulse -i alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp__sink.monitor \ -vf "hwupload_cuda,scale_cuda=3840:2160:interp_algo=lanczos,format=p010le" \ -c:v hevc_nvenc -preset p5 -rc vbr -cq 20 -b:v 40M -maxrate 50M -bufsize 100M \ -profile:v main10 -tier high -level 5.1 \ -c:a aac -b:a 256k -ar 48000 \ -movflags +faststart output.mkv # AMD/Intel VAAPI HEVC 10-bit (richiede libva, mesa) ffmpeg -vaapi_device /dev/dri/renderD128 \ -f x11grab -framerate 60 -video_size 3840x2160 -i :0.0+0,0 \ -vf 'format=nv12,hwupload,scale_vaapi=w=3840:h=2160:format=p010le' \ -c:v hevc_vaapi -qp 22 -profile:v main10 \ -c:a aac -b:a 256k output.mkv 6. Checklist di Validazione
- Esegui `nvidia-smi dmon` / `radeontop` / `intel_gpu_top` durante registrazione → **Enc % > 0, Dec % = 0**.
- Controlla frame persi nella barra di stato OBS (in basso a destra) → **0 / 0**.
- Riproduci registrazione in `mpv` → `Shift+I` (stats) → **nessun frame perso, A/V sync < 10ms**.
- Crescita dimensione file costante, nessun stallo.
In sintesi: Nvidia + Driver Proprietario + NVENC P5 + NVMe = a prova di proiettile. AMD/Intel + Mesa 24+ + VAAPI = eccellente percorso open. Evita CPU x264 per 4K60 a meno che non abbia 16+ core.