Mis à jour : 18 janvier 2026· 7 min de lecture

Médias et affichage graphique

Runbook d'exploitation des outils multimédias et d'affichage sous Linux/X11 : ffmpeg (transcodage), feh (visionneuse), scrcpy (miroir Android), xrandr (écrans). Opérations courantes, choix d'outil et dépannage par symptôme.

  • #linux
  • #cli
  • #ffmpeg
  • #scrcpy
  • #xrandr
  • #x11
  • #runbook
  • #medias

Référence d’exploitation des outils multimédias et d’affichage sous Linux/X11 : transcodage et filtrage audio-vidéo (ffmpeg), visionneuse d’images légère (feh), miroir et contrôle d’appareils Android (scrcpy), configuration dynamique des écrans (xrandr). Couvre les opérations courantes, le choix d’outil, le dépannage par symptôme et les pièges classiques. Cible un usage en ligne de commande sur systèmes Linux avec X11.

Choisir le bon outil

Besoin                                    Outil               Pourquoi
──────────────                            ──────────────      ──────────────
Convertir ou compresser une vidéo         ffmpeg              Transcodage universel
Extraire l'audio d'une vidéo              ffmpeg              Démuxage et réencodage
Couper, concaténer, redimensionner        ffmpeg              Filtres et flux
Afficher une image, un diaporama          feh                 Visionneuse X11 légère
Définir un fond d'écran (X11)             feh                 --bg-scale et dérivés
Miroir et contrôle d'un Android           scrcpy              Affichage et contrôle USB/réseau
Enregistrer l'écran d'un Android          scrcpy              --record
Configurer résolution et écrans           xrandr              Sorties, résolution, disposition

En une phrase : ffmpeg pour tout transcodage audio-vidéo, feh pour afficher des images et poser un fond d’écran, scrcpy pour miroiter et piloter un Android, xrandr pour gérer les écrans sous X11.

Principes fondamentaux

ffmpeg sépare conteneur, flux et codec. Un fichier vidéo est un conteneur (mp4, mkv) qui transporte des flux (vidéo, audio, sous-titres), chacun encodé avec un codec (H.264, AAC). ffmpeg peut copier les flux sans réencoder ( -c copy , rapide, sans perte) ou les réencoder (lent, avec réglage de qualité). Distinguer les deux est la clé de l’efficacité.

Copier vaut mieux que réencoder quand c’est possible. Changer de conteneur sans toucher aux flux ( -c copy ) est quasi instantané et sans perte. Réencoder ne se justifie que pour changer de codec, réduire la taille ou appliquer un filtre. Réencoder par réflexe gaspille du temps et dégrade la qualité.

feh est minimaliste et orienté X11. Léger et scriptable, feh affiche des images, monte des diaporamas et pose des fonds d’écran. Il dépend de X11 (variable DISPLAY) et ne fonctionne pas tel quel sous Wayland sans couche de compatibilité.

scrcpy s’appuie sur adb et n’enregistre rien sur l’appareil. Le miroir passe par le pont de débogage Android (adb), en USB ou en réseau. scrcpy n’installe aucune application persistante sur le téléphone et ne stocke rien dessus : le flux est traité côté ordinateur. Le débogage USB doit être autorisé sur l’appareil.

xrandr configure l’affichage X11 à chaud, mais sans persistance. xrandr active des sorties, change la résolution et dispose les écrans immédiatement, mais ses réglages sont perdus à la déconnexion. Pour les rendre permanents, les placer dans la configuration de session (script de démarrage, ~/.xprofile, ou configuration du gestionnaire de fenêtres).

La qualité d’un encodage se règle, elle ne se devine pas. Pour H.264/H.265, le CRF (Constant Rate Factor) contrôle la qualité : plus bas, meilleure qualité et fichier plus gros (18 à 23 est une plage usuelle). Le preset règle le compromis vitesse/compression. Annoncer une « bonne qualité » sans fixer CRF et preset n’a pas de sens.

Opérations standard

Transcoder et manipuler des médias (ffmpeg)

# Changer de conteneur SANS réencoder (rapide, sans perte)
ffmpeg -i entree.mkv -c copy sortie.mp4
# Réencoder en H.264 avec qualité réglée (CRF) et preset
ffmpeg -i entree.mp4 -c:v libx264 -crf 20 -preset medium -c:a aac sortie.mp4
# Extraire l'audio en MP3
ffmpeg -i video.mp4 -vn -c:a libmp3lame -q:a 2 audio.mp3
# Couper sans réencoder (de 00:01:00, durée 30 s)
ffmpeg -ss 00:01:00 -i entree.mp4 -t 30 -c copy extrait.mp4
# Redimensionner (largeur 1280, hauteur proportionnelle)
ffmpeg -i entree.mp4 -vf "scale=1280:-2" sortie.mp4
# Concaténer des fichiers de même codec (liste dans un fichier)
ffmpeg -f concat -safe 0 -i liste.txt -c copy fusion.mp4
# Extraire une image à un instant donné
ffmpeg -ss 00:00:05 -i video.mp4 -frames:v 1 capture.png

État attendu : le média de sortie est produit. -c copy évite le réencodage quand seul le conteneur ou un découpage change. Pour réduire la taille, ajuster -crf (plus haut = plus petit, qualité moindre) et -preset (plus lent = mieux compressé).

Afficher des images et poser un fond (feh)

