当浏览器客户端离开会议时Kurento Composite被阻止

时间:2019-05-14 07:49:38

标签: webrtc codec kurento

我修改了Kurento Room Demo,使其可以作为MCU运行,在Room对象中创建了一个Composite,并将其连接到会议参与者的HubPorts。在以下情况下出现问题:

  1. 通过Android应用程序/ Android上的浏览器连接第一个用户
  2. 从Windows浏览器客户端(Firefox或Chrome,无关紧要)连接第二个用户

第二个用户离开会议时,视频流会阻塞。

在所有其他情况下,它都可以正常工作:

  1. 具有android客户端的第一个用户离开会议-流继续在浏览器中工作
  2. 如果2个或更多用户通过浏览器加入,则可以正常使用
  3. 如果有2个或更多用户从Android客户端加入-当用户离开时可以正常工作

仅当从浏览器加入呼叫的用户离开呼叫时,问题才会出现。

如果有使用Android设备的用户和来自浏览器的1个以上的用户,则当最后一个使用浏览器的用户离开会议时,将出现问题。

所有用户都在使用VP8编解码器(这是Android和Web客户端中SDP中的首选编解码器)

我注意到的一点是,当我仅以1个用户加入会议时,我始终将代码转换为有效。这正常吗?:

info kmsutils                  kmsutils.c:494 kms_utils_pad_monitor_gaps() <'':sink_video_default>  Add probe: Detect stream gaps
info agnosticbin               kmsagnosticbin.c:774 kms_agnostic_bin2_link_pad() <kmsagnosticbin2-386>  Upstream provided caps: ANY
info agnosticbin               kmsagnosticbin.c:783 kms_agnostic_bin2_link_pad() <kmsagnosticbin2-386>  Downstream wanted caps: video/x-vp8
info agnosticbin               kmsagnosticbin.c:729 kms_agnostic_bin2_find_or_create_bin_for_caps() <kmsagnosticbin2-386>  TRANSCODING ACTIVE for video
info agnosticbin               kmsagnosticbin.c:774 kms_agnostic_bin2_link_pad() <kmsagnosticbin2-386>  Upstream provided caps: video/x-vp8, profile=(string){ 0, 1, 2, 3 }
info agnosticbin               kmsagnosticbin.c:783 kms_agnostic_bin2_link_pad() <kmsagnosticbin2-386>  Downstream wanted caps: video/x-vp8
info agnosticbin               kmsagnosticbin.c:774 kms_agnostic_bin2_link_pad() <kmsagnosticbin2-386>  Upstream provided caps: video/x-vp8, profile=(string){ 0, 1, 2, 3 }
info agnosticbin               kmsagnosticbin.c:783 kms_agnostic_bin2_link_pad() <kmsagnosticbin2-386>  Downstream wanted caps: video/x-vp8
fixme basesink                  gstbasesink.c:3125 gst_base_sink_default_event() <treebin_fakesink1262>  stream-start event without group-id. Consider implementing group-id handling in the upstream elements
info basertpendpoint           kmsbasertpendpoint.c:1882 kms_base_rtp_endpoint_jitterbuffer_set_latency() <rtpjitterbuffer43>  Add probe: Set jitterbuffer latency
info basertpendpoint           kmsbasertpendpoint.c:1931 kms_base_rtp_endpoint_jitterbuffer_monitor_rtp_out() <rtpjitterbuffer43>  Add probe: Adjust jitterbuffer PTS out
info basertpendpoint           kmsbasertpendpoint.c:1976 kms_base_rtp_endpoint_jitterbuffer_monitor_rtcp_in() <rtpjitterbuffer43>  Add probe: Get jitterbuffer RTCP SR timing
info basertpendpoint           kmsbasertpendpoint.c:1867 kms_base_rtp_endpoint_jitterbuffer_set_latency_probe() <rtpjitterbuffer43>  Setting latency to: 500
info basertpendpoint           kmsbasertpendpoint.c:1870 kms_base_rtp_endpoint_jitterbuffer_set_latency_probe() <rtpjitterbuffer43>  Jitterbuffer latency set; remove probe
info kmsutils                  kmsutils.c:494 kms_utils_pad_monitor_gaps() <'':sink>  Add probe: Detect stream gaps
info kmsutils                  kmsutils.c:1480 kms_utils_depayloader_monitor_pts_out() <rtpvp8depay43>  Add probe: Adjust depayloader PTS out
info agnosticbin               kmsagnosticbin.c:899 input_bin_src_caps_probe() <kmsagnosticbin2-392>  Set input caps: video/x-vp8, framerate=(fraction)9/1, height=(int)720, width=(int)1280, profile=(string)0
info agnosticbin               kmsagnosticbin.c:774 kms_agnostic_bin2_link_pad() <kmsagnosticbin2-392>  Upstream provided caps: ANY
info agnosticbin               kmsagnosticbin.c:783 kms_agnostic_bin2_link_pad() <kmsagnosticbin2-392>  Downstream wanted caps: video/x-raw, width=(int)960, height=(int)540, pixel-aspect-ratio=(fraction)1/1
info agnosticbin               kmsagnosticbin.c:729 kms_agnostic_bin2_find_or_create_bin_for_caps() <kmsagnosticbin2-392>  TRANSCODING ACTIVE for video
fixme videodecoder              gstvideodecoder.c:1057 gst_video_decoder_drain_out() <vp8dec43>  Sub-class should implement drain()
info agnosticbin               kmsagnosticbin.c:774 kms_agnostic_bin2_link_pad() <kmsagnosticbin2-392>  Upstream provided caps: video/x-raw, format=(string)I420, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ], format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, NV16, NV61, NV24, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE, Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE, NV12_64Z32, A420_10LE, A420_10BE, A422_10LE, A422_10BE, A444_10LE, A444_10BE }
info agnosticbin               kmsagnosticbin.c:783 kms_agnostic_bin2_link_pad() <kmsagnosticbin2-392>  Downstream wanted caps: video/x-raw, width=(int)960, height=(int)540, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)[ 0/1, 2147483647/1 ], format=(string){ AYUV, BGRA, ARGB, RGBA, ABGR, Y444, Y42B, YUY2, UYVY, YVYU, I420, YV12, NV12, NV21, Y41B, RGB, BGR, xRGB, xBGR, RGBx, BGRx }
info agnosticbin               kmsagnosticbin.c:774 kms_agnostic_bin2_link_pad() <kmsagnosticbin2-392>  Upstream provided caps: video/x-raw, format=(string)I420, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ], format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, NV16, NV61, NV24, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE, Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE, NV12_64Z32, A420_10LE, A420_10BE, A422_10LE, A422_10BE, A444_10LE, A444_10BE }
info agnosticbin               kmsagnosticbin.c:783 kms_agnostic_bin2_link_pad() <kmsagnosticbin2-392>  Downstream wanted caps: video/x-raw, width=(int)480, height=(int)540, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)[ 0/1, 2147483647/1 ], format=(string){ AYUV, BGRA, ARGB, RGBA, ABGR, Y444, Y42B, YUY2, UYVY, YVYU, I420, YV12, NV12, NV21, Y41B, RGB, BGR, xRGB, xBGR, RGBx, BGRx }
warning kmsaudiomixer          kmsaudiomixer.c:771 unlinked_pad() <kmsaudiomixer26:sink_4>  Removed before connecting branch

0 个答案:

没有答案