ExoPlayer is an open source, application level media player built on top of Android’s low level media APIs (Mediacodec and MediaExtractor). Google is already using it for Youtube and Movies app. It supports DASH, Smooth Streaming and HLS protocols.
2. Contents
● Media Playback in Android
● ExoPlayer Overview
● Adaptive Media Playback Protocols and Demo
● Content Protection
2
3. Terms
DASH : Dynamic Adaptive Streaming over HTTP
HLS : Http Live Streaming
DRM : Digital Rights Management
MPD : Media Presentation Description
ABR : Adaptive Bitrate Streaming
3
4. Media Playbacks in Android
● VideoView [link]
● MediaPlayer & SurfaceView [link]
● ExoPlayer [link]
4
5. It supports features not currently provided by MediaPlayer,
including DASH, SmoothStreaming and Common
Encryption.
5
ExoPlayer is an open source, application level media player
built on top of Android’s low level media APIs (Mediacodec
and MediaExtractor). Google is already using it for Youtube
and Movies app
7. Cons
● ExoPlayer’s standard audio and video components rely on
Android’s MediaCodec API, which was released in Android
4.1 Jelly Bean (API level 16). Hence they do not work on
earlier versions of Android.
7
14. Adaptive Media Playbacks or ABR
● Adaptive bitrate streaming over HTTP
● Accommodate changing network conditions
● No special firewalls, proxies, or cache is required
● Efficient and cost-effective
14
16. Adaptive Media Playbacks (Protocols)
● Dynamic Adaptive Streaming over HTTP (DASH)
○ Mpeg
● Smooth Streaming
○ Microsoft
● HTTP Live Streaming (HLS)
○ Apple
16
17. DASH
● First major trial started in 2012 London Olympics
● How it works? [ref]
HTTP Server
segment
segment
segment
segment
segment
segment
segment
segment
segment
segment
segment
segment
segment
segment
segment
segment
MPD
Dash Client
HTTP ClientHTTP/1.1
Media
Player
Control Heuristics
MPD Delivery MPD Parser
Segment
Parser
17
1
2
31. Digital Rights Management (ExoPlayer)
● DrmSessionManager
○ StreamingDrmSessionManager
○ On Android 4.3 (18) and higher
● WideVine DRM
○ DASH
31
32. Conclusions
● ExoPlayer is an application level media player which can
be easily updated and extended by developers
● It is Open Source
● Start with demo code here
32