我有一个用于VR的双USB摄像头:两个摄像头,一个usb接口。在linux上,这出现在/dev/video0和/dev/video1中,我可以使用ffmpeg -i /dev/video0来捕获 在Mojave上,我可以看到USB集线器中的两个设备: USB 2.0 Hub:
Product ID: 0x0101
Vendor ID: 0x1a40 (TERMINUS TECHNOLOGY INC.)
Version: 1.11
Speed: Up to 480Mb/sec
Location ID: 0x14200000 / 8
Current Available (mA
使用ffmpeg a arecord,我可以将我的Logitech usb摄像头识别为:
hw:CARD=U0x46d0x821,DEV=0
USB Device 0x46d:0x821, USB Audio
Direct hardware device without any conversions
plughw:CARD=U0x46d0x821,DEV=0
USB Device 0x46d:0x821, USB Audio
Hardware device with all software conversions
当我进入/dev/snd/by-id时,网络摄像头被描述为:
usb-04
使用ffmpeg arecord -L,我可以将我的罗技usb摄像头识别为:
hw:CARD=U0x46d0x821,DEV=0
USB Device 0x46d:0x821, USB Audio
Direct hardware device without any conversions
plughw:CARD=U0x46d0x821,DEV=0
USB Device 0x46d:0x821, USB Audio
Hardware device with all software conversions
当我进入/dev/snd/by-id时,网络摄像头被描述
我知道如果我们想读取视频文件或者USB摄像头或者rtsp流,我们可以使用cv2.VideoCapture。
但由于某些原因,我想使用ffmpeg来做这件事,并使用opencv处理获得的图像。所以伪代码是:
import cv2
import ffmpeg
videoFile = 'XXX.mp4'
video = ffmpeg.XXX(videoFile)
while True:
frame = video.read() # this read() function is made up by me
frameCV = ffmpeg2cv(frame) #
我已经设置了一个摄像头查看器来检测何时一个USB摄像机插入了一个udev规则,然后启动一个systemd服务来执行一个启动FFmpeg/FFplay网络摄像头流的脚本。我注意到,在启动DISPLAY=:0和XAUTHORITY=/home/pi/.Xauthority之前,在脚本中设置FFmpeg和FFmpeg时,FFmpeg将很难运行该流(Pi < 1fps)。
在viewer上,我没有使用这一点,它在插入摄像头时运行得很好,但是在PIP44GB上,除非设置了这些环境变量,否则摄像头查看器永远不会出现。日志上写着XDG_RUNTIME_DIR not set in the enviro
我想从raspberry pi 3上的外部usb摄像头上保存视频。为了避免压降问题,我使用正式的覆盆子电源(2.5安培),并通过一个独立供电的usb集线器连接所有usb设备:
pi@raspi:~/appdev/ffmpeg $ lsusb
Bus 001 Device 037: ID 046d:09a1 Logitech, Inc. QuickCam Communicate MP/S5500
Bus 001 Device 036: ID 046d:c03f Logitech, Inc. M-BT85 [UltraX Optical Mouse]
Bus 001 Device 035: ID