Improving Video Playback with ExoPlayer
summary
ExoPlayer and Media3 are used end to end: MP4 progressive delivery cuts playback errors by about 5% and boosts views, so use MP4 for short clips; adaptive DASH/HLS remains for long content. Implement SimpleCache with LRU eviction, use DownloadManager for MP4s and DownloadHelper for adaptive tracks, and ensure the same TransferListener so prefetch counts toward the bandwidth meter. Tune LoadControl (min=max buffers, lower playbacks) and use decoder fallback to avoid ~401 errors. MP4 reduces playback errors by 5% prefetching improves first-frame but bandwidth-based prefetch failed in A/B tests
AI-written summary · about
chapters (19)
- 0:00Introduction and speaker background
- 1:12Video challenges at Reddit
- 2:36Video fundamentals frames and codecs
- 5:01Video delivery methods
- 8:57Adaptive playback with ExoPlayer
- 11:22Improving video delivery
- 12:27Prefetching videos
- 13:10Caching in ExoPlayer
- 16:58Prefetching adaptive protocols
- 18:44Bandwidth-based prefetching
- 19:49Load control in ExoPlayer
- 23:02Bandwidth meter and bit rate selection
- 25:10Initial bit rate optimization
- 27:16Experimental bandwidth meter
- 27:40Improving video resolution
- 29:49Video decoders and errors
- 31:14Surface vs Texture View
- 32:39Jetpack Compose and video UI
- 34:29Key metrics and recommendations
related talks
45mImproving Video Playback with ExoPlayer
41mHow we boosted ExoPlayer performance by 30%
22mHow to optimize media streaming with ExoPlayer
23mAdvanced ExoPlayer
42mWhat ExoPlayer Doesn't Tell You: Lessons from Reddit's Full Video Rewr…
41mPlaying Videos on Android? ExoPlayer2 at Your Service!
23mExoplayer 2 rescue VideoView
39mBuilding feature-rich media apps with ExoPlayer
