Webカメラの切り捨てバージョンであるv4l2デバイスを作成するには?

Webカメラの切り捨てバージョンであるv4l2デバイスを作成するには?

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/video2https://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

おすすめ記事