我有一个外部系统,它通过套接字一一发送单独的 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# 项目中并保持进程中的内容。
感谢任何帮助,提前致谢!
RidgeRun 有一个 GStreamer 插件,它能够将数据作为 RTSP 流发送,该插件底层使用 RTSP 服务器。如果您想了解有关该插件的更多信息,可以查看此链接: https://developer.ridgerun.com/wiki/index.php/GstRtspSink
您可以在这里找到基本示例: https://developer.ridgerun.com/wiki/index.php/GstRtspSink_-_Simple_Examples