What factors could cause a massive spike / drop in bitrate? I'm seeing a graph of one of my Android application's bitrates during a video stream, and I'm not sure what to make of it:



Relevant Info:


This is a single application's bitrate over the duration of a video call
The video call starts off perfectly fine, but suddenly degrades.
This graph repeatedly shows up for different users, different devices, different locations, different networks, etc.
In this specific case, packet loss is minimal, latency is also minimal, access point strength is 5ghz.
The duration of this graph is 30 minutes, start to finish, but the drop occurs at 4-7 mins, every time.
The device supports WiFi 802.11 a/b/g/n/ac – 2.4GHz and 5GHz
Line of sight to the WiFi router does not appear to be an issue.


What types of things affect bitrate? What other information can I gather to help understand this? Does Android potentially throttle things like WiFi connectivity due to resource constraints, overheating, etc?

I have to assume it's something that my software is doing, but there's nothing obvious that I can see...

Thank you.
Bitrate is an average. As with any average, it is greatly affected by the size of the window it is averaged over. On average the temperature where I live is around 70 degrees F. But some days it’s 30 and some days it’s 120. But the average is 70. If you do daily readings you will see spikes. If you do monthly reading, you will see a sin wave, if you do yearly readings, the line will be pretty flat (not factoring in climate change). 

Individual frame sizes vary massively depending on information density, motion, scene detection, and minimum key frame intervals. It’s a function of how video compression works and completely normal. 

Research how video compression works. Specificity I/P/B frames and it will make sense. 

Also note that available bandwidth changes very rapidly. Especially on wireless networks. And many video conferencing software will adapt to keep the call working.