How to create a v4l2 device that is a cropped version of a webcam?
Lines below create a loopback video device /dev/video5
. After that ffmpeg
is used to connect /dev/video0
to /dev/video5
, but crop and hflip the stream on its way.
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
Related videos on Youtube
Markus
Updated on September 18, 2022Comments
-
Markus almost 2 years
I have a Logitech Webcam C930e on
/dev/video0
. I can use this for doing video conferences (e.g. jitsi). However, the video from this webcam is too high and too broad. I would like to have a "cropped" version of/dev/video0
that does not show the seaside picture on the wall.First, I tried to set
v4l2
options to achieve this, but did not succeed:$ 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
After that, I followed another idea: I tried to use
v4l2loopback
to create another device/dev/video2
. After that I would have tried to useffmpeg
to connect/dev/video0
to/dev/video2
(see https://github.com/umlaeute/v4l2loopback/wiki and https://video.stackexchange.com/questions/4563/how-can-i-crop-a-video-with-ffmpeg).So now, I am out of ideas. Can someone give advice?