Я отправляю закодированный поток 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Хотите знать, где я иду не так? Это задержка или цветовой формат?