webrtcbin: 4K h264 problems

David Ely david.ely at immersaview.com
Mon Oct 11 05:09:36 UTC 2021

We are having issues sending a 4K, H264 stream through WebRTC on Windows (3840x2160, 30hz, 8Mbs). Playback of the video stream stutters or may get stuck. Our application captures the desktop, encodes it to H264 and streams it to Chrome or another of our applications, both of which exhibit the problem. This issue only happens on Windows, CentOS7 and Ubuntu20.04 work (using the same hardware). Lower resolutions (1080P) work across all 3 operations systems. Chrome's webrtc-internals shows the packetsLost or freezeCount increase when the stutter occurs.
Points of note:

  *   Our GStreamer version is 1.19.1.
  *   This was reproduced with two PCs on a local network. The problem won't occur if the sender and receiver are on the same computer.
  *   We did some Wireshark captures on the sending PC and it showed some packets aren't making it to the NIC. It appears occasionally a NAL is being truncated.
  *   In attempt reduced the scope of the problem, I reproduced the issue in one of the gst-examples (webrtc\sendonly\webrtc-unidirectional-h264.c) by modifying the pipeline to stream from a file (I only tested this on Windows). The file is 30hz, 4K H264 video with a birate of 8 Mbs. The pipeline looks like this
     *   filesrc location=C:\tmp\test.mkv ! queue ! matroskademux ! queue ! h264parse ! video/x-h264,alignment=au,stream-format=byte-stream ! rtph264pay config-interval=1 aggregate-mode ! application/x-rtp,media=video,encoding-name=H264,encoding-payload=96 ! webrtcbin
  *   Reducing the bitrate alleviates the problem.
  *   For reference this is our application's pipeline on Windows
     *   dxgiscreencapsrc cursor=true ! video/x-raw,format=BGRA,framerate=30/1 ! videoconvert ! queue ! video/x-raw,format=I420 ! nvh264enc preset=low-latency-hp bitrate=8192 rc-mode=cbr gop-size=90 zerolatency=true ! video/x-h264,framerate=30/1,alignment=au,stream-format=byte-stream ! rtph264pay ! application/x-rtp,media=video,encoding-name=H264,payload=96 ! webrtcbin
As I was able to reproduce the issue in the modified example it points to webrtcbin as the problem.
Any help/suggestions to resolve the problem would be greatly appreciated.
David Ely
Software Architect
 +61 7 3123 7133
 david.ely at immersaview.com<mailto:david.ely at immersaview.com>
 13/67 Depot St, Banyo, QLD 4014
This electronic mail transmission is confidential and is intended only for the review of the party to whom it is addressed.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20211011/28fe9c1f/attachment.htm>

More information about the gstreamer-devel mailing list