Конвертировать YUV420 в BGR без использования видеоконвертации в GStreamer - PullRequest
0 голосов
/ 23 сентября 2019

Я использую GSteamer и хочу конвертировать I420 в формат BGR.Конвейер:

gst-launch-1.0 filesrc location= ./Big_Buck_Bunny_1080_10s_1MB.mp4 ! qtdemux ! h264parse ! avdec_h264 ! fakesink

Я не использую плагин videoconvert , потому что он требует много нагрузки на процессор.Я увидел, что плагины avdec_h264 поддерживают формат BGR, и я попытался выбрать формат BGR, но вывод всегда дает формат I420 («avdec_h264! Video / x-raw, format = BGR!»).

Я попытался преобразовать его в формат BGR в исходном коде ( gst-libav / ext / libav / gstavvidec.c \ gst_ffmpeg_pixfmt_to_videoformat () ), но получилошибка в (gst-libav / gst-libs / ext / libav / libavcodec / decode.c), 1606

for (i = 0; i < num_planes; i++) {
            av_assert0(frame->data[i]);
        }

Исправлен ли мой путь?Должен ли я изменить num_planes в deocode.c?Если это неправильный способ, могу ли я преобразовать формат с помощью OpenCV с конвейером GStreamer?

Если у вас есть какой-то хороший способ, скажите, пожалуйста, также.

...