webrtcbin video fails when MTU too low
gst 1.20.3
We just resolved got to the bottom of a problem whereby the video stream would never be established, or never transfer any frames at least when everything (data and audio channels) appeared to function ok. It turned out to be caused by the MTU of one of our VPNs over which the traffic was flowing being too low. The network where this problem arose had an MTU size of just 1403.
When the video stream should have been working gst was repeatedly logging msgs as follows (GST_DEBUG=4):
0:00:11.381818323 797 0x7f8a08002000 INFO GST_ELEMENT_PADS gstelement.c:1016:gst_element_get_static_pad: found pad rtpbin:send_rtcp_src_0
0:00:11.435831254 797 0x7f8a08085c00 INFO gstrtpfunnel gstrtpfunnel.c:510:gst_rtp_funnel_src_event:<rtpfunnel0:src> Sending custom-upstream event: 0x7f89e4006340, time 99:99:99.999999999, seq-num 616, GstForceKeyUnit, ssrc=(uint)94573595, all-headers=(boolean)false; to <rtpfunnel0:sink_1>
0:00:11.435851033 797 0x7f8a08085c00 INFO h264parse gsth264parse.c:3738:gst_h264_parse_src_event:<h264parse0> received upstream force-key-unit event, seqnum 616 running_time 99:99:99.999999999 all_headers 0 count 0
0:00:11.447129010 797 0x7f8a1c0020c0 INFO x264enc gstx264enc.c:2539:gst_x264_enc_encode_frame:<x264enc0> Forcing key frame
0:00:11.448016669 797 0x7f8a1c002060 INFO h264parse gsth264parse.c:3664:gst_h264_parse_event:<h264parse0> received downstream force key unit event, seqnum 617 running_time 0:00:00.166666666 all_headers 0 count 0
0:00:11.448052839 797 0x7f8a1c002060 INFO baseparse gstbaseparse.c:4088:gst_base_parse_set_latency:<h264parse0> min/max latency 0:00:00.000000000, 0:00:00.000000000
0:00:11.448075375 797 0x7f8a1c002060 INFO h264parse gsth264parse.c:2748:check_pending_key_unit_event: now 0:00:00.166666666 wanted 0:00:00.166666666
0:00:11.448081315 797 0x7f8a1c002060 INFO h264parse gsth264parse.c:2793:gst_h264_parse_prepare_key_unit:<h264parse0> pushing downstream force-key-unit event 617 0:00:00.166666666 count 0
0:00:11.448088904 797 0x7f8a1c002060 INFO h264parse gsth264parse.c:2813:gst_h264_parse_prepare_key_unit:<h264parse0> preparing key unit, have sps 1 have pps 1
0:00:11.840538905 797 0x7f8a08085c00 INFO gstrtpfunnel gstrtpfunnel.c:510:gst_rtp_funnel_src_event:<rtpfunnel0:src> Sending custom-upstream event: 0x7f89e4006840, time 99:99:99.999999999, seq-num 621, GstForceKeyUnit, ssrc=(uint)94573595, all-headers=(boolean)false; to <rtpfunnel0:sink_1>
0:00:11.840597021 797 0x7f8a08085c00 INFO h264parse gsth264parse.c:3738:gst_h264_parse_src_event:<h264parse0> received upstream force-key-unit event, seqnum 621 running_time 99:99:99.999999999 all_headers 0 count 0
0:00:11.849826188 797 0x7f8a1c0020c0 INFO x264enc gstx264enc.c:2539:gst_x264_enc_encode_frame:<x264enc0> Forcing key frame
0:00:11.852715761 797 0x7f8a1c002060 INFO h264parse gsth264parse.c:3664:gst_h264_parse_event:<h264parse0> received downstream force key unit event, seqnum 622 running_time 0:00:00.266666666 all_headers 0 count 0
0:00:11.852839639 797 0x7f8a1c002060 INFO baseparse gstbaseparse.c:4088:gst_base_parse_set_latency:<h264parse0> min/max latency 0:00:00.000000000, 0:00:00.000000000
0:00:11.852901699 797 0x7f8a1c002060 INFO h264parse gsth264parse.c:2748:check_pending_key_unit_event: now 0:00:00.266666666 wanted 0:00:00.266666666
0:00:11.852918394 797 0x7f8a1c002060 INFO h264parse gsth264parse.c:2793:gst_h264_parse_prepare_key_unit:<h264parse0> pushing downstream force-key-unit event 622 0:00:00.266666666 count 0
0:00:11.852938911 797 0x7f8a1c002060 INFO h264parse gsth264parse.c:2813:gst_h264_parse_prepare_key_unit:<h264parse0> preparing key unit, have sps 1 have pps 1
0:00:12.243366082 797 0x7f8a08085c00 INFO gstrtpfunnel gstrtpfunnel.c:510:gst_rtp_funnel_src_event:<rtpfunnel0:src> Sending custom-upstream event: 0x7f89e40068b0, time 99:99:99.999999999, seq-num 628, GstForceKeyUnit, ssrc=(uint)94573595, all-headers=(boolean)false; to <rtpfunnel0:sink_1>
0:00:12.243383407 797 0x7f8a08085c00 INFO h264parse gsth264parse.c:3738:gst_h264_parse_src_event:<h264parse0> received upstream force-key-unit event, seqnum 628 running_time 99:99:99.999999999 all_headers 0 count 0
0:00:12.247009282 797 0x7f8a1c0020c0 INFO x264enc gstx264enc.c:2539:gst_x264_enc_encode_frame:<x264enc0> Forcing key frame
0:00:12.247914017 797 0x7f8a1c002060 INFO h264parse gsth264parse.c:3664:gst_h264_parse_event:<h264parse0> received downstream force key unit event, seqnum 629 running_time 0:00:00.366666666 all_headers 0 count 0
0:00:12.247945606 797 0x7f8a1c002060 INFO baseparse gstbaseparse.c:4088:gst_base_parse_set_latency:<h264parse0> min/max latency 0:00:00.000000000, 0:00:00.000000000
0:00:12.247970664 797 0x7f8a1c002060 INFO h264parse gsth264parse.c:2748:check_pending_key_unit_event: now 0:00:00.366666666 wanted 0:00:00.366666666
0:00:12.247976893 797 0x7f8a1c002060 INFO h264parse gsth264parse.c:2793:gst_h264_parse_prepare_key_unit:<h264parse0> pushing downstream force-key-unit event 629 0:00:00.366666666 count 0
0:00:12.247983377 797 0x7f8a1c002060 INFO h264parse gsth264parse.c:2813:gst_h264_parse_prepare_key_unit:<h264parse0> preparing key unit, have sps 1 have pps 1
0:00:12.645309095 797 0x7f8a08085c00 INFO gstrtpfunnel gstrtpfunnel.c:510:gst_rtp_funnel_src_event:<rtpfunnel0:src> Sending custom-upstream event: 0x7f89e4006920, time 99:99:99.999999999, seq-num 637, GstForceKeyUnit, ssrc=(uint)94573595, all-headers=(boolean)false; to <rtpfunnel0:sink_1>
0:00:12.645328962 797 0x7f8a08085c00 INFO h264parse gsth264parse.c:3738:gst_h264_parse_src_event:<h264parse0> received upstream force-key-unit event, seqnum 637 running_time 99:99:99.999999999 all_headers 0 count 0
0:00:12.647015554 797 0x7f8a1c0020c0 INFO x264enc gstx264enc.c:2539:gst_x264_enc_encode_frame:<x264enc0> Forcing key frame
0:00:12.647934388 797 0x7f8a1c002060 INFO h264parse gsth264parse.c:3664:gst_h264_parse_event:<h264parse0> received downstream force key unit event, seqnum 638 running_time 0:00:00.466666666 all_headers 0 count 0
0:00:12.647966549 797 0x7f8a1c002060 INFO baseparse gstbaseparse.c:4088:gst_base_parse_set_latency:<h264parse0> min/max latency 0:00:00.000000000, 0:00:00.000000000
0:00:12.647983782 797 0x7f8a1c002060 INFO h264parse gsth264parse.c:2748:check_pending_key_unit_event: now 0:00:00.466666666 wanted 0:00:00.466666666
0:00:12.647989867 797 0x7f8a1c002060 INFO h264parse gsth264parse.c:2793:gst_h264_parse_prepare_key_unit:<h264parse0> pushing downstream force-key-unit event 638 0:00:00.466666666 count 0
0:00:12.647996782 797 0x7f8a1c002060 INFO h264parse gsth264parse.c:2813:gst_h264_parse_prepare_key_unit:<h264parse0> preparing key unit, have sps 1 have pps 1
0:00:13.046618437 797 0x7f8a08085c00 INFO gstrtpfunnel gstrtpfunnel.c:510:gst_rtp_funnel_src_event:<rtpfunnel0:src> Sending custom-upstream event: 0x7f89e4006990, time 99:99:99.999999999, seq-num 646, GstForceKeyUnit, ssrc=(uint)94573595, all-headers=(boolean)false; to <rtpfunnel0:sink_1>
0:00:13.046637594 797 0x7f8a08085c00 INFO h264parse gsth264parse.c:3738:gst_h264_parse_src_event:<h264parse0> received upstream force-key-unit event, seqnum 646 running_time 99:99:99.999999999 all_headers 0 count 0
0:00:13.047121193 797 0x7f8a1c0020c0 INFO x264enc gstx264enc.c:2539:gst_x264_enc_encode_frame:<x264enc0> Forcing key frame
0:00:13.048011072 797 0x7f8a1c002060 INFO h264parse gsth264parse.c:3664:gst_h264_parse_event:<h264parse0> received downstream force key unit event, seqnum 647 running_time 0:00:00.566666666 all_headers 0 count 0
0:00:13.048055961 797 0x7f8a1c002060 INFO baseparse gstbaseparse.c:4088:gst_base_parse_set_latency:<h264parse0> min/max latency 0:00:00.000000000, 0:00:00.000000000
0:00:13.048083709 797 0x7f8a1c002060 INFO h264parse gsth264parse.c:2748:check_pending_key_unit_event: now 0:00:00.566666666 wanted 0:00:00.566666666
0:00:13.048091228 797 0x7f8a1c002060 INFO h264parse gsth264parse.c:2793:gst_h264_parse_prepare_key_unit:<h264parse0> pushing downstream force-key-unit event 647 0:00:00.566666666 count 0
0:00:13.048097650 797 0x7f8a1c002060 INFO h264parse gsth264parse.c:2813:gst_h264_parse_prepare_key_unit:<h264parse0> preparing key unit, have sps 1 have pps 1