Изображение не восстанавливается на стороне приемника с использованием декодирования gstreamer vaapih264 - PullRequest
0 голосов
/ 14 марта 2019

Я отправляю закодированный поток H264 с помощью gstreamer и декодирую его на оборудовании Intel.Мой отправитель на самом деле является приложением, и его элементы конвейера выглядят примерно так:

caps2 = gst_caps_new_simple("video/x-raw",
               "format", G_TYPE_STRING, "I420",
               "width", G_TYPE_INT, 640,
               "height", G_TYPE_INT, 480,
               "framerate",GST_TYPE_FRACTION, 15 ,1,
               "pixxel-aspect-ratio",GST_TYPE_FRACTION,1,1, NULL);
gst_app_src_set_caps(GST_APP_SRC(app->videosrc),caps2);

gst_bin_add_many(GST_BIN(app->pipeline), app->videosrc,   app->x264enc,   app->rtppay,  app->udpsink, NULL );

Таким образом, в основном элемент appsrc получает данные с живой камеры, кодирует их с помощью кодера h264 и отправляет через приемник udp.

Конвейер получателя выглядит так:

gst-launch-1.0 -v udpsrc port=5002 ! application/x-rtp, media=video, clock-rate=90000, encoding-name=H264, payload=96  ! rtph264pdepay !  vaapih264dec ! videoconvert ! vaapisink sync=FALSE

Выход выглядит так, как показано на рисунке: Вывод конвейера приемника на моем оборудовании

IХотите знать, где я иду не так? Это задержка или цветовой формат?

...