ฉันต้องการลองใช้ชีสใน Google+ แฮงเอาท์และการกำหนดค่าที่คล้ายกันและฉันต้องการทราบว่าเป็นไปได้หรือไม่ที่เว็บแคมจะใช้สองกระบวนการเพื่อเข้าถึงเว็บแคมในเวลาเดียวกัน ฉันยังไม่ได้ลองเลย แต่ก่อนหน้านี้ฉันคิดว่าฉันจะถาม
เป็นไปได้ไหม
ฉันต้องการลองใช้ชีสใน Google+ แฮงเอาท์และการกำหนดค่าที่คล้ายกันและฉันต้องการทราบว่าเป็นไปได้หรือไม่ที่เว็บแคมจะใช้สองกระบวนการเพื่อเข้าถึงเว็บแคมในเวลาเดียวกัน ฉันยังไม่ได้ลองเลย แต่ก่อนหน้านี้ฉันคิดว่าฉันจะถาม
เป็นไปได้ไหม
คำตอบ:
ฉันก็แค่พยายาม ผลลัพธ์ที่น่าสนใจ
ฉันมีสไกป์และชีสและของเล่นเว็บแคมและแฮงเอาท์ (ซึ่งทั้งหมดทำงาน) และลองพวกเขาด้วยกัน
ผล:
คุณไม่สามารถใช้เว็บแคมเดียวกันกับ 2 สิ่งในคราวเดียว
ชีส (ใช้งานได้) + ของเล่นเว็บแคม (ไม่ทำงาน) + Skype (เล็ก, บนขวา, ไม่ทำงาน)
คุณสามารถใช้ 2 เว็บแคมกับ 2 อย่าง (ของเล่นชีสและเว็บแคม)
แฮงเอาท์ (ไม่ทำงาน) + ชีส (กำลังทำงาน)
แฮงเอาท์ (ทำงานด้วยตัวเอง)
ชีสแตกเมื่อฉันเปิดแฮงเอาท์ก่อน มันทำเช่นเดียวกันกับคนอื่น ๆ แต่อินเทอร์เน็ตของฉันช้าเกินกว่าที่จะอัปโหลดทุกภาพหน้าจอ (และฉันสงสัยว่าคุณจะพอใจกับภาพหน้าจอมากกว่า 30 ภาพ) ...
ผมก็พยายามทำให้การเชื่อมโยงสัญลักษณ์/dev/video0
และบันทึกไว้ในฐานะ/dev
video2
นั่นไม่ได้ผล
ฉันไม่สามารถเรียกใช้กระบวนการชีส 2 รายการพร้อมกันได้
ถ้าคุณต้องฉันขอแนะนำให้ทำแบบเต็มหน้าจอและทำการบันทึก 2 หน้าจอ ฉันสงสัยว่ามันจะใช้ได้ผลกับสิ่งที่คุณต้องการ
ขณะนี้มีโครงการบน GitHub ที่สามารถแสดงได้ไม่เพียงสองเท่านั้น แต่มีจำนวนไม่ จำกัด (จำกัด โดยความจุของระบบ) ของอุปกรณ์วิดีโอจากแหล่งเดียว
v4l2loopback
โครงการที่เรียกว่า (ตรวจสอบลิงค์และเลื่อนลงเพื่อดู README สำหรับคำแนะนำ)
คุณสามารถติดตั้งv4l2loopback
โดยการโคลน GitHub และรันคำสั่งเหล่านี้:
$ git clone https://github.com/umlaeute/v4l2loopback.git
$ cd v4l2loopback
$ make
$ sudo make install
สำหรับตัวอย่างเกี่ยวกับวิธีการที่จะใช้กับ GStreamer, FFmpeg, MPlayer, และ Skype ตรวจสอบขนาดเล็กของพวกเขาวิกิพีเดีย หวังว่าคุณจะพบการตั้งค่าที่เหมาะสมกับความต้องการของคุณ
เพลิดเพลินไปกับการปรับแต่ง!
tee
ยูทิลิตี้พื้นฐานที่ไม่ต้องรอstdin
ให้อาหารเสร็จ ฉันจะไม่แปลกใจถ้าสิ่งนี้ใช้ไบนารีที่เทียบเท่าtee
กับการรองรับที่ปรับขยายได้มากกว่าภายใต้ประทุน
ตามคำตอบ @The Eye
ฉันติดตั้งแพ็คเกจ gstreamer เป็นครั้งแรกบน Ubuntu 18.04 https://gstreamer.freedesktop.org/documentation/installing/on-linux.html
$ git clone https://github.com/umlaeute/v4l2loopback.git
$ cd v4l2loopback
$ make
$ sudo make install
ฉันได้รับข้อความเตือนเช่นเดียวกับที่นี่บน Ubuntu 18.04 LTS https://github.com/umlaeute/v4l2loopback/issues/139 (แต่มันไม่ได้ป้องกันไม่ให้ฉันโหลดไดรเวอร์ v4l2loopback)
$ sudo depmod -a
ฉันเพิ่งมีเว็บแคม 1 เครื่องบนแล็ปท็อป / dev / video0 และฉันต้องการรับสตรีม 2 รายการจากฮาร์ดแวร์เดียวกัน อ้างอิงจากhttps://github.com/umlaeute/v4l2loopback/blob/master/README.md
$ modprobe v4l2loopback devices=2
ตอนนี้ควรมี/dev/video1
และ/dev/video2
สร้างสมมติว่า/dev/video0
เป็นอุปกรณ์วิดีโอเท่านั้น
ตอนนี้ฉันรันสิ่งต่อไปนี้ในหน้าต่างเทอร์มินัลเดียว
gst-launch-1.0 v4l2src device=/dev/video0 ! tee name=t ! queue ! v4l2sink device=/dev/video1 t. ! queue ! v4l2sink device=/dev/video2
ฉันเปิดอีก 2 แท็บ
ในแท็บแรก
gst-launch-1.0 v4l2src device=/dev/video1 ! videoconvert ! ximagesink
ในแท็บที่สอง
gst-launch-1.0 v4l2src device=/dev/video2 ! videoconvert ! ximagesink
ตอนนี้เราควรเห็นสตรีมวิดีโอ 2 รายการ
UPDATE
แม้ว่าฉันจะใช้/dev/video1
อุปกรณ์เดียวกันหลาย ๆ ครั้งมันก็ให้กระแสนั้นมากมาย ตัวอย่าง.
ในแท็บแรก
gst-launch-1.0 v4l2src device=/dev/video1 ! videoconvert ! ximagesink
ในแท็บที่สอง
gst-launch-1.0 v4l2src device=/dev/video1 ! videoconvert ! ximagesink
ในแท็บที่สาม
gst-launch-1.0 v4l2src device=/dev/video1 ! videoconvert ! ximagesink
ให้สามกระแส
pactl list | grep -A2 'Source #'
จากนั้นใช้อุปกรณ์ดังกล่าวในขั้นตอนต่อไปนี้ (สามารถเรียกใช้งานท่อได้หลายอินสแตนซ์)gst-launch-1.0 pulsesrc device=alsa_input.<name of device> ! autoaudiosink
คำตอบคืออาจจะมี ... ห้องสมุด "Video 4 Linux" ตรวจพบว่ามีการใช้อุปกรณ์หรือไม่และจะไม่เริ่มต้น อย่างไรก็ตาม; หากคุณต้องการดาวน์โหลด libv4l-dev และแก้ไขด้วยตนเองคุณสามารถแก้ไขรหัสเพื่อกำจัดการตรวจสอบนี้จากนั้นเพียงแค่คอมไพล์ใหม่ ฉันคิดว่าคุณสามารถทำให้มันใช้งานได้ แต่มันจะไม่เสถียรอย่างยิ่ง อาจจะคุ้มค่าการตรวจสอบว่า
TLDR: ทุกอย่างเป็นไปได้ถ้าคุณเป็นโปรแกรมเมอร์ที่มีจาระบีที่ข้อศอกบาง ไม่ต้องการที่จะไปไกลขนาดนั้น? ถ้าอย่างนั้นไม่; มันเป็นไปไม่ได้.