2014-09-24 80 views
0

如何通过gstreamer获取视频流的宽度/高度?我有一个管道编码在C++具有以下结构:如何通过gstreamer获取视频流的宽度/高度?

rtspsrc -> rtpjitterbuffer -> rtph264depay -> mpegtsmux -> filesink 

我的任务是:当我得到的第一图像数据(无论是H264编码或MJPEG)我需要从它查询宽度和高度。可能吗? 我试图从rtph264depay的'src'中获取当前的大写字母,并从其结构中获取宽度/高度,但未能做到最后。

谢谢!

回答

0

您可以使用typefind元素来查找流的媒体类型并从中获取大写字母。

希望有帮助!

0

您使用的是0.10吗?它已经陈旧而且过时了多年。请移至1.0。

也就是说,在0.10中,您可以在元素的pad中注册notify:caps信号的回调函数。所以你可以在h264depay中做到这一点,并检查它是否有宽度/高度字段。如果没有,你可以添加一个h264parse,它可能会为你找到宽度和高度,你可以在它的源代码中使用notify:caps。

在1.0中,它应该工作相同,但在焊盘上使用事件探测器并查找CAPS事件。