Я работаю над проектом openCV, у меня есть стабильно работающий вариант, который принимает данные с карты захвата HDMI и использует FFmpeg для вывода на устройство обратной связи v4L2 (/ dev / video0), мой проект openCV получает данные от /dev / video0.
Проблема возникает, когда я пытаюсь использовать канал rtsp, для отправки канала на мое устройство обратной связи работает следующая команда:
ffmpeg -rtsp_transport tcp -i rtsp://@192.168.1.27:552//stream1 -acodec rawvideo -vcodec rawvideo -f v4l2 /dev/video0
И я могу просматриватьчто подача с VLC (on / dev / video0) не проблема, однако, когда я передаю его в свое приложение openCV, я получаю следующую ошибку:
VIDEOIO ERROR: V4L2: Pixel format of incoming image is unsupported by OpenCV
Когда я запускаю v4l2-ctl -d /dev/video0 --all
на рабочем и нерабочие варианты вот что я получаю:
рабочий вывод
Format Video Output:
Width/Height : 1920/1080
Pixel Format : 'UYVY'
Field : None
Bytes per Line : 3840
Size Image : 4147200
Colorspace : sRGB
Transfer Function : Default
YCbCr Encoding : Default
Quantization : Default
Flags :
нефункциональный вывод
Format Video Output:
Width/Height : 1280/720
Pixel Format : 'YU12'
Field : None
Bytes per Line : 1280
Size Image : 1382400
Colorspace : sRGB
Transfer Function : Default
YCbCr Encoding : Default
Quantization : Default
Flags :
Итак, я пришел к выводу, что формат пикселя 'YU12' несовместимс openCV, в то время как формат 'UYVY'.Если это возможно, как мне установить вывод FFmpeg в пиксельном формате UYVY, если на входе YU12?