Logitechウェブカメラ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)。
だから今はアイデアはありません。誰でもアドバイスできますか?
答え1
次の行はループバックビデオデバイスを作成します/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