如何制作 GStreamer 管道来读取各个帧并发布流?

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

我有一个外部系统,它通过套接字一一发送单独的 H264 编码帧。我想做的是获取这些帧并将 RTSP 流发布到我拥有的 RTSP 服务器。

获取帧后(只是分块读取 TCP 套接字),我当前的方法是这样的:

我读取帧,然后使用以下命令启动一个进程,然后将每个帧写入该进程的 STDIN。

gst-launch-1.0 -e fdsrc fd=0 ! 
                  h264parse ! 
                  avdec_h264 ! 
                  videoconvert ! 
                  videorate ! 
                  video/x-raw,framerate=25/1 ! 
                  avimux ! 
                  filesink location=gsvideo3.avi

我知道它将流写入 AVI 文件,但这是我能够获得的最接近的普通视频。而且它可能效率非常低并且充满了冗余的管道步骤。

我也对 FFMPEG 命令持开放态度,但首选 GStreamer,因为我将能够通过绑定将其嵌入到我的 C# 项目中并保持进程中的内容。

感谢任何帮助,提前致谢!

ffmpeg gstreamer h.264 rtsp gstreamer-1.0
1个回答
-1
投票

RidgeRun 有一个 GStreamer 插件,它能够将数据作为 RTSP 流发送,该插件底层使用 RTSP 服务器。如果您想了解有关该插件的更多信息,可以查看此链接: https://developer.ridgerun.com/wiki/index.php/GstRtspSink

您可以在这里找到基本示例: https://developer.ridgerun.com/wiki/index.php/GstRtspSink_-_Simple_Examples

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