簡體   English   中英

在使用真正的網絡攝像頭的同時在 linux 上使用帶有谷歌鉻或鉻的 v4l2loopback 虛擬攝像頭

[英]Using v4l2loopback virtual cam with google-chrome or chromium on linux while having real webcam in use

(我希望在這里發布對自己問題的回答不違反 TOS,我之所以這樣做是因為我在寫這篇文章時發現了解決方案,大量的谷歌搜索沒有幫助,所以我希望我可以幫助一些尋找解決方案的人。)

問題: Google chrome / Chromium 不會打開 v4l2loopback 虛擬相機設備(不會訪問它)並報告“無相機可用”,即使它有時在設置頁面中列出和選擇。

觀察到的問題原因:(在使用 OBS Cam Studio 時注意到)如果發現真實的相機設備正在使用(忙碌),Google chrome / Chromium 將不會訪問(打開)虛擬相機設備。

解決方案(簡短版本)

  • 找出你的物理攝像頭是哪個設備(它可能是多個設備)如果你的攝像頭是可插拔的,你可以斷開它,然后觀察ls /dev/video* ,連接它,並再次嘗試ls /dev/video*查看出現了哪些設備(在我的情況下是/dev/video0/dev/video1 ) - 在大多數情況下它將是/dev/video0
  • 啟動您的捕獲程序(使用物理網絡攝像頭並輸出到虛擬攝像頭的程序)並使其輸出到虛擬攝像頭(虛擬攝像頭必須輸入要由 chrome 打開的輸入)
  • 禁用對物理網絡攝像頭的訪問,這(在我的情況下)可以通過以下方式完成:
sudo chmod 000 /dev/video0
sudo chmod 000 /dev/video1

(使用您發現物理網絡攝像頭的設備名稱)

  • 在谷歌瀏覽器/鉻中啟動視頻捕獲(通過打開網頁或按某種“啟動網絡攝像頭”,這取決於網頁)
  • 您現在應該可以在 chrome 中看到虛擬相機輸入
  • 啟用對物理網絡攝像頭的訪問,完成(在我的情況下):
sudo chmod 660 /dev/video0
sudo chmod 660 /dev/video1
  • 並做了! 在網絡上玩得開心!

解決方案(長版) :分步說明如何使 OBS Cam Studio 虛擬輸出在 google chrome/chromium 中可見。

  • 如果您還沒有這樣做,請卸載 v4l2loopback 模塊(如果您不知道“exclusive_caps”參數,請執行此操作):
sudo modprobe -r v4l2loopback

(您需要停止任何虛擬攝像頭饋送並停止使用虛擬攝像頭的應用程序,否則您將收到modprobe: FATAL: Module v4l2loopback is in use.錯誤)

  • 加載 v4l2loopback 模塊(只有“exclusive_caps”參數很重要):
sudo modprobe v4l2loopback devices=1 video_nr=21 exclusive_caps=1 card_label="Virtual Webcam"

(此命令將創建一個名為/dev/video21和名稱(標題)“Virtual Webcam”的環回設備)該命令的更簡單版本,這真的很重要:

sudo modprobe v4l2loopback exclusive_caps=1
  • 啟動使用物理網絡攝像頭的視頻捕獲程序並輸出到虛擬網絡攝像頭設備(在我的情況下是 OBS Cam Studio) - 現在物理網絡攝像頭應該很忙(正在使用)並且虛擬網絡攝像頭應該輸入(重要)
  • 通過(在我的情況下)禁用物理網絡攝像頭設備訪問:
sudo chmod 000 /dev/video0
sudo chmod 000 /dev/video1

(在您的情況下設備名稱可能不同,並且可能只有其中一個)(如果您沒有 sudo 訪問權限並且您的相機是可插拔的,您可以拔掉它)

  • 開始使用帶有谷歌瀏覽器或鉻的網絡攝像頭(進入網頁並在其上打開網絡攝像頭,例如通過網頁上的“使用我的網絡攝像頭”按鈕 - 它因頁面而異)
  • 您現在應該看到虛擬網絡攝像頭提要(如果沒有,請單擊地址欄右側的攝像頭圖標,單擊“管理”並在設置中按名稱選擇您的虛擬網絡攝像頭,再次使網頁使用網絡攝像頭)
  • 通過(在我的情況下)啟用物理網絡攝像頭設備訪問:
sudo chmod 660 /dev/video0
sudo chmod 660 /dev/video1

(如果您拔掉網絡攝像頭,將其插回並(可能)在您的程序中重新打開它)

  • 享受 chrome 中的虛擬網絡攝像頭!

我希望它有所幫助,因為我掙扎了很長時間,但在 OBS Cam Studio 中使 google chrome 打開虛擬網絡攝像頭沒有任何效果。

編輯:找到基於類似原理的工作解決方案,它在這里: https : //www.scs.stanford.edu/~dm/blog/hide-webcam.html它從可見網絡攝像頭列表中隱藏物理網絡攝像頭,所以你需要手動或在程序的配置設置中輸入它的路徑。

回答我自己的帖子以將其標記為“已回答”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM