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