🛠 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.

Objetivos

El Celeron N5105 (Jasper Lake) integra una GPU Intel UHD (450–800 MHz) con decodificación/codificación por hardware. En Linux, la API VAAPI expone esta aceleración: transcodificar un vídeo con la GPU en lugar de los 4 hilos de la CPU, conectar una pantalla 4K mediante HDMI 2.0b o emitir un flujo hacia otros dispositivos. Este tutorial verifica la pila gráfica, transcodifica con ffmpeg acelerado y mide la ganancia de CPU. Contexto útil: en el lanzamiento del producto, CNX Software señalaba una reproducción imperfecta de YouTube en 4K en los primeros sistemas Jasper Lake — un problema de madurez del software de la plataforma, no un defecto de la tarjeta; desde entonces, la pila VAAPI es madura en núcleos recientes.

Hardware

Código completo

# 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 entree.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 entree.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

Verificación esperada

vainfo lista entradas de VA-API (VAProfileH264…) sin errores; durante la transcodificación, top muestra ffmpeg muy por debajo del 100 % de CPU total (la GPU realiza el trabajo) mientras que una transcodificación por software (-c:v libx264) satura los 4 hilos. El flujo HLS se reproduce en un navegador desde otro dispositivo. La salida HDMI muestra la interfaz sin tirones.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales