wzyy2 / gstreamer-opencv

opencv + gstreamer simple demo
130 stars 43 forks source link

关于Gstreamer播放RTSP流延时问题 #6

Closed ghost closed 5 years ago

ghost commented 5 years ago

情况是这样,我们用这个demo获取rtsp视频流给opencv操作。存在近2秒的延时问题,经过我们的多种测试,有如下几个基本情况,方便您分析: 1、在开发板使用ffmpeg软解显示,在程序运行刚开始,会有类似于快进一样的效果出现,把不是实时的帧快速播放掉。之后的视频就是延时很小的视频了。 2、使用rtsp ip 摄像头厂商提供的工具,可以做到实时播放。(这种效果是不是可以排除网络延时、路由等影响) 3、在开发板上使用VLC播放器播放rtsp流,缓冲区设置成300,会得到一个很好的实时效果。 4、在开发板上使用您的例程播放,会有2秒的延时。在修改appsink中的drop和max_buffer参数(您的例程中分别为drop=true,max_buffer=1,我试了多种情况组合)并没有对延时时间进行改善。

我的初步考虑是: 综合情况1-3,可能是摄像头这边有图像的缓存(但是官方的软件中并没有设置缓存这一项),在ffmpeg或者gstreamer接收到的流可能是先有缓存的流。但是ffmpeg的策略让这些缓存帧快速播放,而gstreamer好像没有这样的策略。 所以想请教您一下,如何做到类似ffmpeg一样,丢弃先前的缓冲帧,达到实时播放的目的。 望您不吝赐教。

wzyy2 commented 5 years ago

用的rockchip? 是有这个问题。。联系下rk把。。 应该是编码参数的问题

ghost commented 5 years ago

您好,这个问题,我目前已经解决了。是因为命令行中的sync同步选项的问题。appsink和appsrc部分都分别需要打开选项sync=false。