Chciałbym spróbować użyć Cheese w Google+ Hangouts i podobnych konfiguracjach, i chcę wiedzieć, czy możliwe jest korzystanie z kamery przez dwa procesy w tym samym czasie. Nie próbowałem tego jeszcze, ale pomyślałem, że zapytam.
Czy to możliwe?
Właśnie próbowałem. Ciekawe wyniki.
Mam skype, ser i zabawkę z kamery internetowej oraz spotkania (które działają) i wypróbowałem je razem.
Wyniki:
Nie możesz używać tej samej kamery na dwóch rzeczach jednocześnie.
Ser (pracujący) + zabawka kamery internetowej (nie działa) + Skype (mały, prawy górny. Nie działa).
Możesz korzystać z 2 kamer internetowych na 2 rzeczach. (Ser + zabawka kamery internetowej).
Hangouty (nie działa) + ser (działa)
Hangouty (działające samodzielnie).
Ser złamany, gdy pierwszy raz otworzyłem Hangouts. To samo zrobiło z innymi, ale mój internet jest zbyt wolny, aby przesyłać każdy zrzut ekranu (i wątpię, czy docenisz ponad 30 zrzutów ekranu) ...
Próbowałem nawet utworzyć symboliczny link /dev/video0
i zapisać go /dev
jako video2
. To nie zadziałało.
Nie mogę również uruchomić 2 procesów serowych jednocześnie.
Gdybyś musiał, radziłbym zrobić to na pełnym ekranie i nagrać 2 ekrany. Wątpię, czy to zadziałałoby na to, czego chcesz.
Na szczęście teraz TAK!
Obecnie na GitHub istnieje projekt, który może pokazywać nie tylko dwa, ale nieskończoną (ograniczoną tylko pojemnością systemu) liczbę urządzeń wideo z jednego źródła.
Projekt nazywa się
v4l2loopback
. (Sprawdź link i przewiń w dół, aby wyświetlić README, aby uzyskać instrukcje.)Możesz zainstalować
v4l2loopback
, klonując GitHub i uruchamiając następujące polecenia:Przykłady
Aby dowiedzieć się, jak używać go z GStreamer, FFmpeg, MPlayer i Skype, sprawdź ich małą wiki . Mamy nadzieję, że znajdziesz odpowiednie ustawienia odpowiadające Twoim potrzebom.
Życzymy udoskonalania!
źródło
tee
narzędzia, które nie czeka nastdin
dokończenie karmienia. Nie zdziwiłbym się, gdyby faktycznie używał binarnego odpowiednikatee
z bardziej skalowalnym wsparciem pod maską.Na podstawie odpowiedzi @The Eye
Najpierw zainstalowałem pakiety gstreamer na Ubuntu 18.04 https://gstreamer.freedesktop.org/documentation/installing/on-linux.html
Otrzymałem komunikat ostrzegawczy, jak tutaj na Ubuntu 18.04 LTS https://github.com/umlaeute/v4l2loopback/issues/139 (ale nie powstrzymało mnie to przed załadowaniem sterownika v4l2loopback)
Mam tylko 1 kamerę internetową na moim laptopie / dev / video0 i chciałem uzyskać 2 strumienie z tego samego sprzętu. Na podstawie https://github.com/umlaeute/v4l2loopback/blob/master/README.md
Powinny istnieć
/dev/video1
i/dev/video2
tworzone, zakładając, że/dev/video0
było jedynym urządzeniem wideo.Teraz uruchamiam następujące w jednym oknie terminala
Otwieram jeszcze 2 zakładki
W pierwszej zakładce
W drugiej zakładce
Teraz powinieneś zobaczyć 2 strumienie wideo
AKTUALIZACJA
Nawet jeśli używam tego samego
/dev/video1
urządzenia wiele razy, to wszystko daje mi tyle strumieni. przykład.W pierwszej zakładce
W drugiej zakładce
W trzeciej zakładce
daje mi trzy strumienie.
źródło
pactl list | grep -A2 'Source #'
a następnie użyj tego urządzenia w następującym potoku (może również uruchamiać wiele wystąpień potoku)gst-launch-1.0 pulsesrc device=alsa_input.<name of device> ! autoaudiosink
Odpowiedź brzmi „nie”, może… Biblioteka „Video 4 Linux” wykrywa, czy urządzenie jest używane i nie inicjuje się. Jednak; jeśli chcesz pobrać libv4l-dev i edytować go ręcznie, możesz edytować kod, aby pozbyć się tego sprawdzenia, a następnie po prostu go ponownie skompilować. Wyobrażam sobie, że można to uruchomić, ale byłoby to bardzo niestabilne. Może warto jednak to sprawdzić.
TLDR: Wszystko jest możliwe, jeśli jesteś programistą z przydatnym smarem łokciowym. Nie chcesz iść tak daleko? W takim razie nie; to nie jest możliwe.
źródło