Comment transformer un ancien Android en webcam nette pour Windows sans pubs ni filigranes
Acheter une bonne webcam externe aujourd'hui est un plaisir discutable. Les modèles entrée de gamme livrent des images floues en 720p avec une plage dynamique terrible, tandis que les options correctes comme les solutions Logitech coûtent un argent absurde. Pendant ce temps, la plupart d'entre nous avons un ancien smartphone qui prend la poussière dans un tiroir, dont les optiques et le capteur surpassent de loin n'importe quelle webcam de bureau.
D'habitude, essayer d'utiliser un téléphone comme webcam se heurte aux logiciels propriétaires comme DroidCam ou Iriun. Les versions gratuites limitent la résolution, collent des filigranes directement sur la vidéo, ou affichent constamment des pubs. J'ai récemment découvert un projet open source appelé VCamdroid, dont les créateurs ont résolu ce problème directement sans fioritures commerciales inutiles.
Ce qu'il y a sous le capot
Le projet se compose de deux parties : une application Android en Kotlin et un client Windows en C++. Le principe de fonctionnement est assez élégant.
Le téléphone capture le flux via l'API Camera2, traite les images à la volée avec des shaders OpenGL (rotation, miroir, correction des couleurs et de l'exposition s'y font), puis envoie le résultat à l'encodeur matériel MediaCodec en H.264 ou H.265. La bibliothèque RootEncoder gère le conditionnement du flux vidéo en RTP, après quoi le téléphone démarre un serveur RTSP.
Du côté Windows, le client se connecte au flux via FFmpeg, décode les images et les envoie à un périphérique DirectShow virtuel. Cela utilise la bibliothèque Softcam, qui enregistre le pilote softcam.dll. N'importe quel programme sur le PC — qu'il s'agisse d'OBS, Zoom, Telegram ou Discord — voit le smartphone comme une webcam USB physique classique.
Connexion filaire et sans fil
Vous pouvez diffuser la vidéo de deux manières :
- En Wi-Fi. L'ordinateur et le téléphone doivent être sur le même sous-réseau. Ouvrez l'onglet Connect du client bureau pour voir un code QR, pointez la caméra du téléphone dessus, confirmez la connexion, et la diffusion commence.
- En USB via ADB. C'est le scénario principal et le plus fiable. Par câble, la latence est minimale et le signal ne souffre pas d'une bande 2,4 GHz encombrée par les routeurs des voisins.
Détail technique intéressant : l'utilitaire ADB ne peut transférer des ports que via TCP. Par défaut, RTSP fait souvent transiter les paquets RTP en UDP, mais ici le flux est tunnelisé strictement en mode entrelacé TCP. Cela nous donne un canal stable directement à travers localhost sans perte de paquets.
Ce qui rend ce projet intéressant en pratique
Contrairement aux solutions volumineuses, VCamdroid se configure rapidement et ne nécessite pas de compte.
Voici ce que le combo peut faire :
- Basculer entre les modules caméra avant et arrière directement depuis le PC pendant un appel.
- Contrôler le flash, le zoom, l'exposition et la balance des blancs.
- Traitement d'image accéléré par le matériel sur le GPU du téléphone, donc le processeur de l'ordinateur est à peine sollicité.
- Connecter plusieurs téléphones simultanément. Vous pouvez en accrocher un pour un plan large, pointer le second vers votre visage, et basculer entre eux.
L'image est nette, avec du vrai 1080p à 60 fps si le capteur du téléphone le supporte.
Démarrage rapide
Vous aurez besoin de Windows 10 ou 11 sur le PC et d'Android 7.0 ou plus récent sur le téléphone.
D'abord, configurez Windows :
- Téléchargez l'archive depuis la page Releases du dépôt.
- Extrayez et exécutez
install.baten tant qu'administrateur. Ce script enregistre le filtre DirectShow dans le système. - Dans la fenêtre du Pare-feu Windows, autorisez l'application pour les réseaux privés et publics.
Ensuite, installez le client sur le téléphone :
- Activez le mode Développeur sur Android (appuyez sept fois sur le numéro de build dans les paramètres du téléphone) et activez le toggle Débogage USB.
- Connectez le téléphone à l'ordinateur par câble et exécutez le script
install_apk.bat. Il pousse automatiquement l'APK sur l'appareil via ADB.
Après cela, ouvrez VCamdroid sur l'ordinateur, lancez l'application sur le smartphone, et ils se trouvent automatiquement via le câble.
Compilation depuis les sources
Si vous voulez explorer le code ou ajouter une fonctionnalité dont vous avez besoin, le projet se compile avec des outils standards.
Pour la partie Android, vous aurez besoin d'un Android Studio récent. Toute la logique de capture et de diffusion est regroupée dans le répertoire android/.
Pour le client Windows, vous aurez besoin de Visual Studio et du gestionnaire de paquets vcpkg. Les dépendances sont récupérées avec une seule commande :
vcpkg install wxwidgets:x64-windows ffmpeg:x64-windows
vcpkg integrate install
Puis compilez la bibliothèque softcam, ouvrez windows/VCamdroid.sln, sélectionnez la configuration Release x64, et compilez le projet.
Limitations et aspérités
Le projet compte environ 400 étoiles sur GitHub, et le code est encore relativement frais à certains endroits. Si vous avez un firmware Android rare ou spécifique, MediaCodec peut se comporter de manière instable.
Parfois le Pare-feu Windows bloque silencieusement le trafic RTSP en travaillant en Wi-Fi. Dans ce cas, il faut fouiller dans les paramètres de Defender manuellement ou vérifier les pings via adb shell ping. Gardez aussi à l'esprit que le filtre DirectShow nécessite des bibliothèques Visual C++ Redistributable à jour sur le PC, sinon l'application plantera simplement sans erreur explicite.
VCamdroid est idéal pour tous ceux qui en ont marre de la qualité des webcams intégrées aux laptops ou qui ne veulent pas dépenser d'argent pour une optique séparée pour des appels occasionnels. Le projet est complètement gratuit, open source sous licence MIT, sans restriction de temps ni filigranes. Si vous avez un ancien smartphone avec une bonne caméra qui prend la poussière sur une étagère, c'est une excellente façon de le remettre en service.
Projets similaires