首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >来自命令行的rtspclient接收器测试管道

来自命令行的rtspclient接收器测试管道
EN

Stack Overflow用户
提问于 2021-09-08 07:29:15
回答 1查看 2.6K关注 0票数 2

我想使用GStreamer管道元素与rtsp进行流。首先,我使用GST-INVI-1.0检查rtspclient接收器是否可用:

代码语言:javascript
运行
复制
xilinx-k26-starterkit-2020_2:/# gst-inspect-1.0 | grep rtsp
rtspclientsink:  rtspclientsink: RTSP RECORD client
rtsp:  rtspsrc: RTSP packet receiver
rtsp:  rtpdec: RTP Decoder

然后,编写最简单的管道,并以视频tested作为源,以kmssink作为接收器进行测试。以下管道运行良好:

代码语言:javascript
运行
复制
gst-launch-1.0 videotestsrc ! video/x-raw, width=1920, height=1080 ! kmssink bus-id=fd4a0000.zynqmp-display fullscreen-overlay=1 sync=false

然后,将接收器更改为rtspclient接收器:

代码语言:javascript
运行
复制
gst-launch-1.0 videotestsrc ! video/x-raw, width=1920, height=1080 !  rtspclientsink location=rtsp://localhost:554/test

但是,即使使用简单的管道,也无法启动流并遇到以下错误:

代码语言:javascript
运行
复制
xilinx-k26-starterkit-2020_2:/# gst-launch-1.0 videotestsrc ! video/x-raw, width=1920,height=1080 ! rtspclientsink location=rtsp://localhost:554/test
Setting pipeline to PAUSED ...
Pipeline is PREROLLED ...
Progress: (open) Opening Stream
Progress: (connect) Connecting to rtsp://localhost:554/test
ERROR: from element /GstPipeline:pipeline0/GstRTSPClientSink:rtspclientsink0: Could     not open resource for reading and writing.
Additional debug info:
../../../gst-rtsp-server-1.16.1/gst/rtsp-sink/gstrtspclientsink.c(3236):     gst_rtsp_client_sink_connect_to_server (): /GstPipeline:pipeline0    /GstRTSPClientSink:rtspclientsink0:
Failed to connect. (Generic error)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...

有人能告诉我这个错误以及我如何使用rtspclient接收器作为接收器吗?我还考虑使用一个脚本(如下所示)进行流,该脚本使用rtsp服务器,但我想知道是否可以使用rtspclient接收器作为管道element.Thanks。

代码语言:javascript
运行
复制
#include <gst/gst.h>
#include <gst/rtsp-server/rtsp-server.h>
#define DEFAULT_RTSP_PORT "9001"
...(some code)
/* create a server instance */
server = gst_rtsp_server_new ();
g_object_set (server, "service", port, NULL);
mounts = gst_rtsp_server_get_mount_points (server);

factory = gst_rtsp_media_factory_new ();
gst_rtsp_media_factory_set_launch (factory, argv[1]);
gst_rtsp_media_factory_set_shared (factory, TRUE);
...(some code that creates pipeline and calls rtsp stream function)
EN

Stack Overflow用户

发布于 2022-07-31 20:57:15

下载rtsp-simple

https://github.com/aler9/rtsp-simple-server/releases

解压缩并运行它

代码语言:javascript
运行
复制
tar xvf rtsp-simple-server_v0.19.3_linux_amd64.tar.gz
./rtsp-simple-server

它会告诉你它在监听哪个端口

代码语言:javascript
运行
复制
2022/07/31 13:23:34 INF rtsp-simple-server v0.19.3
2022/07/31 13:23:34 INF [RTSP] listener opened on :8554 (TCP), :8000 (UDP/RTP), :8001 (UDP/RTCP)
2022/07/31 13:23:34 INF [RTMP] listener opened on :1935
2022/07/31 13:23:34 INF [HLS] listener opened on :8888

将rtsp流指向它(如果要通过网络发送,则将本地主机更改为承载rtsp简单服务器的服务器)。

代码语言:javascript
运行
复制
gst-launch-1.0 -v videotestsrc ! videoconvert ! videoscale ! video/x-raw,width=640,height=480 ! x264enc speed-preset=veryfast tune=zerolatency bitrate=800 ! rtspclientsink location=rtsp://localhost:8554/mystream

检查rtsp-简单服务器控制台日志

代码语言:javascript
运行
复制
2022/07/31 13:26:02 INF [RTSP] [conn 192.168.1.130:34932] opened
2022/07/31 13:26:02 INF [RTSP] [session 247376253] created by 192.168.1.130:34932
2022/07/31 13:26:03 INF [RTSP] [session 247376253] is publishing to path 'mystream', 1 track with UDP

开放vlc-播放器->媒体->开放网络流

新闻剧本

vlc应该显示测试模式。

您将在rtsp-控制台日志中看到以下内容。

代码语言:javascript
运行
复制
2022/07/31 13:27:10 INF [RTSP] [conn 127.0.0.1:53900] opened
2022/07/31 13:27:10 INF [RTSP] [session 749381985] created by 127.0.0.1:53900
2022/07/31 13:27:10 INF [RTSP] [session 749381985] is reading from path 'mystream', 1 track with UDP
票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69098720

复制
相关文章

相似问题

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