如何知道来自 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。
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);
我正在通过 udp 将 yuv 文件作为 mpegstream 流式传输。
而且,我正在使用下面的管道接收,
gst-launch-1.0 udpsrc port=8765 ! rtpmp2tdepay ! tsdemux ! avdec_h264 ! appsink
在,appsink,我正在接收视频缓冲区。但是,现在我想知道传入的视频流分辨率。
如何找到传入视频的分辨率。
在视频解码器的接收器垫上添加一个事件探测器。 API 需要一个处理程序。检查处理程序中的 GST_EVENT_CAPS。
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);