首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显示RTSP流的GStreamer管道

显示RTSP流的GStreamer管道
EN

Stack Overflow用户
提问于 2017-05-24 13:40:38
回答 4查看 41.8K关注 0票数 10

我对Gstreamer非常陌生。

我需要编写一个视频客户端,可以使用GStreamer从RTSP源流数据。我将VLC配置为使用RTSP对我笔记本上的视频进行流,我希望创建一个管道来获取该流并显示它。我试着使用playbin,一切都很好。关键是我需要微调播放视频所用的延迟,但是似乎我不能用播放桶来完成这个任务。

我尝试了rtspsrc,因为它允许在延迟上工作,但是我不知道如何在任何窗口上显示视频。这就是我创建的管道:

代码语言:javascript
复制
gst-launch-1.0 rtspsrc location=rtsp://localhost:8554/test latency=300 ! decodebin ! autovideosink

我得到的错误“流任务暂停,原因没有-谈判(-4)”。

在互联网上深入观察后,我尝试了不同的管道,但我肯定错过了一些东西。我如何写一个gstreamer管道来显示来自RTSP的视频?

最后的目标是有一个至少在延迟方面可以调整的管道,所以我有两个选择:

  • 如果可能的话,设置playbin元素的延迟。(此元素正确显示视频)
  • 使用正确的管道显示视频,因为rtspsrc允许我设置延迟。

我使用Xubuntu16.04,gstreamer 1.0(也使用0.10 ),视频I流与VLC有mp4扩展。

EN

回答 4

Stack Overflow用户

发布于 2017-05-24 14:53:04

您可以通过设置正确的属性和使用playbin组件来调整延迟:

代码语言:javascript
复制
gst-launch-1.0 -v playbin uri=rtsp://localhost:8554/test uridecodebin0::source::latency=300

希望您能找到有用的信息:)

票数 9
EN

Stack Overflow用户

发布于 2019-11-06 09:16:50

假设rtsp流是h264格式,使用显式h264解码器和编码器解析流。使用视频转换和视频尺度来改变帧的形状。

代码语言:javascript
复制
gst-launch-1.0 rtspsrc location=rtsp://localhost:8554/test latency=100 ! queue ! rtph264depay ! h264parse ! avdec_h264 ! videoconvert ! videoscale ! video/x-raw,width=640,height=480 ! autovideosink
票数 7
EN

Stack Overflow用户

发布于 2017-05-24 15:18:36

上次我检查时,playbin确实有一个latency选项。请注意,它的规模与rtspsrc的不同。rtspsrc以毫秒为单位,而playbin为纳秒。它仍然可能不会低于某个阈值-取决于输入视频需求(vbv缓冲区限制)。

对于您的rtspsrc管道,您可能在videoconvertautovideosonvert元素之前遗漏了一个autovideosink元素。

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

https://stackoverflow.com/questions/44160118

复制
相关文章

相似问题

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