Pipe

如何讀取背景擷取已使用的網路攝像頭?

  • February 9, 2017

網路ffmpeg攝像頭擷取正在後台執行。

ffmpeg -f video4linux2 -s vga -i /dev/video0  capture.mp4    (1)

ffplay因此,由於使用了該設備,我無法閱讀它/dev/video0

ffplay -f video4linux2 -s vga -i /dev/video0                  (2)
[...]
/dev/video0: Device or resource busy

如何在ffplay不停止後台擷取的情況下讀取網路攝像頭?

PS:後台抓包命令不要修改。我知道這可以通過使用 fifo 修改命令 (1) 來完成。

做這個:

sudo modprobe v4l2loopback devices=1

如果您遇到類似的錯誤modprobe: FATAL: Module v4l2loopback not found in directory /lib/modules/4.6.0-kali1-amd64,請先安裝 v4l2loopback-dkms,例如:

sudo apt-get install v4l2loopback-dkms

現在先執行它(注意它不能通過尾隨作為後台程序執行&):

ffmpeg -f video4linux2  -i /dev/video0 -codec copy -f v4l2 /dev/video1

在不停止上述過程的情況下,在其他 bash 會話中,您應該能夠同時執行兩個命令,即ffmpeg -f video4linux2 -s vga -i /dev/video1 capture.mp4ffplay -f video4linux2 -s vga -i /dev/video1(將其更改為 /dev/video1)。

如果您將其設置為2

sudo modprobe v4l2loopback devices=2

然後你可以這樣做ffmpeg -f video4linux2 -i /dev/video0 -codec copy -f v4l2 /dev/video1 -codec copy -f v4l2 /dev/video2,它允許你同時使用 /dev/video1 和 /dev/video2。

引用自:https://unix.stackexchange.com/questions/343832