FFmpeg изменить вывод на определенный формат пикселей? - PullRequest
0 голосов
/ 16 декабря 2018

Я работаю над проектом 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?

1 Ответ

0 голосов
/ 15 января 2019

Используйте фильтр format или параметр -pix_fmt.Например, мы будем использовать yuv420p формат пикселей!

# Using the format filter (yuv420p)
ffmpeg -i in_file -filter:v "format=yuv420p" out_file

# Using the 'pix_fmt' option
ffmpeg -i in_file -pix_fmt yuv420p out_file

[Бонус] Есть много форматов пикселей, доступных для получения их списка, запустите ffmpeg -pix_fmts.

...