What is Google ExoPlayer ?
Google ExoPlayer is an open source project on GitHub. Its release is in 2014. It is an application level media player. This player is built on top of Android‘s low-level media APIs for playing audio and video both locally and over the Internet. It is an alternative to Android’s MediaPlayer API. The differences between ExoPlayer and Android’s MediaPlayer API are SmoothStreaming adaptive playbacks and DASH. It can also play HLS adaptive streams, as well as formats such as MP4, M4A, FMP4, WebM, MKV, MP3, Ogg, WAV, MPEG-TS, MPEG-PS, FLV and ADTS (AAC).
Google ExoPlayer has specific use cases. Google developed it for its own Android applications, such as YouTube and Google Play Movies. Today, over 10,000 applications are using ExoPlayer.
What is RTMP ?
Macromedia developed The Real-Time Messaging Protocol (RTMP) for video, audio, and data streaming over the Internet. There is a release which is an incomplete version of the specification of the protocol for public use. RTMP is a protocol that the main purpose is a high-performance transmission. The use of RTMP is to avoid latency in communication, such as delivering audio or video streams smoothly, and by splitting them into fragments, make them interleaved and multiplexed. To deliver streams smoothly and transmit as much information as possible, it splits streams into fragments. There is a negotiation dynamically between the client and server about size.
RTMP is implemented at these three stages such as Live video encoder, Live and on-demand media streaming server and Live and on-demand client. RTMP has some features such as live streaming, adaptive bitrate streaming (ABS) and maintaining a tiny buffer for saving bandwidth.
Google ExoPlayer added RTMP Extension
Google ExoPlayer v2.5 started to use RTMP extension and uses the libRtmp client for Android to provide DataSource and DataSource.Factory implementations for the RTMP protocol. DefaultDataSource will automatically use the RTMP extension which is available with the help of Ant Media.