【问题标题】:Gstreamer, rtspsrc and payload typeGstreamer、rtspsrc 和有效负载类型
【发布时间】:2015-03-25 08:04:27
【问题描述】:

我在从特定相机检索 rtsp 流时遇到困难,因为相机提供的 rtp 有效负载类型是 35(未分配),并且 rtph264depay 插件接受的有效负载类型在范围 [ 96-127]。结果是 gstreamer 显示如下错误:

<udpsrc0> error: Internal data flow error.
<udpsrc0> error: streaming task paused, reason not-linked (-1)

我测试过的其他相机都可以正常工作,因为它们定义了良好的有效载荷类型。

FFmpeg、MPlayer 和其他工具播放流,尽管它们可能会显示未知类型的警告,例如在 Mplayer 中:

rtsp_session: unsupported RTSP server. Server type is 'unknown'

gstreamer 中是否有任何方法可以伪造有效负载类型、忽略不匹配的属性、强制插件之间的链接或以其他方式为我的问题创建解决方法?

我正在使用的管道是:

gst-launcg-0.10 rtspsrc location="..." ! rtph264depay ! capsfilter caps="video/x-h264,width=1920,height=1080,framerate=(fraction)25/1" ! h264parse ! matroskamux ! filesink location="test.mkv"

【问题讨论】:

    标签: gstreamer rtsp rtp


    【解决方案1】:

    我想通了,让它工作了。在这里发布答案,希望它可能使某人受益。有多个类似的问题,但都缺乏正确的答案。

    以下是诀窍:

    GstElement* depay = gst_element_factory_make("rtph264depay", "video_demux");
    assert(depay);
    GstPad* depay_sink = gst_element_get_static_pad(depay, "sink");
    GstCaps* depay_sink_caps = gst_caps_new_simple("application/x-rtp",
            "media", G_TYPE_STRING, "video",
            "encoding-name", G_TYPE_STRING, "H264",
            NULL);
    gst_pad_use_fixed_caps(depay_sink);
    gst_pad_set_caps(depay_sink, depay_sink_caps);
    gst_object_unref(depay_sink);
    

    它覆盖了 rtph264depay 插件的 sink pad caps 以减少限制,现在它接受任何有效负载类型(和任何时钟速率),只要它是 rtp 和具有 H.264 编码。

    我认为 gst-launch 不可能做到这一点。

    【讨论】:

    • 不错的技巧。您可能需要为 Gstreamer 提交错误报告,以防我很快与该相机联系.. :)
    【解决方案2】:

    rtspsrc 模块中有一个select-stream 信号http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-plugins/html/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-select-stream 记录在这里

    这是一个回调,您检查流,如果您返回true,gstreamer 将SETUPPLAY 流,如果您返回false,它将忽略它,这应该让您忽略不支持的流,在我的情况下,我在使用 ONVIF 元数据流时遇到问题,它总是尝试播放它并且没有解析器,我真的希望 gstreamer 会忽略无法播放的流并使用它所拥有的或在至少一个标志来切换该行为。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-10
      • 2023-01-21
      • 2018-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多