/dev/video0
にLogitech Webcam C930eを持っています。これをビデオ会議(jitsiなど)に使用できます。ただし、このWebカメラからのビデオは高すぎ、広すぎます。壁に海辺の写真が表示されない/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
、ただし途中でストリームをトリミングしてhflipします。
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