首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >大延迟管道Gstreamer文件下沉

大延迟管道Gstreamer文件下沉
EN

Stack Overflow用户
提问于 2019-08-09 09:29:10
回答 1查看 2.1K关注 0票数 2

我在RTSP上用Gstremer准备了一个IP摄像头,它似乎是在线和实时的,命令如下:

代码语言:javascript
复制
gst-launch-1.0 rtspsrc location=rtsp://192.168.1.138:554/axis-media/media.amp ! rtph264depay ! decodebin ! videoconvert ! autovideosink sync=false

对于显示大约40 ms(毫秒)的来说,这是非常好的和延迟的。

如果我删除sync=false末端的autovideosink,它显示的是2秒延迟。

现在我希望同步RTSP流在一个文件上。首先,我用mkfifo file.ts/tmp中创建一个管道,然后使用:

代码语言:javascript
复制
gst-launch-1.0 rtspsrc location=rtsp://192.168.1.138:554/axis-media/media.amp ! rtph264depay ! mpegtsmux ! filesink location=file.ts

它与ts格式和h264编解码器正确同步。我可以成功地与mplayer file.tsgst-play-1.0 file.ts玩它,但有2秒延迟!

我尝试使用sync=falseautovideosink,但是我得到了错误,或者没有效果。

如何减少文件下沉的延迟?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-16 09:20:38

经过大量的搜索,我发现官方Gstreamer文档中Jitter缓冲区的问题缺省值是200 is,但实际上是2秒。

“延迟”是jitterbuffer的最大延迟。这一次,数据包最多只能保存在缓冲区中。标志:读/写默认值: 200 这里

所以我可以通过命令将延迟增加到400毫秒:

代码语言:javascript
复制
gst-launch-1.0 rtspsrc latency = 0 location=rtsp://192.168.1.138:554/axis-media/media.amp ! rtph264depay ! mpegtsmux ! filesink  location=file.ts

另外,对于mkfifo也是400 is的延迟,因此命名管道不是好的解决方案的实时应用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57427161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档