Dans un premier article, nous avons vu comment utiliser un appareil photo comme une webcam. Nous
allons passer ici au niveau supérieur un utilisant notre smartphone comme une webcam ! Nous allons
voir trois façons de procéder. La première consiste à n'utiliser que du logiciel libre tandis que la
seconde et la troisième utiliseront une application android
non libre.
L'article ne traite que d'une mise en place avec un téléphone android
sous une distribtion
gnu/linux
. Il devrait être possible de faire la même chose avec d'autres systèmes
d'exploitation. Le logiciel Open Broadcaster Software que nous utiliserons est disponible pour les
plateformes macOS
, windows
et gnu/linux
.
Le graal !
Nous souhaitons filmer avec notre téléphone et récupérer le flux (avec ou sans fil) sur notre ordinateur. Ce flux sera ensuite envoyé au logiciel Open Broadcaster Software (OBS) pour un traitement de l'image (colorimétrie, fond vert…). Nous pourrons alors utiliser l'image du smartphone pré-produite pour une visio conférence, un streaming ou un enregistrement.
Voici un aperçu des étapes que nous avons à franchir :
Récupérer le flux du téléphone
La version libre
Plutôt que de diffuser le flux de la caméra, nous allons nous servir d' une astuce ! Nous utiliserons un logiciel de clonage d'écran puis nous démarrerons le logiciel de photo sur notre ordiphone.
Pour effectuer cette tâche nous utiliserons le logiciel scrcpy (screen copy) qui est libre,
gratuit et disponible pour les 3 plateformes. Il faudra également penser à activer les options
développeurs
puis à activer le débogage usb
sur le smartphone.
Le menu des options dévoloppeur
est un menu caché dans android
. Pour le révéler vous devez aller
dans à propos du téléphone
et tapoter 7 fois sur le numéro de build. Le menu apparaîtra alors dans
les paramètres système. Entrez dans ce menu et activez l'option débogage usb
.
En plus de scrcpy
, Il faut également installer les paquets adb
pour accéder au smartphone.
sudo apt install scrcpy adb
- Avec un cable usb
Une fois l'installation terminée, branchez votre téléphone en usb puis allez dans un terminal et tapez :
scrcpy
Après une demande de validation sur votre téléphone, votre écran de téléphone s'affichera sur votre écran d'ordinateur. Certaines options peuvent vous intéresser pour spécifier la résolution, la largeur et la hauteur de la fenêtre, retirer les bordures de fenêtre ou mettre l'application toujours au premier plan. D'autres options sont disponibles sur le site du projet. N'hésitez pas à rémunérer son auteur !
scrcpy --window-x 1920 --window-y 1080 --window-width 1920 --window-height 1080 --window-borderless --always-on-top
- Sans fil
Assurez vous que le téléphone partage le même réseau wifi que votre ordinateur. Récupérez l'adresse
ip de votre smartphone dans les paramètres
, à propos du téléphone
et état
. Ici nous
utiliserons 192.168.0.1 pour l'exemple.
Branchez votre téléphone en usb puis allez dans un terminal et tapez :
adb tcpip 5555
Débranchez votre téléphone puis tapez :
adb connect 192.168.0.1
Votre téléphone est maintenant connecté sans fil. Vous pouvez utiliser scrcpy
de la même façon que
précédemment. Pour repasser en mode usb il suffit de taper :
adb usb
Pour récupérer le flux de l'appareil photo, je vous conseille d'utiliser l'application Open Camera qui permet dans ses options le masquage de l'interface (osd) afin d'obtenir uniquement l'image de la caméra.
La première version non libre
Il existe une application android
nommée IP-Webcam qui permet de filmer et de diffuser en direct
via une adresse ip. Ce flux peut être récupéré dans un navigateur web ou dans une application de
type VLC
ou ffplay
. L'application possède une version gratuite avec publicités et limitations, la
version payante est à 5,49 €.
Assurez-vous que votre téléphone soit sur le même réseau que votre ordinateur puis démarrez le
serveur ip Webcam
. Démarrez VLC
puis ouvrir un flux réseau
et tapez l'adresse qui s'affiche
dans l'application : https://192.168.0.118:8080/video. VLC
affichera alors l'image de votre
photophone. Vous pouvez également taper l'adresse dans votre navigateur web sans video pour
retrouver une interface de contrôle (zoom).
Retrouvez plus d'information sur IP-Webcam
grâce à la fiche Analyse vidéo en temps réel que nous avons créée.
Vous pouvez également utiliser le terminal pour effectuer la même chose :
cvlc https://192.168.0.118:8080/video
Vous pouvez également utiliser le lecteur ffmpeg
par défaut en précisant la nature du flux et le
nombre d'images par seconde.
ffplay https://192.168.0.118:8080/video -f mjpeg -framerate 30
La seconde version non libre
Il est également possible d'installer une application mieux intégrée à OBS
mais qui ne diffusera
son flux qu'à travers OBS
. Aucune possibilité de récupérer le flux par VLC
ou ffplay
pour
d'autres usages. Cette application est DroidCam OBS dont la version gratuite limite les
résolutions et ajoute un marquage au milieu de l'écran. La version payante coûte 5,49€ via un achat
dans l'application.
Utiliser le flux comme source
Commencez par installer le logiciel obs-studio.
sudo apt install obs-studio
Ouvrez le logiciel et cliquez sur le signe +
dans la fenêtre Sources
puis ajoutez la fenêtre
VLC
ou ffplay
qui contient votre flux.
Votre photophone diffuse alors directement dans votre scène !
Dans le cas de DroidCam OBS
, il faudra ajouter un plugin dans OBS pour bénéficier de l'ajout
d'une source DroidCam OBS
. Ce plugin est disponible pour toutes les plateformes. Il suffit alors
de démarrer l'application sur le téléphone puis d'indiquer l'adresse ip affichée sur le téléphone
dans le plugin du logiciel.
Créer une webcam usb virtuelle dans le système d'exploitation
Dans cette partie nous souhaitons que le flux traité par OBS
se comporte comme un périphérique
usb. Nous pourrons l'utiliser comme caméra sur n'importe quel service de diffusion. De cette façon,
nous pourrons faire de la visio-conférence sur fond vert, changer la colorimétrie de notre image,
appliquer un filtre audio pour améliorer la qualité sonore, ajouter un logo… bref, faire tout ce
qu'il est possible de faire avec OBS-studio
.
Le principe est de créer une caméra virtuelle qui donnera l'illusion à l'ordinateur qu'une webcam est branchée en usb.
Pour créer une webcam virtuelle, installez le module noyau suivant :
sudo apt install v4l2loopback-dkms
Pour activer le module vous pouvez le faire à la demande via la commande :
sudo modprobe v4l2loopback devices=1 video_nr=3 card_label="OBS Cam" exclusive_caps=1
Cette commande en plus d'activer le module, créera la webcam /dev/video3 qu'elle nommera OBS Cam. La dernière option facilite la compatibilité avec les navigateurs. Il est possible d'ajouter plusieurs caméras en séparant les numéros et labels par des virgules : nr=3,4 card_label="OBS Cam","Secondary Cam".
Vous pouvez activer le module de façon permanente via deux fichiers de configuration qui rendront le module opérationnel au démarrage de la machine.
Le premier est /etc/modules-load.d/v4l2loopback.conf et contient :
v4l2loopback
Vous pouvez le créer directement par la commande :
sudo echo "v4l2loopback" > /etc/modules-load.d/v4l2loopback.conf
Le second est /etc/modprobe.d/v4l2loopback.conf et contient :
options v4l2loopback devices=1 video_nr=3 card_label="OBS Cam" exclusive_caps=1
Vous pouvez le créer directement par la commande :
sudo echo "options v4l2loopback devices=1 video_nr=3 card_label="OBS Cam" exclusive_caps=1" > /etc/modprobe.d/v4l2loopback.conf
Ajout d'un plugin pour connecter OBS à la webcam virtuelle
Si votre version d'OBS est supérieure à la version 26.1 sortie le 14 décembre 2020, alors la webcam virtuelle est intégrée par défaut dans le logiciel. Cette partie s'adresse donc aux personnes ayant une version antérieure.
Il existe un plugin OBS qui crée cette caméra virtuelle. Pour la plateforme Windows
vous le
trouverez ici, pour la plateforme macOS
vous trouverez les indications là.
En ce qui concerne Gnu/Linux
, nous allons devoir compiler le plugin. N'ayez pas peur, c'est très
simple.
Commençons par installer les dépendances nécessaires :
sudo apt install git qtbase5-dev libobs-dev && sudo snap install cmake
En fonction de la distribution, l'installation de cmake
peut être différente. snap
est une
particularité de la distribution Ubuntu.
Il faut ensuite récupérer le code de obs-studio :
git clone --recursive https://github.com/obsproject/obs-studio.git
Enfin nous pouvons récupérer le code du plugin et le compiler (Exécutez les lignes une par une) :
git clone https://github.com/CatxFish/obs-v4l2sink.git
cd obs-v4l2sink
mkdir build && cd build
cmake -DLIBOBS_INCLUDE_DIR="../../obs-studio/libobs" -DCMAKE_INSTALL_PREFIX=/usr ..
make -j4
sudo make install
Si le plugin ne s'installe pas à la bonne place vous devrez le recopier au bon endroit :
sudo cp /usr/lib/obs-plugins/v4l2sink.so /usr/lib/x86_64-linux-gnu/obs-plugins/
Démarrez le logiciel OBS-studio
et dans le menu Outils
vous devriez voir apparaître l'option
V4L2 Video Output. Démarrez le serveur et activez autostart
si vous souhaitez que l'activation
soit systématique au démarrage du logicel.
Diffuser la vidéo produite en visio conférence
Si tout fonctionne correctement vous devriez être en mesure de choisir OBS Cam
comme périphérique
USB dans votre logiciel de streaming, c'est gagné !
Si vous souhaitez utiliser votre scène OBS
dans un partage d'écran plutôt que comme une webcam, il
suffit de faire un clic droit sur votre scène dans OBS
puis de choisir projecteur fenêtré
. Une
fenêtre s'ouvrira avec le flux et vous pourrez la choisir comme fenêtre de partage d'écran dans votre
logiciel de visio-conférence.
Pour conclure
L'article est un peu long et un peu technique pour qui ne maîtrise pas l'outil informatique. Nous venons pourtant de faire quelque chose d'assez incroyable. Nous créons une production vidéo grâce à un smartphone connecté en wifi qui se comporte comme une webcam usb ! Utilisez un stabilisateur et vous pourrez utiliser votre smartphone comme caméra sur toute la portée wifi. Amusez-vous bien !