feh image.jpg                         # affiche une image
feh *.jpg                             # navigation dans un dossier (flèches)
feh -F *.jpg                          # plein écran
feh -Z -. *.jpg                       # zoom auto, ajusté à la fenêtre
feh --slideshow-delay 5 *.jpg         # diaporama, 5 s par image
feh --bg-scale image.jpg              # fond d'écran (étiré, X11)
feh --bg-fill image.jpg               # fond d'écran (rempli sans déformer)
feh -t -y 150 répertoire/             # planche de vignettes

État attendu : l’image ou le diaporama s’affiche, ou le fond d’écran est posé. Les options --bg-* génèrent un script ~/.fehbg rejouable au démarrage de session pour restaurer le fond.

Miroir et contrôle d’un Android (scrcpy)

adb devices                           # vérifier que l'appareil est autorisé
scrcpy                                # miroir + contrôle (USB)
scrcpy --max-size 1024                # limiter la résolution (fluidité)
scrcpy --record capture.mp4           # enregistrer la session
scrcpy --no-audio                     # sans audio (scrcpy 2.x+ gère l'audio)
scrcpy --turn-screen-off              # éteindre l'écran du téléphone, garder le contrôle
# Connexion sans fil
adb tcpip 5555 && adb connect IP:5555 && scrcpy

État attendu : l’écran du téléphone apparaît, contrôlable à la souris et au clavier. Prérequis : débogage USB autorisé sur l’appareil. --max-size améliore la fluidité sur liaison lente. Pour le sans-fil, activer d’abord le mode TCP via adb en USB.

Configurer les écrans (xrandr)

xrandr                                # liste sorties, résolutions, état
xrandr --output HDMI-1 --auto         # active une sortie à sa résolution native
xrandr --output HDMI-1 --mode 1920x1080 --rate 60   # résolution et fréquence précises
xrandr --output HDMI-1 --right-of eDP-1   # placer un écran à droite du portable
xrandr --output eDP-1 --primary       # définir l'écran principal
xrandr --output HDMI-1 --off          # désactiver une sortie
xrandr --output eDP-1 --scale 1.2x1.2 # mise à l'échelle (dépannage HiDPI)

État attendu : la disposition et la résolution changent immédiatement. Les noms de sorties (eDP-1, HDMI-1) viennent de xrandr sans argument. Ces réglages sont temporaires : les inscrire dans ~/.xprofile ou la config du gestionnaire de fenêtres pour les rendre permanents.

Dépannage par symptôme

ffmpeg : le découpage avec -c copy décale ou fige le début

Symptôme : un extrait coupé sans réencodage commence par un gel ou un décalage audio. Cause probable : la coupe tombe entre deux images-clés (keyframes). Correction : réencoder pour une coupe précise, ou couper sur une image-clé.

# Coupe précise (réencode, donc exacte à la frame)
ffmpeg -ss 00:01:00 -i entree.mp4 -t 30 -c:v libx264 -crf 20 -c:a aac extrait.mp4

ffmpeg : la concaténation échoue ou désynchronise

Symptôme : la fusion par concat produit des artefacts ou échoue. Cause probable : les fichiers n’ont pas les mêmes codec/résolution/paramètres. Correction : harmoniser par réencodage avant de concaténer, ou utiliser le filtre concat.

ffmpeg -i a.mp4 -i b.mp4 -filter_complex "[0:v][0:a][1:v][1:a]concat=n=2:v=1:a=1[v][a]" -map "[v]" -map "[a]" sortie.mp4

feh : « Can’t open X display »

Symptôme : feh refuse de démarrer en l’absence d’affichage. Cause probable : variable DISPLAY non définie (session non graphique, SSH sans X). Correction : s’assurer d’un contexte X11.

echo $DISPLAY                         # doit être défini (ex. :0)
# En SSH, activer le transfert X : ssh -X user@hôte

scrcpy : « ERROR: Could not find any ADB device »

Symptôme : scrcpy ne détecte pas le téléphone. Cause probable : débogage USB non autorisé, câble de charge seule, ou adb non démarré. Correction : autoriser le débogage et vérifier adb.

adb devices                           # doit lister l'appareil comme « device »
adb kill-server && adb start-server   # réinitialiser le pont
# Sur le téléphone : autoriser le débogage USB quand la fenêtre s'affiche

xrandr : un écran branché n’apparaît pas

Symptôme : un écran connecté n’est pas listé ou reste éteint. Cause probable : sortie non activée, ou mode non détecté. Correction : forcer la détection et activer la sortie.

xrandr                                # vérifier si la sortie est listée comme « connected »
xrandr --output HDMI-1 --auto         # activer à la résolution native
# Si le mode manque, l'ajouter avec cvt puis xrandr --newmode/--addmode

Points clés à retenir

ffmpeg : distinguer conteneur, flux et codec. -c copy change le conteneur ou découpe sans réencoder (rapide, sans perte) ; réencoder seulement pour changer de codec, réduire ou filtrer.

Qualité H.264/H.265 : régler -crf (18-23 usuel, plus bas = mieux) et -preset (vitesse/compression). « Bonne qualité » sans CRF n’a pas de sens.

Une coupe -c copy tombe sur les images-clés : pour une coupe exacte à la frame, réencoder.

feh affiche et pose des fonds d’écran sous X11 (variable DISPLAY) ; –bg-* génère ~/.fehbg rejouable.

scrcpy miroite et pilote un Android via adb, sans rien installer sur l’appareil ; débogage USB requis, –max-size pour la fluidité.

xrandr configure les écrans X11 à chaud mais sans persistance : inscrire les réglages dans ~/.xprofile ou la config du gestionnaire de fenêtres.