How We Optimized a Smart TV App for Performance & Reduced Buffering by 60%
About Client
The NineHertz partnered with a mid-sized OTT streaming company that connects to subscribers across South and Southeast Asia. The company has its smart TV app that runs on Samsung Tizen, LG webOS, and Android TV with more than 40,000 devices. The platform offers a vast variety of content, including regional content, original series, and live sports, with peak viewership exceeding 80,000 sessions.
As the audience of the platform increased, the client required a more stable and advanced infrastructure, as the existing one was designed for a small audience. The current OTT app caused frequent buffering, occasional crashes, and high-traffic events.
Key Challenges
Even after two rounds of internal patching, the platform performance had no significant improvement. An unoptimized video pipeline was the first challenge, where network conditions varied with no respective adjustments to the app. Viewers with slower internet connections had to face buffering. At the same time, most of the devices had resource-constrained challenges, which often led to crashes and a sluggish user interface.
On entry-level devices, the cold start used to take more than 9 seconds, which caused a lot of users to abandon the app before even reaching the home screen. The high traffic periods during the live sports event kickoffs trigger simultaneous origin pulls from thousands of devices, which also causes stream failure.
Our Solutions
The NineHertz deployed a dedicated team of engineers to run a 14-week optimization engagement, leading to significant performance improvement.
Adaptive Bitrate Implementation with Custom Logic
Our team replaced the fixed bitrate delivery model with a custom ABR implementation built on HLS and DASH protocols. Thus, players can now downgrade the quality rather than buffering during slow internet.
Memory Management Overhaul
The NineHertz deployed a lifecycle-aware asset management system that ties the resource loading and unloading directly to screen transitions. Thus, the crash rate on low-rotated memory devices dropped significantly.
Parallel Initialization for Faster Launch
We reorganized the startup sequence of the app, which now requires a minimum amount of data to be fetched before rendering the first frame. This change alone reduced the cold start time by more than 65%.
CDN Edge Caching
Our team configured the edge caching rules for high-demand content segments, while we also implemented a pre-fetch logic for the scheduled live events. Therefore, VOD segments are now cached at regional edge nodes 30 minutes before peak traffic, reducing the origin load by approximately 70%.
Impact That Drives Results
The results could be witnessed within 60 days of the post-deployment monitoring period through the existing analytics stack of the client.
60%
Reduced Buffering
The average buffering time of the app dropped from 14 hours to less than 6 hours across all the device segments and operating systems.
3x
Faster App Launch
The cold start time, which was 9.2 seconds, came under 3 seconds for the entry-level smart television.
42%
Drop in Crash Rate
There were more than 380 crashes reported weekly, which dropped to 220 across the active user base.
35%
Improved Stream Start Time
Time to first frame now no longer takes 7+ seconds, but the first screen is displayed within 4 seconds, even for HD and 4K content.