jak stworzyć duplikat / dev / video0?

17

Mam 1 kamerę internetową podłączoną do mojego komputera, ale chcę jej używać w wielu programach.
Problem polega na tym, że kiedy uruchamiam drugi program, mówi mi, że kamera internetowa jest już używana.

Programy, które będą korzystać z kamery internetowej to: motion, pam_face_authentification oraz niektóre oprogramowanie komunikacyjne, takie jak Skype, Hangout Google ...

Jak mogę powielić przepływ mojej kamery internetowej, aby zasymulować drugą kamerę internetową?

użytkownik244552
źródło
Nie rozumiem, co mi mówisz?
user244552,
strumień do pliku i na wyświetlacz. możesz to zrobić za pomocą VLC, prawdopodobnie sera. gdy masz już strumień, wszystko może go użyć.
j0h
Dlaczego nie zrobić tego w systemie operacyjnym? Poprzez „Aplikacje startowe”.
Gtx

Odpowiedzi:

9

Moje pierwsze myśli były następujące: zastanawiam się, czy ktoś wymyślił sposób wyświetlania wideo jako kamery internetowej (np. Skypuję z kimś innym, ale wideo i audio, które widzą, to wybrane przeze mnie wideo). Po krótkich poszukiwaniach wygląda na to, że ludzie zrobili to przesyłanie wideo (jak omówiono w Manipulowaniu wideo dla programistów i fałszywej kamerze internetowej za pomocą urządzenia pętli wideo?

Jak wspomniano w komentarzu, gst-launch v4l2src device=/dev/video0 ! v4l2sink device=/dev/video1pozwala powielić video0 do video1 i video1 jest czytelny przez jakiegoś oprogramowania.

Aby uruchomić to podczas uruchamiania komputera, możesz śledzić UbuntuBootupHowto i wymyślić coś takiego:

# /etc/init/videocloner.conf
description "VideoCloner"
start on runlevel [2345]
stop on runlevel [06]
respawn
exec gst-launch v4l2src device=/dev/video0 ! v4l2sink device=/dev/video1

Ten skrypt powinien się uruchomić, gdy komputer uruchomi się, a także umożliwia uruchomienie sudo service videocloner start|stop (Uwaga: jeśli mój przykładowy skrypt nie działa, spróbuj przejść gst-launch v4l2src device=/dev/video0 ! v4l2sink device=/dev/video1do skryptu powłoki i execzamiast tego zmienić wiersz, aby wywoływał skrypt powłoki) .

Dolan Antenucci
źródło
1
Chcę dodać coś do odpowiedzi Dolana. Musisz także zainstalować v4l2loopback-dkmspakiet i uruchomić v4l2loopbackmoduł: sudo apt-get install v4l2loopback-dkmsa następniesudo modprobe v4l2loopback
Tarek Loubani
Próbowałem tego, ale w rezultacie mam użyteczne / dev / video1, ale nieużyteczne / dev / video0, więc nie pozwala mi to na to, aby dwa programy korzystały z tej samej fizycznej kamery internetowej. Próbowałem zmodyfikować polecenie, aby utworzyć / dev / vidoe1 i / dev / video2, więc mam 2 punkty końcowe, ale bez powodzenia.
unfa