DAVID LOUISE // INGÉNIEUR R&D

Systèmes mobiles & embarqués / Linux / Réseau

Caméra de smartphone → webcam Ubuntu

Transformer un smartphone Android en webcam Wi-Fi pour Ubuntu, avec découverte automatique du téléphone et injection dans une caméra virtuelle utilisable par les applications courantes.

KotlinCameraXMJPEGmDNSLinuxv4l2loopback
Illustration IA du téléphone utilisé comme webcam pour un PC sous Ubuntu
Illustration IA du projet

Contexte & problème

Le système devait rester fiable dans des conditions réelles : changement d’adresse IP après une bascule Wi-Fi, coupures réseau, suspension de la caméra par l’OEM (OPPO/ColorOS) et comportement propre à v4l2loopback. Plusieurs de ces défaillances ne se manifestaient que sur le matériel réel.

Contraintes

Contraintes liées au matériel, aux interfaces existantes, à la fiabilité et à l’intégration dans un environnement réel.

Rôle

Conception et développement de la chaîne complète : capture Android, serveur de flux, découverte réseau, injection Linux.

Approche & architecture

Capture CameraX côté Android, conversion YUV vers ARGB directe sans JPEG intermédiaire, serveur MJPEG maison multi-flux (paysage/portrait), découverte mDNS, et côté Ubuntu un producteur ffmpeg permanent alimenté par un FIFO pour que la caméra virtuelle reste listée même quand le téléphone est absent.

Difficultés techniques

  • Capture et traitement CameraX sans JPEG intermédiaire
  • Serveur MJPEG multi-flux et découverte mDNS
  • Producteur ffmpeg permanent via FIFO : la caméra virtuelle n’est jamais perdue
  • Récupération réseau automatique (timeouts, ré-annonce mDNS)

Résultat

Le téléphone apparaît comme une caméra vidéo standard sous Ubuntu (v4l2loopback) et fonctionne dans Chrome, Teams et OBS, y compris après une coupure puis un retour du Wi-Fi.

Limites / état

Fonctionnel — validé sur matériel réel

Médias