With the rise of OTT streaming services like Netflix, Amazon Prime, and Hulu, we can now watch our favorite movies and TV shows anytime, anywhere. However, one of the most frustrating problems video streamers face in OTT is startup delay or latency. It ruins the video streaming experience and often leads to drop-offs and revenue loss.
Video Startup Time or Startup Delay or Join Time is defined as the time taken for the first frame of video to be displayed (or for the video to be displayed) after a user clicks the “play” button on the UI due to auto-start or auto-play.
For UGC content (Facebook Reels or YouTube Shorts), there is an expectation that the video should start immediately when the user scrolls to the next content. Any delay in showing the next video will frustrate the user leading to poor reviews and drop-offs.
We show that viewers start to abandon a video if it takes more than 2 seconds to start up, with each incremental delay of 1 second resulting in a 5.8% increase in the abandonment rate. Further, we show that a moderate amount of interruptions can decrease the average play time of a viewer by a significant amount. ……. Finally, we show that a viewer who experienced failure is 2.32% less likely to revisit the same site within a week than a similar viewer who did not experience a failure.Video stream quality impacts viewer behavior: inferring causality using quasi-experimental designs, S. Shunmuga Krishnan , Ramesh K. Sitaraman, IMC ’12: Proceedings of the 2012 Internet Measurement Conference, November 2012, Pages 211–224.
This, and practical experience goes to show how important it is to reduce the video startup time to deliver a great streaming experience.
In this article, we will explore what the “video startup time” is, how it is measured, how it affects the video streaming experience, and suggest several ideas to reduce it.
Table of Contents
What Causes a high video startup time?
We have already defined video startup time as the time taken for the video to start playing (or the first frame of the video to be displayed) after the user clicks the “play” button on the UI. It is typically measured in seconds, where a high value is terrible, and a low value is good.
Let’s understand what happens when you hit “Play” on a video player:-
- the player sends a request to the video backend for the video’s URL (typically, the player is looking for an HLS playlist or a DASH manifest)
- the backend might check for playback authorization based on the user’s subscription plan, device, geography, etc.
- After the checks are complete, the video backend responds with the URL.
- The player parses the URL and requests the CDN or origin server for the first video segment.
- Upon receiving the video segment, the player decodes the video and displays the video to the user.
In case the service uses DRM, the video player needs to ask the DRM license server for the license to decrypt the video.
The startup delay will increase if the above subsystems stop functioning or experience delays.
Looking at the sequence of events that need to take place, there can be multiple causes for startup delay or latency, such as –
- corrupted video files to faulty transcoding,
- network issues,
- unavailability of video segments on the CDN,
- bugs or problems in the video backend services
- problems in the playback logic,
- delays in the DRM servers
These issues will cause problems in video playback and lead to startup delays. In the last section, we look at mitigating these problems and reducing the startup delay.
How Does Video Startup Time Affect the Video Streaming Experience?
Users expect the video to start playing immediately when they click the play button. If there is a delay, the user may become frustrated and lose interest in the content. This can lead to decreased engagement and a loss of revenue for the streaming service.
In addition, a high Video Startup Time can also affect the quality of the video. If the video is buffering or taking too long to start, the user may experience a lower-quality video. This can lead to a decrease in user satisfaction and negatively impact the streaming service’s reputation.
Various factors, including slow internet speed, buffering, and server issues, can cause this delay. High start time or join time values can be particularly frustrating for users trying to watch a live event or show that is only available for a limited time.
Ways to Reduce Video Startup Time in OTT Streaming
Use Efficient Video Codecs
Using efficient video codecs can significantly reduce video startup time in video streaming. Efficient video codecs, such as H.264 and H.265, can dramatically minimize startup delay by compressing video files and allowing them to be streamed quickly. You only need to ensure that your chosen codec is compatible with your end-users devices.
Better Bitrate Ladder for ABR Streaming
In addition to using an efficient video codec, you also need to check and understand the network conditions of your end users and tune your bitrate ladder accordingly if you are using ABR Video Streaming.
For example, if you are streaming to a rural network where the bitrate is not higher than 2 mbps, you should be careful not to transcode your videos at very high bitrates, such as 5 or 6 mbps. In such situations, the likelihood of high startup delays can be reduced if you have low bitrate renditions such as 500 kbps, 750 kbps, etc.
Improved Playback Algorithms
Another place to improve your service’s performance is to inspect the logic that drives the download of the first video segment (e.g., BOLA). If you are using ABR video streaming, the video probably has four or five renditions, and the player will pick one of the renditions after inspecting the network conditions. You can expect a long startup delay if this rendition is wrong (w.r.t the network condition).
A good rule of thumb is to start with the lowest bitrate rendition and slowly increase the quality based on the network condition. This can help you achieve low startup delays.
Using a CDN (Content Delivery Network)
If you are not using a CDN, then you should be! Apart from scalability, security, and performance, a CDN can uplift your video streaming quality to a different level by ensuring that the video loads quickly when the user presses play. A well-tuned CDN can make a difference on the video startup time. Read here to learn more about CDNs and their impact on your service.
Tracking your CDN Cache’s Performance.
You can check whether the CDN configuration is correct by inspecting your provider’s cache hit-and-miss ratios. Sometimes, a very small Time-To-Live (TTL) can result in important data being removed from the CDN, resulting in longer round-trips back to your video origin server.
If you are releasing a new movie and know that many people will watch it simultaneously when it launches, you can consider “prewarming your CDN cache.” This means a copy of the video’s HLS playlist or DASH manifest and the first few video segments are pre-emptively stored on the CDN. This is a good tactic when launching a show (or a premiere).
When the movie launches and there is a rush of people to watch it, the CDN can quickly respond with the playlist/manifest and the video segments, thus, reducing the startup delay or latency. Also, watch the number of cache hits/misses to tune your CDN better.
Instrumenting and Inspecting Video Backend Services
A video backend is a complex set of APIs and servers that keep the entire service alive. It plays a critical role in reducing the startup delay. With proper instrumentation, you can check the performance of your backend services and inspect
- if the playback URLs are being returned quickly,
- if the authentication services are fast,
- or if the DRM response is fast enough.
Every service in the critical playback path can potentially impact the Video Startup Time metric and affect the user experience.
Improving your Network Condition/Speed
Finally, as a user, you can reduce startup delays by improving the network by doing a couple of things, such as
- changing from WiFi to a fixed line,
- increasing the speed by talking to your service provider,
- or adjusting the position of the router to get better service.
A faster internet connection can help fetch the first video segment, resulting in a more negligible latency or startup delay.
High values of Video Startup Time is a significant problem for video streaming services. It can hurt the user experience, video quality, and revenue. However, by implementing the ideas discussed in this article, streaming services can reduce startup delays and improve the overall user experience.
By optimizing video encoding, using CDNs, implementing adaptive bitrate streaming, reducing the number of ads, and improving server infrastructure, streaming services can provide a better video streaming experience for their users.
Krishna Rao Vijayanagar
Krishna Rao Vijayanagar, Ph.D., is the Editor-in-Chief of OTTVerse, a news portal covering tech and business news in the OTT industry.
With extensive experience in video encoding, streaming, analytics, monetization, end-to-end streaming, and more, Krishna has held multiple leadership roles in R&D, Engineering, and Product at companies such as Harmonic Inc., MediaMelon, and Airtel Digital. Krishna has published numerous articles and research papers and speaks at industry events to share his insights and perspectives on the fundamentals and the future of OTT streaming.