【发布时间】:2017-10-24 21:36:50
【问题描述】:
我对 Gstreamer 还是很陌生。
我需要编写一个能够使用 GStreamer 从 RTSP 源流式传输数据的视频客户端。我将 VLC 配置为使用 RTSP 流式传输我在笔记本电脑上拥有的视频,并且我想创建一个管道来获取该流并显示它。我尝试使用playbin,一切正常。关键是我需要微调用于流式传输视频的延迟,但我似乎无法用 playbin 做到这一点。
我尝试了rtspsrc,因为它允许处理延迟,但我不知道如何在任何窗口上显示视频。这就是我创建的管道:
gst-launch-1.0 rtspsrc location=rtsp://localhost:8554/test latency=300 ! decodebin ! autovideosink
我收到错误“流式传输任务已暂停,原因未协商 (-4)”。
在深入研究互联网后,我尝试了不同的管道,但我确实错过了一些东西。如何编写 gstreamer 管道来显示来自 RTSP 的视频?
最终目标是拥有一个至少在延迟方面可以调整的管道,所以我有两个选择:
- 如果可能的话,设置 playbin 元素的延迟。 (此元素正确显示视频)
- 使用正确的管道显示视频,因为 rtspsrc 允许我设置延迟。
我使用的是 Xubuntu 16.04,gstreamer-tools-1.0(也使用了 0.10),我使用 VLC 流式传输的视频具有 mp4 扩展名。
【问题讨论】: