use*_*456 3 pipe ffmpeg file-descriptors fifo
一个ffmpeg
摄像头捕捉在后台运行。
ffmpeg -f video4linux2 -s vga -i /dev/video0 capture.mp4 (1)
Run Code Online (Sandbox Code Playgroud)
ffplay
由于使用了该设备,因此我无法阅读它/dev/video0
:
ffplay -f video4linux2 -s vga -i /dev/video0 (2)
[...]
/dev/video0: Device or resource busy
Run Code Online (Sandbox Code Playgroud)
如何在ffplay
不停止后台捕获的情况下读取网络摄像头?
PS:后台抓包命令不要修改。我知道这可以通过使用 fifo 修改命令 (1) 来完成。
做这个:
sudo modprobe v4l2loopback devices=1
Run Code Online (Sandbox Code Playgroud)
如果您遇到类似的错误modprobe: FATAL: Module v4l2loopback not found in directory /lib/modules/4.6.0-kali1-amd64
,只需先安装 v4l2loopback-dkms,例如:
sudo apt-get install v4l2loopback-dkms
Run Code Online (Sandbox Code Playgroud)
现在先运行它(注意它不能通过 trailing 作为后台进程运行&
):
ffmpeg -f video4linux2 -i /dev/video0 -codec copy -f v4l2 /dev/video1
Run Code Online (Sandbox Code Playgroud)
在不停止上述过程的情况下,在其他 bash 会话中,您应该能够同时运行您的两个命令,即ffmpeg -f video4linux2 -s vga -i /dev/video1 capture.mp4
和ffplay -f video4linux2 -s vga -i /dev/video1
(将其更改为 /dev/video1)..
如果您将其设置为2
:
sudo modprobe v4l2loopback devices=2
Run Code Online (Sandbox Code Playgroud)
然后你可以做ffmpeg -f video4linux2 -i /dev/video0 -codec copy -f v4l2 /dev/video1 -codec copy -f v4l2 /dev/video2
,它允许你同时使用 /dev/video1 和 /dev/video2 。
归档时间: |
|
查看次数: |
2436 次 |
最近记录: |