Camera

如何創建作為網路攝像頭裁剪版本的 v4l2 設備?

  • November 16, 2020

我有一個羅技網路攝像頭 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/wikihttps://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

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