C++ 在远程服务器上接收Gstreamer流,并保存到磁盘

C++ 在远程服务器上接收Gstreamer流,并保存到磁盘,c++,video-streaming,gstreamer,C++,Video Streaming,Gstreamer,我有使用Gstreamer在本地编码和保存视频的经验,但我很难弄清楚如何让客户端计算机将视频编码和流式传输到远程服务器,然后远程服务器将视频保存到云中 对客户端的网络一无所知,所以UDP可能会被阻止。我想RTSP是一种方式 我知道gst rtsp服务器并遇到过,但如何获取从客户端发送的已编码流数据,以便将其保存到磁盘?这是一个好方法吗?您可以使用gst rtsp server从服务器端发送rtsp流。您可以将此代码用于服务器 在客户端,您可以使用下面的管道将流保存到文件中。这里我使用的是mp4m

我有使用Gstreamer在本地编码和保存视频的经验,但我很难弄清楚如何让客户端计算机将视频编码和流式传输到远程服务器,然后远程服务器将视频保存到云中

对客户端的网络一无所知,所以UDP可能会被阻止。我想RTSP是一种方式


我知道gst rtsp服务器并遇到过,但如何获取从客户端发送的已编码流数据,以便将其保存到磁盘?这是一个好方法吗?

您可以使用
gst rtsp server
从服务器端发送rtsp流。您可以将此代码用于服务器

在客户端,您可以使用下面的管道将流保存到文件中。这里我使用的是mp4mux,但是你可以使用任何你想要的muxer

gst-launch-1.0 rtspsrc location=rtsp_url drop-on-latency=true use-pipeline-clock=true do-retransmission=false latency=0 ! rtph264depay ! h264parse ! mp4mux ! filesink location=media.mp4

RTSP是建立UDP连接的协议(通常)。但是,如果您不需要遵循标准协议,GStreamer会为此类用例提供自己的tcp客户端/服务器元素。您可以通过
RTSP客户端接收器协议=tcp位置,通过用于RTSP(交错)的tcp连接发送流数据(RTP)=rtsp://...
rtsp客户端接收器位置=rtspt://...
(注意额外的“t”)。