GStreamer启动RTSP服务器以重新格式化IP摄像机H264

GStreamer启动RTSP服务器以重新格式化IP摄像机H264,gstreamer,rtsp,sdp,Gstreamer,Rtsp,Sdp,我将使用不同计算机上的多个客户端来查看IP摄像机流url的视频。由于Ip摄像头对连接的客户端数量有限制,因此我想为此设置一个拖缆。我用不同的命令行选项搜索并尝试了GStreamer,但还没有成功 下面是一个测试命令行: gst-launch-1.0 rtspsrc 位置=rtsp://root:root@192.168.1.1/axis media/media.amp?videocodec=h264&分辨率=320x240&fps=10&压缩=50 延迟=10!rtph264depay!h264

我将使用不同计算机上的多个客户端来查看IP摄像机流url的视频。由于Ip摄像头对连接的客户端数量有限制,因此我想为此设置一个拖缆。我用不同的命令行选项搜索并尝试了GStreamer,但还没有成功

下面是一个测试命令行:

gst-launch-1.0 rtspsrc 位置=rtsp://root:root@192.168.1.1/axis media/media.amp?videocodec=h264&分辨率=320x240&fps=10&压缩=50 延迟=10!rtph264depay!h264parse!tcpserversink 主机=127.0.0.1端口=5100-e

但当我想用vlc测试它时,什么都不播放。它与SDP有关吗?gstreamer是否可以从源代码处重新对sdp进行扫描

在找到正确的命令行之后,我想将它集成到一个c应用程序中,以自动化这个过程

欢迎任何帮助。

您需要帮助。要使用它,您必须编写小型C/C++应用程序-

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

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

要从IP摄像头重新传输h.264视频,下面是Gstreamer管道,这对我来说很有用

rtspsrc位置=rtsp://IP_CAMERA_URL ! rtph264depay!视频/x-h264,流格式=字节流!h264parse!RTPH264支付!应用程序/x-rtp,媒体=视频,编码名称=H264,有效负载=96!你的水槽

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

您确定tcpserversink实际上是一个RTSP服务器吗?上一次我在大约1或2年前检查时,GStreamer中没有RTSP服务器实现。有效的选项是使用Live555库实现服务器。@Velkan是的,我看到gstreamer中有RTSP服务器的实现,但我不确定tcpserversink或udpsink是否也支持RTSP服务器。我已经成功地使用了Live555,但它似乎在大型网络中存在问题。我想测试GStuffER。我在C++应用程序中用GSPILE库和DLL测试了这个示例,它工作。它以vlc显示测试视频源。但如何将ip摄像头rtsp源连接到此拖缆。我已经测试过了,但没有效果。我替换了videotestsrc is live=1!x264enc!rtph264pay name=pay0 pt=96,带rtspsrc位置=rtsp://root:root@192.168.1.1/axis media/media.amp?videocodec=h264&resolution=320x240&fps=10&compression=50在源代码中。感谢您的回答,帮助我找到了正确的答案。仅使用rtspsrc是不够的。要使用它,还必须连接到pad附加信号,并使用它将其连接到管道。这是一个复杂的过程,除此之外还有其他选择。我使用了GstRTSPMediaFactoryURI类,该类处理所有问题并准备好RTSP服务器。