gstreamer获取视频播放事件

gstreamer获取视频播放事件,gstreamer,Gstreamer,我对gstreamer还很陌生,并尝试在现有管道上获取一些指标。管道设置为“appsrc队列mpegvideoparse avdec_MPEG2视频解交错videobalance xvimagesink” xImageSink只有一个接收板,我不确定其输出连接到何处以及如何连接,但我想知道实际视频设备/缓冲区何时显示第一个I帧,然后视频开始滚动 应用程序很早就将管道状态设置为“播放”,因此,监听此事件没有帮助 问候,退房和退房。然而,我不确定您到底想要什么:在GStreamer级别,您只能检测缓

我对gstreamer还很陌生,并尝试在现有管道上获取一些指标。管道设置为“appsrc队列mpegvideoparse avdec_MPEG2视频解交错videobalance xvimagesink”

xImageSink只有一个接收板,我不确定其输出连接到何处以及如何连接,但我想知道实际视频设备/缓冲区何时显示第一个I帧,然后视频开始滚动

应用程序很早就将管道状态设置为“播放”,因此,监听此事件没有帮助

问候,

退房和退房。然而,我不确定您到底想要什么:在GStreamer级别,您只能检测缓冲区通过某个元素处理的时刻,而不能检测缓冲区实际显示的时刻

没有srcpad(输出),只有sinkpad(输入)

您可以在此处阅读有关预滚的信息:

请务必先阅读GStreamer手册:

我将研究如何更有效地使用探测器,但我的问题是,第一个I帧出现在屏幕上,然后大约需要2秒才能开始播放视频。我试图找出造成延迟的原因,并能够测量任何更改的影响,我希望从视频解码器获取事件/打印,并基于此调用。我在gstreamer日志中看到提到ffmpeg视频解码器,你知道我如何从播放器中获得IFrame呈现、视频播放等事件吗?让我向你推荐我的,你可以找出什么元素占用了你的时间。它看起来很有用,我会试试。但是,在您的探测建议之后,现在我可以监视管道中的数据流,但是当数据进入xvimagesink元素时,它就会消失。我也想从视频解码器(ffmpeg)中获得一些指标。因为,我们的应用程序将mpeg-2 ts从一个文件馈送到appsrc,然后在appsrc和队列之间有一个插件,该插件进行软解复用。因此,我想确保我们为viddec有效地调整数据速度。我特别感兴趣的事件是第一个显示的I帧和视频播放/停止/暂停转换。