如何知道通过UDP ts流传输的视频分辨率?

时间:2016-08-29 12:44:10

标签: udp gstreamer mpeg

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

并且,我正在接收使用以下管道,

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

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

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:-1)

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);