Я использую Ubuntu 20.04.3. У меня есть USB веб-камера. Я могу управлять различными аспектами вывода веб-камеры с помощью v4l2-ctl
, например
v4l2-ctl --set-ctrl focus_auto=1,white_balance_temperature_auto=1,backlight_compensation=1,brightness=64
Я хотел бы иметь возможность обрезать вывод веб-камеры для использования на онлайн-встречах (сейчас он показывает слишком много фона). Но ни один из параметров, возвращаемых v4l2-ctl -l
, не имеет отношения к обрезке. Я также заметил, что ползунки в настройках "Обрезка и композиция" в qv4l2
не двигаются, и при запуске guvcview
не появляется ничего, связанного с обрезкой. Можно ли обрезать вывод веб-камеры?
Вот данные о веб-камере из lsusb
Bus 005 Device 002: ID 1bcf:2cb4 Sunplus Innovation Technology Inc. Webcam
А вот данные о драйвере из v4l2-ctl -d /dev/video0 -D
Driver Info:
Driver name : uvcvideo
Card type : Webcam: Webcam
Bus info : usb-0000:09:00.3-1
Driver version : 5.11.22
Capabilities : 0x84a00001
Video Capture
Metadata Capture
Streaming
Extended Pix Format
Device Capabilities
Device Caps : 0x04200001
Video Capture
Streaming
Extended Pix Format
Я понял, что могу обрезать вывод веб-камеры, используя другое устройство обратной петли и ffmpeg
. Следующее изображение увеличивает с коэффициентом, установленным в переменной "fac".
fac=1.4
ffmpeg -vcodec mjpeg -r 30 -s 1920x1080 \
-i /dev/video0 \
-vf "scale=$fac*iw:-1, crop=iw/$fac:ih/$fac","format=yuv420p" \
-f v4l2 /dev/video10
Затем я могу выбрать соответствующее видео в качестве входа, прежде чем присоединиться к встрече.