【问题标题】:Receive Gstreamer stream on remote server, and save to disk在远程服务器上接收 Gstreamer 流,并保存到磁盘
【发布时间】:2018-05-15 01:42:28
【问题描述】:

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

对客户端网络一无所知,因此可能会阻止 UDP。我认为 RTSP 是要走的路吗?

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

【问题讨论】:

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

标签: c++ video-streaming gstreamer


【解决方案1】:

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

在客户端,您可以使用以下管道将流保存到文件中。这里我使用的是 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

【讨论】:

    猜你喜欢
    • 2013-04-29
    • 1970-01-01
    • 2011-03-26
    • 1970-01-01
    • 1970-01-01
    • 2013-12-26
    • 1970-01-01
    • 2018-11-05
    • 1970-01-01
    相关资源
    最近更新 更多