finds.dev← search

// the find

bilibili/ijkplayer

★ 33,205 · C · GPL-2.0 · updated Aug 2024

Android/iOS video player based on FFmpeg n3.4, with MediaCodec, VideoToolbox support.

ijkplayer is Bilibili's FFmpeg-based video player for Android and iOS, wrapping ffplay with platform-native hardware decoding (MediaCodec on Android, VideoToolbox on iOS). It's for mobile teams that need a player handling formats and streams beyond what ExoPlayer or AVPlayer support out of the box.

Battle-tested at Bilibili's scale across a huge range of devices and stream types, which is not something you get from a toy player. The module-lite/module-default build system lets you trade binary size against codec coverage, which matters a lot when FFmpeg's full codec set can add tens of MB to an APK. Supporting both a native (NativeWindow/OpenGL) and alternative backend (MediaPlayer/AVPlayer) per platform gives a real fallback path for problem devices.

No commits or releases since mid-2024 and the README still documents NDK r10e, Gradle 2.14.1, and JCenter, which shut down years ago — you cannot follow the stated build instructions as written. The license situation is a real liability: LGPL core plus GPL example code plus an 'unknown license' iOS demo dependency, with the README itself telling you to consult a lawyer before commercial use. Android platform floor is API 9 and iOS floor is 7.0, so the whole codebase carries dead-weight compatibility paths for OS versions no device runs anymore, and there's no native subtitle rendering or avfilter support by design.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →