Player/Compare Dimensions | library size | number of years | Heat (git star) | number of issues | development organization | Adapted version |
---|---|---|---|---|---|---|
ijkplayer | lite(4M),all(8.2M) | 6 years | 23647+ | 2226+ | biliable | android2.3 or higher |
Exoplayer | lite(1.7M),all(2M) | 5 years | 13273+ | 337+ | android4.1 above | |
GSYVideoPlayer | lite(5.7M), all(10.2M) | 3 years | 10447+ | 18+ | personal | android4.1 above |
JiaoZiVideoPlayer | lite(4M),all(8.2M) | 4 years | 9215+ | 162+ | team | android4.1 above |
Player/Compare Dimensions | advantage | shortcoming |
---|---|---|
ijkplayer | Supports almost all media formats, can customize the compilation library and supports multiple architectures, easy access, supports barrage, HTTPS, and supports side-by-side broadcasting | Compilation is troublesome, the library is large, and there are many pitfalls found on the Internet. On the large screen, the video of 720P and below is blurry and the jaggedness is serious. There is no solution for the time being. |
Exoplayer | Support HTTPS, side broadcast; support DASH (adaptive streaming), SmoothStream, HLS; support customization and expansion; power consumption is almost the same as that of native Mediaplayer; seamlessly merge, connect and loop media | The access is more complicated; it is not suitable for scenarios where only audio is played; it is not thread-safe and can only be operated on the main thread |
GSYVideoPlayer | The repackaging of ijkplayer and Exoplayer has the advantages and disadvantages of the above players, and you can choose different engines | |
JiaoZiVideoPlayer | The packaging of ijkplayer has the same advantages and disadvantages | |
media player | Google comes with it, highly encapsulated, and easy to use | Only supports a small number of formats, poor scalability |
The most popular open source players on the market are ijkplayer and Exoplayer, and most of the others are based on them for secondary packaging.
Player/Compare Dimensions | Video Supported Formats | Supported Network Protocols |
---|---|---|
ijkplayer | Almost all media formats are supported, see for details: https://ffmpeg.org/general.html | sctp,concat,ftp,lcecast,rtmp,rtp,crypto,HTTP/HTTPS |
Exoplayer | m3u8,mp4,3gp,mkv,webm,Matroska,Ogg,WAV,MPEG-TS,MPEG-PS,FLV,AAC,Flac,AMR | RTMP, RTSP, HTTP/HTTPS (the protocol does not seem to be mentioned in the official document) |
media player | mp4,3gp,mkv,webm | RTSP (RTP, SDP), HTTP/HTTPS sequential stream, real-time stream (Android3.1 and above) |
Comparison of power consumption between Google's Exoplayer and the system's Mediaplayer:
2019/9/8 update:
1. Exoplayer occupies more memory than MediaPlayer, and there is a jagged phenomenon when playing some 1080P videos on the TV;
2. Exoplayer is on github Most of the issues are closed, and Google requires that the issue must follow their template, which is a bit of a pitfall.
3. exoplayer+textureView on some low-end devices and boxes, the screen will be inexplicably black suddenly, the process is still running, and there is sound, but the screen is all black.
Google official documentation:
https://developer.android.google.cn/guide/topics/media/media-formats.html
ijkplayer pit:
https://www.jianshu.com/p/220b00d00deb
https://blog.csdn.net/shareus/article/details/78585260
https://www.jianshu.com/p/220b00d00deb
ExoPlayer:
https://blog.csdn.net/qq_15602635/article/details/83271349
Official document: https://exoplayer.dev/supported-formats.html