使用Gstreamer服务RTSP流,寻求工作示例

问题描述 投票:0回答:4

我们正在尝试让 Gstreamer 在 DM368 Leopardboard* 上工作,我们已成功说服它创建一个测试视频 (videotestsrc),对其进行编码,并将其转储到文件中。

有效的管道是:

gst-launch -v videotestsrc num-buffers=100 ! queue ! ffenc_mpeg4 bitrate=800000 ! ffmux_mp4 ! filesink location=video_test.mp4

下一步是修改管道以通过网络传输测试卡,以便使用类似 rtsp://ip_addr:port/streamname 的内容在具有 VLC 的 PC 上查看,但有关如何执行此操作的文档似乎很薄弱实际情况(并且通常已经过时),并且这些示例似乎模糊了源代码和命令行执行方式。

我坦率地承认,>50% 的问题是我们对 Gstreamer 及其各个部分缺乏熟悉,我总是发现,如果我有一个可以工作的示例,我可以用棍子戳它并找出从那里休息。

我已经走到这一步了:

gst-launch -v videotestsrc ! queue ! ffenc_mpeg4 bitrate=800000 ! rtpmp4vpay ! tcpserversink host=<PC_ip> port=5000

这似乎让 VLC 中发生了某事(使用 tcp://board_ip:port)——它似乎认为发生了一些事情(不会抛出错误),但不播放/显示任何内容。当我破坏 (^C) gst 进程时,VLC 会注意到。

所以,基本上 - 任何指导/反馈都会很棒,一个有效的单行文字会很棒。

编辑添加:是的,我看到了 test_video.c 示例,但它正在编译一个特殊的程序来执行一些看起来应该可以从命令行调用来证明这个概念的操作。

* = Linux version 2.6.32-17-ridgerun /CPU: ARM926EJ-S
video streaming gstreamer rtsp vlc
4个回答
33
投票

来源: 与 RTP 相反,RTSP 服务器按需协商 RTP 服务器和客户端之间的连接(Link)。 gst-rtsp-server 不是 gstreamer 插件,而是一个可用于实现您自己的 RTSP 应用程序的库。以下测试用例应用在 Ubuntu 12.04.5 机器上:

  • 预赛
    • 使用基本/好/丑/坏插件安装 gstreamer-1.0
    • 安装
      autoconf automake autopoint libtool
      和其他缺少的基本构建工具
  • 搭建gst-rtsp-server
    • git clone git://anongit.freedesktop.org/gstreamer/gst-rtsp-server && cd gst-rtsp-server
    • 我们使用gstreamer 1.2:
      git checkout remotes/origin/1.2
    • 构建:
      ./autogen.sh --noconfigure && GST_PLUGINS_GOOD_DIR=$(pkg-config --variable=pluginsdir gstreamer-plugins-bad-1.0) ./configure && make
      (由于某种原因,pkg-config没有设置GST_PLUGINS_GOOD_DIR,所以我们显式地设置它)
  • 试运行
    • 运行测试应用程序:
      cd examples && ./test-launch "( videotestsrc ! x264enc ! rtph264pay name=pay0 pt=96 )"
    • 现在可以通过以下地址远程访问流(例如使用 VLC):
      rtsp://HOST_IP:8554/test

3
投票

终于在这里找到了一个工作示例:

GStreamer rtp 流转 vlc

但它确实需要为 VLC 创建 .SDP 文件并指定 IP 地址,这并不是我们真正想要的结果...但是,嘿,这是一个开始!


0
投票

我在流程结束时遇到了问题,例如:

  • 配置:未找到包“gstreamer-1.0”
  • 配置:错误:未找到 gstreamer-1.0 >= 1.2.3 (GStreamer)

我在这篇文章中找到了解决方案:

https://askubuntu.com/questions/384059/error-compiling-a-package-configure-error-no-gstreamer-1-0-1-0-0

效果非常好!!!


0
投票

如何使用python编码与ros2一起使用?

© www.soinside.com 2019 - 2024. All rights reserved.