İki işlemin web kamerasına aynı anda erişmesi mümkün müdür?


14

Google+ Hangouts'ta Peynir'i ve benzer yapılandırmalarda kullanmayı denemek istiyorum ve web kamerasının aynı anda iki işlem tarafından kullanılmasının mümkün olup olmadığını bilmek istiyorum. Henüz denemedim, ama yapmadan önce soracağımı düşündüm.

Bu mümkün mü?

Yanıtlar:


6

Sadece denedim. İlginç sonuçlar.

Ben skype ve peynir ve web kamerası oyuncak ve hangouts (ki hepsi işe yarıyor) var ve birlikte çalıştı.

Sonuçlar:

Aynı web kamerasını aynı anda 2 şeyde kullanamazsınız.

Peynir (Çalışma) + Web Kamerası Oyuncak (Çalışmıyor) + Skype (Küçük, sağ üst. Çalışmıyor).

resim açıklamasını buraya girin

Yine de 2 şey üzerinde 2 web kamerası kullanabilirsiniz. (Peynir + Webcam Oyuncak).

resim açıklamasını buraya girin

Hangouts (Çalışmıyor) + Peynir (Çalışıyor)

resim açıklamasını buraya girin

Hangouts (Kendi başına çalışma).

resim açıklamasını buraya girin

Hangouts'u ilk açtığımda peynir kırıldı. Diğerleriyle aynı şeyi yaptı, ancak internetim her bir ekran görüntüsünü yüklemek için çok yavaş (ve 30'dan fazla ekran görüntüsünü takdir edeceğinizden şüpheliyim) ...

resim açıklamasını buraya girin

Hatta simgesel bir bağlantı yapmadan çalıştı /dev/video0ve içinde kaydederek /devolarak video2. Bu işe yaramadı.

Aynı anda 2 peynir işlemi de yapamıyorum.

Gerekirse, tam ekran yapmayı ve 2 ekran kaydı yapmanızı tavsiye ederim. Bunun ne istersen işe yarayacağından şüpheliyim.


Teşekkürler! Bu kısa ve bana ne bilmem gerektiğini söylüyor. Güzel bahçe btw! Ödül zaman aşımı sona erdiğinde verilir (21 saat). Sonra bu yorumu sileceğim.
RolandiXor

@Mew Bu işe almak için son girişim oldu :)
Tim

@Tim Bir sonraki cevap, buraya geldiyseniz tam olarak aradığınız şeydir çünkü bunu yapmanın bir yoluna ihtiyacınız var.
Isiah Meadows

1
@impinball hayır, ilginç bir soru buldum!
Tim

14

Mutlu bir şekilde, şimdi, EVET!

Şu anda GitHub'da sadece iki değil, aynı zamanda sonsuz (yalnızca sistem kapasitesi ile sınırlı) sayıda video cihazını gösterebilen bir proje var.

Proje denir v4l2loopback. (Bağlantıyı kontrol edin ve talimatlar için README'yi görüntülemek üzere aşağı kaydırın.)

v4l2loopbackGitHub'ını klonlayarak ve şu komutları çalıştırarak yükleyebilirsiniz :

$ git clone https://github.com/umlaeute/v4l2loopback.git
$ cd v4l2loopback
$ make
$ sudo make install

Örnekler

GStreamer, FFmpeg, MPlayer ve Skype ile nasıl kullanılacağına ilişkin örnekler için küçük wiki'lerini kontrol edin . Umarım ihtiyaçlarınızı karşılayacak doğru ayarları bulabilirsiniz.

Etrafında tweaking tadını çıkarın!


1
Sanal cihazlar, Linux'un (ve bu konuda * nix'in) parladığı alanlardan biridir. Windows'da, beslemeyi bitirmek teeiçin beklemeyen temel bir yardımcı program bile yazmak daha karmaşıktır stdin. Bu aslında teekaputun altında daha ölçeklenebilir bir desteğe sahip bir ikili eşdeğer kullanıyorsa şaşırmam .
Isiah Meadows

