首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将RTSP有效负载与gst-rtsp-服务器分离

将RTSP有效负载与gst-rtsp-服务器分离
EN

Stack Overflow用户
提问于 2019-03-15 00:07:03
回答 1查看 2.1K关注 0票数 3

我有一个RTSP视频源(h265),我可以用VLC显示。我想将流分成两部分,一个是本机分辨率(用h265编码),另一个是新的低分辨率(用h264编码)。这两个新的流也应该是RTSP流,可以用VLC查看。

由于带宽方面的考虑,我只能将单个客户端连接到主源。

到目前为止,我已经完成了gst -rstp-服务器的设置,只有一个媒体工厂运行这个gst启动字符串:

Location=.!rtph265depay!h265parse!tee name=t!排队!rtph265pay name=pay1 pt=96 t.排队!破译!视频信号!录像!视频/x-原始,帧=30/1,width=640,height=480!x264enc bitrate=500速度预置=超高速tune=zerolatency!h264parse!rtph264pay name=pay0 pt=96

我为媒体工厂设置了一个安装点,可以连接到VLC,例如。"rtsp://127.0.0.1:8550/test“。这样,我只能得到VLC中的任何一个子流是pay0。我可以看到,两个子流都是通过更改哪一个是pay0来工作的。但是我怎么能让VLC显示我的pay1呢?

否则,我如何才能获得原始视频源,然后有两个不同的媒体工厂(具有不同的gst启动字符串.)把发球台当成自己的来源?

EN

回答 1

Stack Overflow用户

发布于 2019-03-18 12:09:53

这两条溪流同时被发送给你。通常情况下,pay0 & pay1会发送视频和音频。对于您需要2个单独视频流的情况,您将需要修改代码。

您想要实现的简单示例可以通过修改gst-rtsp-server/examples/test-launch.c上的文件来完成。

代码语言:javascript
复制
  factory = gst_rtsp_media_factory_new ();
  gst_rtsp_media_factory_set_launch (factory, argv[1]);
  gst_rtsp_media_factory_set_shared (factory, TRUE);
  gst_rtsp_mount_points_add_factory (mounts, "/stream1", factory);

  gst_rtsp_media_factory_set_launch (factory, argv[2]);
  gst_rtsp_media_factory_set_shared (factory, TRUE);
  gst_rtsp_mount_points_add_factory (mounts, "/stream2", factory);

然后从./test-launch "rtspsrc location=... ! rtph265depay ! h265parse ! rtph265pay name=pay1 pt=96" "rtspsrc location=... ! rtph265depay ! h265parse ! decodebin ! videoscale ! videorate ! video/x-raw,framerate=30/1,width=640,height=480 ! x264enc bitrate=500 speed-preset=superfast tune=zerolatency ! h264parse ! rtph264pay name=pay0 pt=96"开始

然后你会有2个消费者在你的相机上,不过。如果您希望只消耗一次,那么就由您来处理流&将其作为gst_rtsp_media_factory_set_launch管道的src使用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55173780

复制
相关文章

相似问题

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