/BikPlayer

A quick-to-play, easy-to-use media player supporting both iOS & Android platform; most of mainstream mdedia formats; multiple backend media players; suitable for mobile phone and STB.

Primary LanguageCGNU General Public License v2.0GPL-2.0

BikPlayer

BikPlayer is a cross-platform media player, provide perfect performance both in Android and iOS platform, support hardware decoding using MediaCodec (Android) /VideoToolbox(iOS), help to achieve perfect performance in varieties of hardware include mobile phones and STBs.
BikPlayer support big range of media file formats, include almost all existing audio and video formats; As alternative option, BikPlayer support replaceable back-end players, include native player or Exo, or BikPlayer to adapt different application scenarios.
One big improvement in BikPlayer is quick-to-play supporting; In lab testing, BikPlayer is nearly two-times faster compared with other traditional player.
You can experience quick-to-play, media file formats support by the demo APK provided later, and check how to integrate it with your own product.

Features

  • Android
    • platform: 19~latest
    • cpu: ARMv7a, ARM64v8a, x86 (ARMv5 is not tested on real devices)
    • api: MediaPlayer-like
    • integrate other players, MediaPlayer and Exoplayer
    • video-output: NativeWindow, OpenGL ES 2.0
    • audio-output: AudioTrack, OpenSL ES
    • hw-decoder: MediaCodec
    • alternative-backend: android.media.MediaPlayer, ExoPlayer
  • iOS
    • platform: 7.0~latest
    • api: MediaPlayer.framework-like
    • video-output: OpenGL ES 2.0
    • audio-output: AudioQueue, AudioUnit
    • hw-decoder: VideoToolbox (iOS 8+)
    • alternative-backend: AVFoundation.Framework.AVPlayer, MediaPlayer.Framework.MPMoviePlayerController (obsolete since iOS 8)
  • Others
    • Optimized startup cost time for ts format (h.264&h.265 encoding)
    • Update backend Exoplayer to v2.17.1
    • Adaptive Bitrate Video Streaming

Download

Platform Build Status
Android Build Status
  • Android:
  • Gradle
# required
allprojects {
    repositories {
        maven { url 'https://www.jitpack.io' }
    }
}

dependencies {
    # required, enough for most devices.
    implementation 'com.github.valoroso-dev.BikPlayerLib:ijkplayer-java:1.4.1'
    implementation 'com.github.valoroso-dev.BikPlayerLib:ijkplayer-common:1.4.1'
    implementation 'com.github.valoroso-dev.BikPlayerLib:ijkplayer-armv7a:1.4.1'
    implementation 'com.github.valoroso-dev.BikPlayerLib:ijkplayer-arm64:1.4.1'

    # ExoPlayer as IMediaPlayer: optional, experimental
    implementation 'com.github.valoroso-dev.BikPlayerLib:ijkplayer-exo:1.4.1'
}
  • iOS
  • in coming...

How to build

Try Android Demo

android demo

Next Plan

  • Update FFmpeg to latest version
  • Support subtitle
  • Support playback speed from 1/8 ~ 2 times of normal speed
  • Support ADR
  • Sooner we will have the next release, expected in the Q1 2023

Support

  • Welcome to submit issue for discussion and we will respond ASAP, It will be very helpful to solve the problem if you can provide the scene where the problem occurs, the phenomenon, the operation method and the media file or url used in the test.

License

This project is licensed under the LGPLv2.1 or later

Features are based on or derives from projects below:

android/ijkplayer-exo is based on or derives from projects below:

android/example is based on or derives from projects below:

ios/IJKMediaDemo is based on or derives from projects below:

build scripts are based on or derives from projects below:

Why this project

check here