如何知道来自 UDP ts 流的视频分辨率?

How to know the video resolution, which is coming over UDP ts stream?

我正在通过 udp 将 yuv 文件作为 mpegstream 流式传输。

而且,我正在使用下面的管道接收,

gst-launch-1.0 udpsrc port=8765 ! rtpmp2tdepay ! tsdemux ! avdec_h264 ! appsink

在,appsink,我正在接收视频缓冲区。但是,现在我想知道传入的视频流分辨率。

如何找到传入视频的分辨率。

在视频解码器的接收器垫上添加一个事件探测器。 API 需要一个处理程序。检查处理程序中的 GST_EVENT_CAPS。

这是 API: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#gst-pad-add-probe

sinkPad = gst_element_get_static_pad (Sink, "sink");

sinkCaps = gst_pad_get_current_caps (sinkPad);

UU_PRINT("Caps :: %s", gst_caps_to_string (sinkCaps));

str = gst_caps_get_structure(sinkCaps, 0);

if((!gst_structure_get_int (str, "width", &width))  || (gst_structure_get_int (str, "height", &height)))
{
    UU_PRINT("No Width/Height are Available in the Incoming Stream Data !!");
}

UU_PRINT("Width :: %d Hieght %d", width, height);

gst_caps_unref(sinkCaps);