What is buffering?
Technically, buffering is the process of pre-loading data into a reserved area of memory (the buffer).
Over time, popular usage of the term buffering has developed a negative connotation – denoting when a device cannot properly populate its buffer – resulting in reduced streaming video quality – and ultimately, the video stream “stopping”.
This is a bad viewing experience… hence people complain about “My video is buffering!”. In actuality, their video is NOT sufficiently buffering – and that is the problem.
At Hive, we focus extensively on improving end-user experience – especially regarding buffering. In fact, our Quality of Experience index is based on observed buffering.
What causes buffering?
Buffering is caused when the playback application does not have sufficient network throughput to download video fragments to populate its buffer.
In modern HTTP Adaptive Bitrate streaming, playback is performed either in the web browser (such as Google Chrome or Microsoft Edge) or in a native player application (such as in Apple iOS devices).
Hive Insights offers a number of tools to help understand the causes of buffering. These can be found in the individual viewer report.
What is the Player Buffer?
Hive Insights will show two types of buffers – the Player buffer – which is the standard buffer on the playback application (i.e. the browser or native player).
The jagged edge represents the player downloading the fragment (populating the buffer), then consuming it. Rapid drops in the player buffer represent a problem preventing the device from pre-loading the necessary video fragments.
When the player buffer reaches 0 – “buffering” occurs in the player… typically the viewer will see a spinning circle icon and the streaming video playback will stutter and then stop.
What is the Hive extended buffer?
The Hive extended buffer is an additional 30MB cache provided by the Hive Client. The Hive Streaming network leverages these caches to increase the amount of video fragments (or duration in time) of the Player Buffer (described above).
The Hive extended buffer is populated by special pre-fetch algorithms. In most cases, the Hive extended buffer doubles the amount of video fragments (or time) available to the player -- resulting in much more stable playback (due to less buffering). In most cases the Hive extended buffer adds between 10 and 40 seconds of time.
Only devices running a Hive Client will have a Hive Extended Buffer.
What if a viewer with the Hive Client has a Player Buffer (but not Extended Buffer)?
If a device running the Hive Client does not display a Hive extended buffer, the HP2P protocol may be blocked – intentionally or otherwise:
- For example, if HP2P is intentionally blocked on a particular network (for example, a VPN), those Hive Clients will not use HP2P and will not build up Hive Extended Buffers. This is by design.
- In other cases, something in the network – such as firewall – may be blocking HP2P communications between Hive Clients. If this situation occurs across an entire customer site (for an unknown reason), it should be investigated by Hive Support.
What are some other causes of buffering?
Viewers switching networks -- either wired to wireless, wireless to wired -- or simply roaming across wireless access points -- can experience more buffering. This is because the set up of the new network connection forces the playback application to re-populate the buffer. If this occurs in the middle of a streaming video event, it can cause a poor experience shortly after the network change.
The Hive Client is able to detect when the user changes networks, but not when the user is roaming across wireless access points (in which they may maintain the same private IP address).
Look on the top of the Insights viewer report to see if the Hive Client identified Multiple connections.
The Public/Private IP address of the multiple connections will be listed.
Another problem can occur if the user opens the same event in multiple browser windows or tabs. These are called Multiple player sessions. The current Hive Client distributes one video stream at a time. So subsequent streams will cause significant additional network traffic. If a viewer is already on a weak network link, multiple player sessions can further increase the likelihood of buffering.
New sessions are shown in the Buffering Severity graph. Viewers should be instructed to avoid running multiple browser tabs (or windows) during a live event.
What do “blank spots” in the Insights graphs indicate?
Sometimes, you will see “blank spots” in some of the individual viewer graphs, including - but not limited to - the Buffer graph:
These are stretches of time in which the Hive Client did not communicate with the Hive back-end services.
This could be intentional – for example if the viewer paused playback in the player application. Or it could be due to an interruption in the network that blocked the Hive Client from communicating with the Hive back-end services.
If the underlying player framework reports pause events to the Hive Client, you can verify that the viewer paused the player by reviewing the Player events table in the lower-left of the individual viewer report.
If the viewer did not intentionally pause playback, the problem represents a network interruption that blocked the Hive Client from communicating with the Hive back-end services.
You should check to see if the viewer was changing network connections during the event (see above) or if there may have been another possibly unrelated event on the network at the same time that may have used available resources (such as an automated software patch download or update).