Hello Folks, I am trying to track down a latency issue.
I am running an H264/Opus WebRTC stream from a "server" to a pair of "clients" on a high end Ubuntu 22.04 PC. The server is native (based on lib data channel). Both the server and clients are running on the same system for testing purposes.
One client is a web client running in the Chrome browser and I am using chrome://webrtc-internals for measurement. The other client is native, written to help me debug my WebRTC issues. The test is run on one client/server pair at a time. This test is simple, a single image being encoded and sent at 30fps and silence being sent at 20ms Opus frames.
The attached image shows a consistent 80ms jitter buffer time for Chrome. The native client is able to perform a similar operation (aggregation of MTUs for a single video frame) in 1-2ms. Note, I am assuming that this is a key component in my latency since it appears to have correlation to "totalProcessingDelay". Also RTP/NTP times coming into the native client are very tight, within 10ms.
Questions:
- Is there any way to fix this issue in Chrome? SDP, RTP extensions?
- Are there any detailed explanations on how exactly this stuff is designed to work (for Chrome)
- Can the jitter buffer be by-passed for something that has tight timing tolerances?
Any help would be greatly appreciated.