Bu soruya cevap verse de, bağlantının bazı kısımlarını buraya eklemek ve referans için bağlantıyı sağlamak tercih edilir, böylece bazı örneklerimiz vardır - örneğin 1'den 2 cihaz yapın. Bunun için seçenekler nelerdir? Google hangout'larıyla (OP'nin gereksinimlerinde belirtildiği gibi) kullanmak mümkün müdür? Ben de sadece Skype ile test ettim ve işe yaramıyor gibi görünüyor. Biz şimdi sürüm 4.3 değil 4.0 ...
Tim

2
Diğer sistemim geri döndüğünde bunu kontrol etmem gerekecek. Muhtemelen ek bir ödül vereceğim.
RolandiXor

3
Bu aslında ubuntu'nun bir parçası - git'e gerek yok.
nbubis

Gerçekten, bu şimdi Ubuntu / Debian için v4l2loopback-utils olarak paketlenmiştir Bunu kendiniz derlemeye gerek yok
Arnaud Jeansen

3

@The Eye cevabına dayanarak

İlk olarak gstreamer paketlerini Ubuntu 18.04'e yükledim https://gstreamer.freedesktop.org/documentation/instal/on-linux.html

$ git clone https://github.com/umlaeute/v4l2loopback.git
$ cd v4l2loopback
$ make
$ sudo make install

Ubuntu 18.04 LTS'de uyarı mesajı aldım https://github.com/umlaeute/v4l2loopback/issues/139 (ancak v4l2loopback sürücüsünü yüklememi engellemedi)

$ sudo depmod -a

Dizüstü bilgisayarımda / dev / video0'da sadece 1 web kameram var ve aynı donanımdan 2 akış almak istedim. Göre https://github.com/umlaeute/v4l2loopback/blob/master/README.md

$ modprobe v4l2loopback devices=2

Orada şimdi olmalı /dev/video1ve /dev/video2varsayarak oluşturulan /dev/video0tek video cihazı oldu.

Şimdi aşağıdakileri bir terminal penceresinde çalıştırıyorum

gst-launch-1.0 v4l2src device=/dev/video0 ! tee name=t ! queue ! v4l2sink device=/dev/video1 t. ! queue ! v4l2sink device=/dev/video2

2 sekme daha açıyorum

İlk sekmede

gst-launch-1.0 v4l2src device=/dev/video1 ! videoconvert ! ximagesink

İkinci sekmede

gst-launch-1.0 v4l2src device=/dev/video2 ! videoconvert ! ximagesink

Şimdi 2 video akışı görülmeli

GÜNCELLEME

Aynı /dev/video1cihazı birden çok kez kullansam bile hepsi bana o kadar çok akış veriyor. misal.

İlk sekmede

gst-launch-1.0 v4l2src device=/dev/video1 ! videoconvert ! ximagesink

İkinci sekmede

gst-launch-1.0 v4l2src device=/dev/video1 ! videoconvert ! ximagesink

Üçüncü sekmede

gst-launch-1.0 v4l2src device=/dev/video1 ! videoconvert ! ximagesink

bana üç akarsu verir.


BTW bir web kamerası ses varsa daha sonra komut kullanarak ses cihazlarını filtrelemek pactl list | grep -A2 'Source #'o zaman aşağıdaki boru hattında o cihazı kullanın (çok sayıda boru hattı örnekleri çalıştırabilirsiniz)gst-launch-1.0 pulsesrc device=alsa_input.<name of device> ! autoaudiosink
enthusiasticgeek

Bu, FFmpeg çözümünden çok daha iyi çalışıyor çünkü kod çözmeden h264'ü kopyalamak için FFmpeg'i alamadım, bu da kimse dinlemediğinde bile her zaman CPU'yu kullanmasına neden oldu
Fabian N.

2

Cevap belki hayır ... Kütüphane, "Video 4 Linux" bir cihazın kullanılıp kullanılmadığını algılar ve başlatılmaz. Ancak; libv4l-dev'i indirmek ve manuel olarak düzenlemek isterseniz, bu denetimden kurtulmak için kodu düzenleyebilir ve daha sonra yeniden derleyebilirsiniz. Bunun işe yarayabileceğini düşünüyorum, ama son derece dengesiz olurdu. Gerçi kontrol etmeye değer olabilir.

TLDR: Kullanışlı bir dirsek yağı olan bir programcıysanız her şey mümkündür. O kadar ileri gitmek istemiyor musun? O zaman hayır; bu mümkün değil.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.