如何使rtspsrc使用RTCP?

时间:2018-10-18 22:20:24

标签: rtsp gstreamer-1.0 rtsp-client rtcp

我有一个基本的GStreamer RTSP管道:

  

gst-launch-1.0 rtspsrc延迟= 200位置= rtsp://192.168.1.1/stream1   ! rtph264depay! avdec_h264!排队!视频转换! ximagesink

尽管有了这个管道,GStreamer似乎并没有打开RTCP连接(我正在用jnettop进行检查)。

要使rtspsrc尝试建立RTCP连接,还必须执行哪些其他步骤?

===

我唯一能说的是rtspsrc将创建一个“管理器”(RtpBin),在其中可以设置rtp-profile。但这一无所获:

void new_rtp_session_manager_callback(GstElement *rtspsrc, GstElement *manager, gpointer user_data) {
     // @GST_RTSP_PROFILE_UNKNOWN: invalid profile
     // @GST_RTSP_PROFILE_AVP: the Audio/Visual profile (RFC 3551)
     // @GST_RTSP_PROFILE_SAVP: the secure Audio/Visual profile (RFC 3711)
     // @GST_RTSP_PROFILE_AVPF: the Audio/Visual profile with feedback (RFC 4585)
     // @GST_RTSP_PROFILE_SAVPF: the secure Audio/Visual profile with feedback (RFC 5124)

    g_object_set(G_OBJECT(manager),
            "rtp-profile", GST_RTP_PROFILE_AVPF,
            NULL);
}

g_signal_connect(GST_ELEMENT(rtspsrc), "new-manager", G_CALLBACK(new_rtp_session_manager_callback), (gpointer)user_data

===

附加示例图片,说明连接时管道的rtspsrc部分的外观。在下面的实例中,编码器正在从端口2064传输,而我正在端口35126上接收。因此,RTCP的预期udpsrc和udpsink元素应该在端口2065和35127上。我实际上可以在rtspsrc元素中看到它们没有连接。我只能猜测我的RTSP来源不正确,或者我需要做一些不需要的连接。

Pipeline

0 个答案:

没有答案