Smartphone als Videokamera

Die Kamera an meinem Notebook ist ziemlich schlecht, wie ich besonders im Zusammenhang mit OBS und einem Greenscreen immer wieder feststellen musste. Für eine private Videokonferenz benötigte ich neulich eine höhere Auflösung (und wollte eigentlich auch einen Weitwinkel, was dann aber doch erstmal nicht klappte) und nahm daher mein Android-Smartphone zur Hand, suchte kurz im Web und entschied mich dann kurzfristig „Droidcam“ (https://www.dev47apps.com/) eine Chance zu geben.

Die Droidcam-App gibt es sowohl für Android als auch für iPhone und ermöglicht, die Smartphonekamera über USB oder Wifi als Stream zu nutzen. Clients gibt es für Windows und für Linux, die Einrichtung unter Linux ist zwar nicht trivial, aber auch nicht wirklich schwer.

(Zufällig stieß ich eben noch auf OBS-Plugins für Windows, Linux und Mac zu geben, allerdings habe ich das Plugin hier noch nicht getestet: http://www.dev47apps.com/obs/)

Die Installation (Ubuntu 20.04) erfolgt stur nach Anleitung:

cd /tmp/
wget -O droidcam_latest.zip https://files.dev47apps.net/linux/droidcam_1.7.1.zip
unzip droidcam_latest.zip -d droidcam
cd droidcam && sudo ./install-client

Ich wollte den eigenen v4l-Loopback nutzen und habe dann vorweg auch noch Parameter für das Laden des Moduls angelegt:

echo "options v4l2loopback_dc width=1200 height=900 video_nr=10"|sudo tee /etc/modprobe.d/droidcam.conf
# immer noch in /tmp/droidcam
sudo ./install-video

In Zukunft wird das Modul schon beim Booten mit den Parametern gestartet und ein Device /dev/video10 (durch den Parameter „video_nr=10“) eingerichtet. Zur Nutzung muss lediglich der Droidcam-Client gestartet werden. Auf dem Smartphone wird die App gestartet und die dort angezeigte IP im Client am Rechner eingegeben und anschließend verbunden.

Der Droidcam-Client unter Ubuntu
Die App am Androidgerät

Wird die Verbindung zum Smartphone unterbrochen, existiert trotzdem weiterhin das Videodevice. Auf diese Weise ist es sogar möglich unterbrochene Kamera-WiFi-Verbindungen im Programm zu überstehen, dass das Videodevice nutzt. Beispielsweise habe ich eine Videokonferenz im Webbrowser gestartet, als Kamera „Droidcam“ ausgewählt (das ist der Alias, denn das v4l-loopback-Device anbietet), und wenn die Verbindung unterbrochen wurde, ist lediglich die aktuelle Übertragung weg. Nach dem Wiederherstellen der Verbindung über Droidcam, läuft die Übertragung aber nahtlos weiter.

Ich nutze dieses Verhalten z.B., um eine Videokonferenz vorzubereiten, im OBS-Studio eine virtuelle Kamera einzurichten, und während der Zeit vor dem Start der Konferenz lediglich eine „Away“-Scene anzuzeigen. Die eigentliche Smarthpone-Kamera kann in der Zeit offline sein. Soll es los gehen, starte ich die Verbindung zur Kamera, und wechsele im OBS-Studio im Prinzip nur noch zur Kamera-Scene. (Zur Kamera-Scene an anderer Stelle mehr.)