【问题标题】:GStreamer Launch RTSP Server for ReStreaming IP Camera H264GStreamer 启动 RTSP 服务器,用于重新流式传输 IP 摄像机 H264
【发布时间】:2017-10-23 04:22:34
【问题描述】:

我将使用不同计算机上的多个客户端来查看 IP 摄像机流 url 的视频。因为网络摄像机对连接的客户端数量有限制,所以我想为此设置一个流媒体。我用谷歌搜索并尝试了具有不同命令行选项的 GStreamer,但尚未成功。

这是一个测试命令行:

gst-launch-1.0 rtspsrc location="rtsp://root:root@192.168.1.1/axis-media/media.amp?videocodec=h264&resolution=320x240&fps=10&compression=50" 延迟=10! rtph264depay! h264解析! tcpserversink 主机=127.0.0.1 端口=5100 -e

但是当我想用 vlc 测试它时,什么都没有播放。和SDP有关系吗? gstreamer 是否可以从源重新流式传输 sdp?

在找到正确的命令行后,我想将其集成到一个 c# 应用程序中以自动执行此过程。

欢迎任何帮助。

【问题讨论】:

  • 你确定tcpserversink实际上是一个RTSP服务器吗?上次我检查过(大约 1 或 2 年前),GStreamer 中没有 RTSP 服务器实现。可行的选项是使用 Live555 库实现服务器。
  • @Velkan 是的,我已经看到 gstreamer 中有 RTSP 服务器的实现,但我不确定 tcpserversink 或 udpsink 是否也支持 rtsp 服务器。我已经成功使用过Live555,但在大型网络中似乎有问题。我想测试 gstreamer。

标签: gstreamer rtsp sdp


【解决方案1】:

要从 IP 摄像机重新流式传输 h.264 视频,下面是 Gstreamer 管道(这对我有用)

rtspsrc 位置=rtsp://IP_CAMERA_URL ! rtph264depay!视频/x-h264,流格式=字节流! h264解析! rtph264pay! application/x-rtp,media=video,encoding-name=H264,payload=96 ! yoursink

gst-launch-1.0 --version ---> gst-launch-1.0 版本 1.14.5 GStreamer 1.14.5

【讨论】:

    【解决方案2】:

    您需要gst-rtsp-server。要使用它,您必须编写小型 C/C++ 应用程序 - example here

    upd:如果您的 rtsp 源提供 h264 视频流,您可以使用以下管道对其进行重新流式传输,而无需转码:

    rtspsrc location=rtsp://example.com ! rtph264depay ! h264parse ! rtph264pay name=pay0 pt=96
    

    【讨论】:

    • 我在一个 c++ 应用程序中使用 gstreamer 库和 Windows 中的 dll 测试了这个示例,它可以工作。它在 vlc 中显示测试视频源。但是我怎样才能将 ip camera rtsp 源连接到这个流媒体。我已经对此进行了测试,但不起作用。我用“(rtspsrc location="rtsp://root:root@192.168.1.1/axis-media/media.amp?videocodec =h264&resolution=320x240&fps=10&compression=50" )" 在源中。
    • 感谢您的回答,引导我找到正确的答案。使用 rtspsrc 是不够的。要使用它,还必须连接到填充信号,并将其连接到管道。这是一个复杂的过程,并且有一个替代方案。我使用了 GstRTSPMediaFactoryURI 类,它处理所有内容并准备好 RTSP 服务器以供使用。
    猜你喜欢
    • 2020-03-22
    • 2020-08-01
    • 1970-01-01
    • 2015-02-09
    • 1970-01-01
    • 2017-07-19
    • 1970-01-01
    • 2014-01-04
    • 1970-01-01
    相关资源
    最近更新 更多