How we boosted ExoPlayer performance by 30%
summary
Replace adaptive DASH/HLS with MP4 for <45s and see short-video loads improve 30–40% and playback errors drop ~5%. Switch the HTTP stack to HTTP/2 (or HTTP/3 via CR engine) and reduce >1s-video failures ~7%. Tune ExoPlayer LoadControl (playback buffer to 1s, min/max buffers to ~20s, prioritize time over size) and cut 2s load events ~18%. Add prewarming + prefetching, a player pool, and use preloadMediaSource where possible to shave more milliseconds off startup.
AI-written summary · about
chapters (15)
- 0:00Video performance at Reddit
- 1:04Video playback challenges
- 3:15Performance metrics and goals
- 4:20Adaptive bitrate in ExoPlayer
- 9:43Migrating to MP4 playback
- 11:52HTTP protocol for video delivery
- 13:59ExoPlayer load control tuning
- 17:13Prefetching and pre-warming
- 23:13Pre-warming ExoPlayer instances
- 25:44Player pool for reuse
- 29:42Pre-initializing players
- 31:07View pool for inflation
- 34:45SurfaceView vs TextureView
- 37:41Performance improvements and lessons
- 38:26Key takeaways and next steps
related talks
45mImproving Video Playback with ExoPlayer
35mImproving Video Playback with ExoPlayer
42mWhat ExoPlayer Doesn't Tell You: Lessons from Reddit's Full Video Rewr…
22mHow to optimize media streaming with ExoPlayer
23mAdvanced ExoPlayer
23mExoplayer 2 rescue VideoView
26mOptimizing Video Performance for Web Developers
26mDASHing Into the Wild with VP9
