~/talk

How we boosted ExoPlayer performance by 30%

Talkat droidcon New York 2024 · 2024-09-19..09-20· [android, web-performance]
links:none on file
slides:none on file

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

  1. 0:00Video performance at Reddit
  2. 1:04Video playback challenges
  3. 3:15Performance metrics and goals
  4. 4:20Adaptive bitrate in ExoPlayer
  5. 9:43Migrating to MP4 playback
  6. 11:52HTTP protocol for video delivery
  7. 13:59ExoPlayer load control tuning
  8. 17:13Prefetching and pre-warming
  9. 23:13Pre-warming ExoPlayer instances
  10. 25:44Player pool for reuse
  11. 29:42Pre-initializing players
  12. 31:07View pool for inflation
  13. 34:45SurfaceView vs TextureView
  14. 37:41Performance improvements and lessons
  15. 38:26Key takeaways and next steps
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.