Bilibili's Intelligent Adaptive Bitrate Algorithm: From Theory to Practice
Bilibili enhanced mobile video streaming by replacing standard ABR methods with an intelligent adaptive bitrate system that uses a real‑time QoE model, refined network‑speed preprocessing, long‑term feature analysis, decision‑tree‑based neural models, and personalized user modes to balance resolution, buffering, and data usage.
This article introduces Bilibili's implementation of Adaptive Bitrate (ABR) algorithms for video streaming on mobile devices. The content covers traditional ABR algorithms including THROUGHPUT, MPC, BOLA, and Pensieve, analyzing their characteristics and performance differences.
Background and Challenges: With network infrastructure improvements, users expect higher resolution video content (1080P, 4K, 8K). However, unstable network speeds can cause buffering. ABR algorithms adaptively select resolution to balance video quality and playback smoothness, maximizing QoE (Quality of Experience).
Root Cause Analysis: After deploying traditional algorithms, Bilibili found users frequently switched out of ABR mode due to: 1) Low resolution when network was good; 2) High resolution during network degradation causing buffering; 3) Users preferring manual low-resolution selection for data saving.
Bilibili's Solutions:
1. Real-time QoE Model: Based on subjective user rating experiments, Bilibili developed a real-time QoE model with memory effects. The model considers startup time, resolution, buffering events, and resolution switches to calculate user experience in real-time.
2. Network Speed Preprocessing: Addressed two issues - underestimated speed when application layer data accumulation causes near-zero fetch time, and overestimated speed when CDN timeouts add waiting time.
3. Intelligent Resolution Framework: Includes network long-term features (extracting speed percentiles and volatility from 3-minute data), startup resolution algorithm, and playback resolution decision center.
4. Model Deployment: Converted neural network models to decision trees using m2cgen, generating C++ code for client deployment with less than 1% QoE loss.
5. User Preferences: Categorized users into HD (quality priority), Auto (smoothness first), and Data Saver modes for customized experiences.
Bilibili Tech
Provides introductions and tutorials on Bilibili-related technologies.
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.