Hysen Labs
Open-source project
bilibili/ijkplayer avatar
bilibili

ijkplayer

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

33,195 stars8,232 forksCGPL-2.0
01
DEEP OPEN-SOURCE ANALYSIS

ijkplayer: FFmpeg based playback for Android and iOS

ijkplayer is a video player for Android and iOS built on FFmpeg, with hardware decoding through MediaCodec on Android and VideoToolbox on iOS. The README lays out platform support, build tweaks, and careful license notes.

02
DEEP OPEN-SOURCE ANALYSIS

What it is

An Android and iOS video player built around FFmpeg n3.4, with hardware decoder support: MediaCodec on Android and VideoToolbox on iOS. The README opens with the author's own build environment, Mac OS X with Android Studio and Xcode, which sets the tone for a hands on project where the details matter.

03
DEEP OPEN-SOURCE ANALYSIS

Android support

On Android the player covers API levels 9 to 23 and CPUs from ARMv7a to ARM64v8a and x86. Video output goes through NativeWindow or OpenGL ES 2.0, audio through AudioTrack or OpenSL ES, and hardware decoding runs on MediaCodec from API 16. android.media.MediaPlayer and ExoPlayer work as alternative backends.

04
DEEP OPEN-SOURCE ANALYSIS

iOS support

iOS support spans version 7 through 10.2, with armv7, arm64, i386, and x86 64 builds, armv7s being called obsolete. Video renders through OpenGL ES 2.0, audio through AudioQueue or AudioUnit, and VideoToolbox handles hardware decoding from iOS 8. AVFoundation's player and the old MPMoviePlayerController sit in as alternatives.

05
DEEP OPEN-SOURCE ANALYSIS

Slimming it down

A shared configuration removes rarely used FFmpeg components to shrink the binary, using the module-lite script, and there is a workaround for some buggy online video. The not on the plan list is worth reading too: obsolete platforms and CPUs, native subtitle rendering, and avfilter support are all explicitly out, and the author notes not even having devices for some older targets.

06
DEEP OPEN-SOURCE ANALYSIS

License notes

The README is careful with licensing. ijkplayer itself sits under LGPLv2.1 or later, which it says is fine for commercial use. But it is built on projects under various licenses, LGPL, zlib, BSD style, and ISC, and the author is upfront about not knowing how those interact with a particular product. Support requests are directed to public GitHub discussion rather than email.

07
DEEP OPEN-SOURCE ANALYSIS

Editorial conclusion

The project reads as one developer's practical answer to video playback on mobile, complete with honest caveats about platform support and licensing. As a reference for FFmpeg based mobile players, the README stays useful.

08
DEEP OPEN-SOURCE ANALYSIS

Official sources

09
Community notes

Community notes