Optimiser l'enregistrement vidéo sous Linux : Matériel, Codecs & Réglages OBS
La performance d'enregistrement vidéo sous Linux repose sur **l'encodage accéléré GPU**, **l'ordonnancement noyau faible latence**, et **le débit stockage**. Les réglages par défaut laissent souvent 50 %+ de performance sur la table. Voici la checklist d'optimisation pour OBS Studio, FFmpeg, et pipelines GStreamer.
1. Matériel : La Fondation
| Composant | Recommandation | Pourquoi |
|---|---|---|
| CPU | 6+ cœurs / 12+ threads (Ryzen 7000/9000, Intel 12/13/14e Gén) | x264/x265 encodage logiciel scale avec threads. AVX2/AVX-512 critique. |
| GPU (Nvidia) | RTX 30/40/50 série (NVENC 7/8/9e Gén) | Meilleur encodage Linux. NVENC HEVC/AV1, 4:4:4, 10-bit, faible latence. Driver proprio requis. |
| GPU (AMD) | RX 6000/7000/7000 XT (RDNA2/3 - VCN 3.0/3.1) | AMF HEVC/AV1 via **ROCm** ou **VAAPI**. Amélioration rapide. Open source. |
| GPU (Intel) | Arc Série A (Alchemist) / Core Ultra (Meteor Lake) | Meilleur encodage open-source. VAAPI HEVC/AV1/VP9, 10-bit, faible conso. iGPU portable = encodage gratuit. |
| RAM | 32 Go DDR5-5600/6000 (dual channel) | Cache page pour buffer écriture. 16 Go minimum pour 4K. |
| Stockage | **SSD NVMe Gen4/5** (Samsung 990 Pro, WD SN850X, Crucial T700) | Écriture soutenue >3 Go/s. Évitez SATA SSD/HDD — drops frames garantis à hauts bitrates. |
2. Stack Drivers : Ayez Cela Juste
- Nvidia : **Driver Propriétaire (550+)** depuis repo distro ou `.run`. Pas Nouveau. Activez **`nvidia-drm.modeset=1`** param noyau pour Wayland/DRM-KMS.
- AMD : **Mesa 24.0+** (défaut distro sur Fedora 40, Arch, Ubuntu 24.04). Installez `mesa-vdpau`, `mesa-va-drivers`, `libva-mesa-driver`, `vulkan-radeon`. Noyau 6.6+.
- Intel : **Mesa 24.0+** + `intel-media-driver` (VAAPI) + `intel-gmmlib`. Noyau 6.5+ (Xe KMD).
- Vérifiez : `vainfo` → montre `VAProfileHEVCMain10` / `VAProfileAV1Profile0` / `VAProfileVP9Profile2` avec `VAEntrypointEncSlice`.
3. OBS Studio : Guide Optimisation Linux
Installation
# Flatpak (recommandé - sandboxé, à jour, capture PipeWire fonctionne) flatpak install flathub com.obsproject.Studio # Ou paquet distro (peut être plus vieux) sudo apt/dnf/pacman install obs-studio
Réglages → Sortie (Mode Avancé)
| Réglage | Valeur | Note |
|---|---|---|
| Encodeur | NVENC H.264 / HEVC (nouveau) (Nvidia) / VAAPI H.264 / HEVC (AMD/Intel) / x264 (CPU fallback) | Encodage matériel = usage CPU quasi-nul. |
| Contrôle Débit | CBR (streaming) / CQP / VBR (enregistrement) | CQP 18–22 (NVENC) / 20–24 (VAAPI) pour qualité enregistrement. |
| Bitrate | 15000–25000 Kbps (1080p60) / 30000–50000 (4K60) | Bitrate haut = qualité. Disque pas cher. |
| Intervalle Keyframe | 2 (streaming) / 1 (enregistrement pour seek) | |
| Préréglage | **P4 (Moyen) / P5 (Lent)** (NVENC) / **Qualité** (VAAPI) | N'utilisez pas P1-P2 (rapide) — qualité s'effondre. P6-P7 trop lent temps réel. |
| Profil | High (H.264) / Main10 (HEVC) | |
| Lookahead | **Activé** (NVENC) | Améliore qualité significativement. Coûte légère VRAM. |
| Psycho Visual Tuning | **Activé** (NVENC) | Meilleure qualité perceptuelle. |
| GPU | 0 (ou sélectionnez GPU spécifique si multi-GPU) | |
| Max B-frames | 2 (H.264) / 4 (HEVC) |
Réglages → Vidéo
- Résolution Base/Sortie: 1920x1080 ou 3840x2160.
- **Filtre Redimensionnement: Lanczos (Aiguisé, 36 échantillons)** — meilleure qualité.
- **Valeurs FPS Communes: 60** (ou 59,94).
- **Format Couleur: NV12** (exigence encodage matériel). **Espace Couleur: 709**. **Plage Couleur: Partielle** (pour streaming) / **Complète** (pour enregistrement local si lecteur supporte).
Réglages → Avancé
- **Priorité Processus: Au-dessus Normal** (aide ordonnancement).
- **Rendu: OpenGL** (X11) / **Vulkan** (Wayland — préférez Vulkan sur Wayland).
- **Format Couleur: NV12**. **Espace Couleur YUV: 709**.
4. Réglages Niveau Système
Noyau & Ordonnanceur
# /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 agressif pour streaming NVMe soutenu
# Gouverneur CPU: Performance (désactive powersave) sudo cpupower frequency-set -g performance # Ou via tuned sudo tuned-adm profile latency-performance
PipeWire / WirePlumber (Audio + Capture Écran)
- Assurez `pipewire`, `wireplumber`, `libpipewire-0.3-{0,modules}`, `gst-plugin-pipewire` installés.
- OBS → **Périphérique Capture Vidéo (V4L2)** pour webcams. **PipeWire (Capture Écran)** pour bureau — fonctionne Wayland + XWayland.
- Fix permission : `usermod -a -G video $USER` (re-login).
Noyau Temps Réel (Optionnel, Avancé)
# Fedora/Arch: kernel-rt / linux-rt (RT_PREEMPT) # Réduit pire cas latence threads audio/vidéo. # Nécessite param noyau `threadirqs`. Testez stabilité.
5. FFmpeg CLI : Contrôle Max Enregistrement
# 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 (requiert 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 Validation
- Lancez `nvidia-smi dmon` / `radeontop` / `intel_gpu_top` pendant enregistrement → **Enc % > 0, Dec % = 0**.
- Vérifiez frames droppées dans barre statut OBS (bas droite) → **0 / 0**.
- Lecture enregistrement dans `mpv` → `Shift+I` (stats) → **pas de drops frames, sync A/V < 10ms**.
- Taille fichier croît régulièrement, pas de stalls.
En résumé : Nvidia + Driver Proprio + NVENC P5 + NVMe = blindé. AMD/Intel + Mesa 24+ + VAAPI = excellente voie ouverte. Évitez CPU x264 pour 4K60 sauf si 16+ cœurs.
