🛠 Accélération GPU et streaming vidéo (Intel UHD, VAAPI)

LattePanda 3 Delta (id : lattepanda-3) · avance · Schéma : IMG-lattepanda-3-avance-2-acceleration-video.svg — Flux vidéo entrant transcodé par le GPU Intel UHD via VAAPI puis diffusé en HLS, avec sortie HDMI 2.0b et sortie réseau vers des clients.

Objectifs

Le Celeron N5105 (Jasper Lake) intègre un GPU Intel UHD (450–800 MHz) avec décodage/encodage matériel. Sous Linux, l'API VAAPI expose cette accélération : transcoder une vidéo avec le GPU au lieu des 4 threads CPU, brancher un écran 4K en HDMI 2.0b, ou diffuser un flux vers d'autres appareils. Ce tutoriel vérifie la pile graphique, transcode avec ffmpeg accéléré, et mesure le gain CPU. Contexte utile : à la sortie du produit, CNX Software notait une lecture 4K YouTube imparfaite sur les premiers systèmes Jasper Lake — un problème de maturité logicielle de plateforme, pas un défaut de la carte ; depuis, la pile VAAPI est mature sur noyaux récents.

Matériel

Code complet

# 1. Installer la pile de décodage matériel
sudo apt update
sudo apt install -y vainfo intel-gpu-tools ffmpeg mesa-va-drivers

# 2. Vérifier les codecs accélérés disponibles (attendu : H.264, VP8, VP9, JPEG...)
vainfo

# 3. Transcoder UNE vidéo en utilisant le GPU (comparez 'top' pendant le run)
ffmpeg -hwaccel vaapi -hwaccel_output_format vaapi \
  -vaapi_device /dev/dri/renderD128 \
  -i entrée.mp4 \
  -vf 'format=nv12|vaapi,hwupload,scale_vaapi=w=1280:h=720' \
  -c:v h264_vaapi -b:v 2M sortie_720p.mp4

# 4. Diffuser en direct sur le réseau (HLS), lu par n'importe quel navigateur
mkdir -p /tmp/hls
ffmpeg -re -i entrée.mp4 \
  -c:v h264_vaapi -b:v 2M -g 50 \
  -f hls -hls_time 4 -hls_list_size 6 -hls_flags delete_segments \
  /tmp/hls/direct.m3u8 &
cd /tmp/hls && python3 -m http.server 8000
# Sur un autre poste : http://IP-de-la-carte:8000/direct.m3u8

# 5. Contrôler l'occupation GPU/CPU pendant la diffusion
sudo apt install -y intel-gpu-tools
grep -r . /sys/class/drm/card0/gt_act_freq_mhz 2>/dev/null || true
top -o %CPU

Vérification attendue

vainfo liste des entrées VA-API (VAProfileH264…) sans erreur ; pendant le transcodage, top montre ffmpeg bien en dessous de 100 % de CPU total (le GPU fait le travail) alors qu'un transcodage logiciel (-c:v libx264) sature les 4 threads. Le flux HLS se lit dans un navigateur depuis un autre appareil. La sortie HDMI affiche l'interface sans à-coups.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels