【问题标题】:Correct gstreamer pipeline for particular rtsp stream更正特定 rtsp 流的 gstreamer 管道
【发布时间】:2012-11-03 05:56:00
【问题描述】:

我正在尝试使用此 gst 管道将此 RTSP URL 转换为其他内容(任何内容!):

gst-launch rtspsrc location=rtsp://184.72.239.149/vod/mp4:BigBuckBunny_175k.mov ! rtpmp4vdepay ! filesink location=somebytes.bin

这会产生以下错误:

ERROR: from element /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc0: Internal data flow error.
Additional debug info:
gstbasesrc.c(2791): gst_base_src_loop (): /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc0:
streaming task paused, reason not-linked (-1)

所以我想这是关于将 rstp 源连接到 depayloader 的问题。如果我将管道更改为使用 rtpmp4gdepay 而不是 vdepay,它会工作并产生 something,但我不确定输出格式是什么。

有谁知道我应该使用什么管道从该 URL 获取视频?我假设它是 mp4/h264/aac,但也许不是。

【问题讨论】:

    标签: mp4 gstreamer rtsp


    【解决方案1】:

    先试试这个:

    gst-launch-0.10 -v playbin2 uri=rtsp://184.72.239.149/vod/mp4:BigBuckBunny_175k.mov
    

    gst-launch-1.0 -v playbin uri=rtsp://184.72.239.149/vod/mp4:BigBuckBunny_175k.mov
    

    【讨论】:

      【解决方案2】:

      Mov 文件不能直接流式传输。因此,您的 RTSP 源可能会向您发送两个基本流。 (我猜这是 darwin 或其他类似的服务器)所以您可能需要从 rtspsrc 设置两个输出,一个用于音频,一个用于视频。

      rtpmp4vpay 用于基本的 mpeg4 流。您的源文件是否具有 mpeg4 视频编解码器?如果是 h.264,则将其替换为 rtph264depay。您可以将输出传递给解码器并根据需要播放。将其输入到 decodebin。要将其转储到 h.264 中,您首先必须对其进行解析并添加 nal 标头(也许是 h264parse 解析?)

      rtpmp4gpay 最有可能被音频流接受。

      我猜你的文件是 h.264/aac,这就是为什么 rtpmp4vdepay 不能工作而 rtpmp4gdepay 可以的原因。但是,当您设置 rtpmp4gdepay 时,您并没有对视频做任何事情,所以您需要这样做。

      【讨论】:

        猜你喜欢
        • 2014-01-04
        • 2017-10-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-03
        • 2013-10-18
        • 2014-10-11
        相关资源
        最近更新 更多