Camera
如何創建作為網路攝像頭裁剪版本的 v4l2 設備?
我有一個羅技網路攝像頭 C930e
/dev/video0
。我可以用它來進行影片會議(例如 jitsi)。但是,來自此網路攝像頭的影片太高且太寬泛。我想要一個/dev/video0
沒有在牆上顯示海邊圖片的“裁剪”版本。首先,我嘗試設置
v4l2
選項來實現這一點,但沒有成功:$ v4l2-ctl -d /dev/video0 --get-cropcap Crop Capability Video Capture: Bounds : Left 0, Top 0, Width 640, Height 360 Default : Left 0, Top 0, Width 640, Height 360 Pixel Aspect: 1/1 $ v4l2-ctl -d /dev/video0 --get-selection target=crop_bounds Selection: crop_bounds, Left 0, Top 0, Width 640, Height 360, Flags: $ v4l2-ctl -d /dev/video0 --set-selection target=crop_bounds,flags=crop,top=10,left=10,width=100,height=100 VIDIOC_S_SELECTION: failed: Inappropriate ioctl for device
之後,我又遵循了另一個想法:我嘗試使用
v4l2loopback
來創建另一個設備/dev/video2
。之後我會嘗試使用ffmpeg
連接/dev/video0
到/dev/video2
(參見https://github.com/umlaeute/v4l2loopback/wiki和https://video.stackexchange.com/questions/4563/how-can-i-crop-a -video-with-ffmpeg)。所以現在,我沒有想法。有人可以給建議嗎?
下面的行創建了一個環回影片設備
/dev/video5
。之後ffmpeg
用於連接/dev/video0
到/dev/video5
,但在途中裁剪和翻轉流。sudo apt-get install v4l2loopback-dkms sudo modprobe v4l2loopback video_nr=5 ffmpeg -i /dev/video0 -f v4l2 -pix_fmt yuv420p -filter:v "hflip,crop=400:400:0:0" /dev/video5