Video Playback Performance Optimization for NetEase News Client
The NetEase News team improved video playback by analyzing the production and playback pipelines, prioritizing reading and buffering, and applying client‑side techniques such as preloading, fine‑grained caching and adaptive buffer control, selecting ExoPlayer for Android, optimizing file layout and CDN strategies, and using data‑driven measurements, ultimately reaching a 94% instant‑play rate with minimal stutter and failure.
In 2018, short videos began capturing an increasing share of internet traffic. As a news information product, NetEase News client has been progressively adding video content to meet user demands. With the increase in video content, video experience has become increasingly important, as poor video experience could lead to user churn.
This article shares the team's experience and insights in video performance optimization over the past year, covering five main areas: how to identify optimization directions and priorities, techniques for improving performance on the client side, how to make technology choices based on specific situations, optimizations beyond the client side, and the importance of data-driven approaches.
Process Analysis: The video production flow includes digitization, encoding, packaging, and protocols. The playback flow includes reading, buffering, protocol parsing, depackaging, decoding, and rendering. Understanding these processes helps identify optimization priorities.
Target Analysis: Performance is measured using three metrics: instant play rate (秒开率), stuttering rate (卡顿率), and failure rate (失败率). The analysis shows that the reading and buffering stages are the most critical for optimization.
Technical Implementation:
1. Preloading: Preloading can bring nearly 10% absolute improvement in instant play rate. Key considerations include controlling preloading size (must be greater than the startup buffer), handling input stream switching, implementing local proxies, improving preloading hit rate, and reducing side effects.
2. Caching: Implementing cache slicing to achieve finer eviction granularity and establishing multi-level cache models (memory, disk levels) to provide faster IO speeds for the most important data.
3. Buffer Control: Optimizing startup buffer quantities, implementing buffer upper/lower limits, and creating adaptive buffer models that adjust based on network conditions.
Technology Selection: On Android, ExoPlayer was chosen for its stability, extensibility, and good support for preloading, caching, and buffer models. On iOS, the system player was retained due to platform advantages and sufficient feature support.
Other Optimizations: Avoiding MP4 secondary requests by ensuring moov is at the beginning, optimizing slice files for HLS/DASH, coordinating with CDN for pre-fetching strategies, and implementing multi-CDN scheduling.
Data-Driven Approach: Data collection is fundamental to optimization. It helps measure results, identify problems, and guide future directions. After optimization, NetEase News client achieved 94% instant play rate, 1.4% stuttering rate, and 0.14% failure rate.
NetEase Media Technology Team
NetEase Media Technology Team
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.