[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-1879":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":22,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":31,"readmeContent":32,"aiSummary":33,"trendingCount":16,"starSnapshotCount":16,"syncStatus":34,"lastSyncTime":35,"discoverSource":36},1879,"ijkplayer","bilibili\u002Fijkplayer","bilibili","Android\u002FiOS video player based on FFmpeg n3.4, with MediaCodec, VideoToolbox support.","",null,"C",33158,8236,1163,2837,0,6,20,3,45,"GNU General Public License v2.0",false,"master",true,[26,27,5,28,29,30],"android","ffmpeg","ios","player","video","2026-06-12 02:00:34","# ijkplayer\n\n Platform | Build Status\n -------- | ------------\n Android | [![Build Status](https:\u002F\u002Ftravis-ci.org\u002FBilibili\u002Fci-ijk-ffmpeg-android.svg?branch=master)](https:\u002F\u002Ftravis-ci.org\u002FBilibili\u002Fci-ijk-ffmpeg-android)\n iOS | [![Build Status](https:\u002F\u002Ftravis-ci.org\u002FBilibili\u002Fci-ijk-ffmpeg-ios.svg?branch=master)](https:\u002F\u002Ftravis-ci.org\u002FBilibili\u002Fci-ijk-ffmpeg-ios)\n\nVideo player based on [ffplay](http:\u002F\u002Fffmpeg.org)\n\n### Download\n\n- Android:\n - Gradle\n```\n# required\nallprojects {\n    repositories {\n        jcenter()\n    }\n}\n\ndependencies {\n    # required, enough for most devices.\n    compile 'tv.danmaku.ijk.media:ijkplayer-java:0.8.8'\n    compile 'tv.danmaku.ijk.media:ijkplayer-armv7a:0.8.8'\n\n    # Other ABIs: optional\n    compile 'tv.danmaku.ijk.media:ijkplayer-armv5:0.8.8'\n    compile 'tv.danmaku.ijk.media:ijkplayer-arm64:0.8.8'\n    compile 'tv.danmaku.ijk.media:ijkplayer-x86:0.8.8'\n    compile 'tv.danmaku.ijk.media:ijkplayer-x86_64:0.8.8'\n\n    # ExoPlayer as IMediaPlayer: optional, experimental\n    compile 'tv.danmaku.ijk.media:ijkplayer-exo:0.8.8'\n}\n```\n- iOS\n - in coming...\n\n### My Build Environment\n- Common\n - Mac OS X 10.11.5\n- Android\n - [NDK r10e](http:\u002F\u002Fdeveloper.android.com\u002Ftools\u002Fsdk\u002Fndk\u002Findex.html)\n - Android Studio 2.1.3\n - Gradle 2.14.1\n- iOS\n - Xcode 7.3 (7D175)\n- [HomeBrew](http:\u002F\u002Fbrew.sh)\n - ruby -e \"$(curl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002FHomebrew\u002Finstall\u002Fmaster\u002Finstall)\"\n - brew install git\n\n### Latest Changes\n- [NEWS.md](NEWS.md)\n\n### Features\n- Common\n - remove rarely used ffmpeg components to reduce binary size [config\u002Fmodule-lite.sh](config\u002Fmodule-lite.sh)\n - workaround for some buggy online video.\n- Android\n - platform: API 9~23\n - cpu: ARMv7a, ARM64v8a, x86 (ARMv5 is not tested on real devices)\n - api: [MediaPlayer-like](android\u002Fijkplayer\u002Fijkplayer-java\u002Fsrc\u002Fmain\u002Fjava\u002Ftv\u002Fdanmaku\u002Fijk\u002Fmedia\u002Fplayer\u002FIMediaPlayer.java)\n - video-output: NativeWindow, OpenGL ES 2.0\n - audio-output: AudioTrack, OpenSL ES\n - hw-decoder: MediaCodec (API 16+, Android 4.1+)\n - alternative-backend: android.media.MediaPlayer, ExoPlayer\n- iOS\n - platform: iOS 7.0~10.2.x\n - cpu: armv7, arm64, i386, x86_64, (armv7s is obselete)\n - api: [MediaPlayer.framework-like](ios\u002FIJKMediaPlayer\u002FIJKMediaPlayer\u002FIJKMediaPlayback.h)\n - video-output: OpenGL ES 2.0\n - audio-output: AudioQueue, AudioUnit\n - hw-decoder: VideoToolbox (iOS 8+)\n - alternative-backend: AVFoundation.Framework.AVPlayer, MediaPlayer.Framework.MPMoviePlayerControlelr (obselete since iOS 8)\n\n### NOT-ON-PLAN\n- obsolete platforms (Android: API-8 and below; iOS: pre-6.0)\n- obsolete cpu: ARMv5, ARMv6, MIPS (I don't even have these types of devices…)\n- native subtitle render\n- avfilter support\n\n### Before Build\n```\n# install homebrew, git, yasm\nruby -e \"$(curl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002FHomebrew\u002Finstall\u002Fmaster\u002Finstall)\"\nbrew install git\nbrew install yasm\n\n# add these lines to your ~\u002F.bash_profile or ~\u002F.profile\n# export ANDROID_SDK=\u003Cyour sdk path>\n# export ANDROID_NDK=\u003Cyour ndk path>\n\n# on Cygwin (unmaintained)\n# install git, make, yasm\n```\n\n- If you prefer more codec\u002Fformat\n```\ncd config\nrm module.sh\nln -s module-default.sh module.sh\ncd android\u002Fcontrib\n# cd ios\nsh compile-ffmpeg.sh clean\n```\n\n- If you prefer less codec\u002Fformat for smaller binary size (include hevc function)\n```\ncd config\nrm module.sh\nln -s module-lite-hevc.sh module.sh\ncd android\u002Fcontrib\n# cd ios\nsh compile-ffmpeg.sh clean\n```\n\n- If you prefer less codec\u002Fformat for smaller binary size (by default)\n```\ncd config\nrm module.sh\nln -s module-lite.sh module.sh\ncd android\u002Fcontrib\n# cd ios\nsh compile-ffmpeg.sh clean\n```\n\n- For Ubuntu\u002FDebian users.\n```\n# choose [No] to use bash\nsudo dpkg-reconfigure dash\n```\n\n- If you'd like to share your config, pull request is welcome.\n\n### Build Android\n```\ngit clone https:\u002F\u002Fgithub.com\u002FBilibili\u002Fijkplayer.git ijkplayer-android\ncd ijkplayer-android\ngit checkout -B latest k0.8.8\n\n.\u002Finit-android.sh\n\ncd android\u002Fcontrib\n.\u002Fcompile-ffmpeg.sh clean\n.\u002Fcompile-ffmpeg.sh all\n\ncd ..\n.\u002Fcompile-ijk.sh all\n\n# Android Studio:\n#     Open an existing Android Studio project\n#     Select android\u002Fijkplayer\u002F and import\n#\n#     define ext block in your root build.gradle\n#     ext {\n#       compileSdkVersion = 23       \u002F\u002F depending on your sdk version\n#       buildToolsVersion = \"23.0.0\" \u002F\u002F depending on your build tools version\n#\n#       targetSdkVersion = 23        \u002F\u002F depending on your sdk version\n#     }\n#\n# If you want to enable debugging ijkplayer(native modules) on Android Studio 2.2+: (experimental)\n#     sh android\u002Fpatch-debugging-with-lldb.sh armv7a\n#     Install Android Studio 2.2(+)\n#     Preference -> Android SDK -> SDK Tools\n#     Select (LLDB, NDK, Android SDK Build-tools,Cmake) and install\n#     Open an existing Android Studio project\n#     Select android\u002Fijkplayer\n#     Sync Project with Gradle Files\n#     Run -> Edit Configurations -> Debugger -> Symbol Directories\n#     Add \"ijkplayer-armv7a\u002F.externalNativeBuild\u002FndkBuild\u002Frelease\u002Fobj\u002Flocal\u002Farmeabi-v7a\" to Symbol Directories\n#     Run -> Debug 'ijkplayer-example'\n#     if you want to reverse patches:\n#     sh patch-debugging-with-lldb.sh reverse armv7a\n#\n# Eclipse: (obselete)\n#     File -> New -> Project -> Android Project from Existing Code\n#     Select android\u002F and import all project\n#     Import appcompat-v7\n#     Import preference-v7\n#\n# Gradle\n#     cd ijkplayer\n#     gradle\n\n```\n\n\n### Build iOS\n```\ngit clone https:\u002F\u002Fgithub.com\u002FBilibili\u002Fijkplayer.git ijkplayer-ios\ncd ijkplayer-ios\ngit checkout -B latest k0.8.8\n\n.\u002Finit-ios.sh\n\ncd ios\n.\u002Fcompile-ffmpeg.sh clean\n.\u002Fcompile-ffmpeg.sh all\n\n# Demo\n#     open ios\u002FIJKMediaDemo\u002FIJKMediaDemo.xcodeproj with Xcode\n# \n# Import into Your own Application\n#     Select your project in Xcode.\n#     File -> Add Files to ... -> Select ios\u002FIJKMediaPlayer\u002FIJKMediaPlayer.xcodeproj\n#     Select your Application's target.\n#     Build Phases -> Target Dependencies -> Select IJKMediaFramework\n#     Build Phases -> Link Binary with Libraries -> Add:\n#         IJKMediaFramework.framework\n#\n#         AudioToolbox.framework\n#         AVFoundation.framework\n#         CoreGraphics.framework\n#         CoreMedia.framework\n#         CoreVideo.framework\n#         libbz2.tbd\n#         libz.tbd\n#         MediaPlayer.framework\n#         MobileCoreServices.framework\n#         OpenGLES.framework\n#         QuartzCore.framework\n#         UIKit.framework\n#         VideoToolbox.framework\n#\n#         ... (Maybe something else, if you get any link error)\n# \n```\n\n\n### Support (支持) ###\n- Please do not send e-mail to me. Public technical discussion on github is preferred.\n- 请尽量在 github 上公开讨论[技术问题](https:\u002F\u002Fgithub.com\u002Fbilibili\u002Fijkplayer\u002Fissues)，不要以邮件方式私下询问，恕不一一回复。\n\n\n### License\n\n```\nCopyright (c) 2017 Bilibili\nLicensed under LGPLv2.1 or later\n```\n\nijkplayer required features are based on or derives from projects below:\n- LGPL\n  - [FFmpeg](http:\u002F\u002Fgit.videolan.org\u002F?p=ffmpeg.git)\n  - [libVLC](http:\u002F\u002Fgit.videolan.org\u002F?p=vlc.git)\n  - [kxmovie](https:\u002F\u002Fgithub.com\u002Fkolyvan\u002Fkxmovie)\n  - [soundtouch](http:\u002F\u002Fwww.surina.net\u002Fsoundtouch\u002Fsourcecode.html)\n- zlib license\n  - [SDL](http:\u002F\u002Fwww.libsdl.org)\n- BSD-style license\n  - [libyuv](https:\u002F\u002Fcode.google.com\u002Fp\u002Flibyuv\u002F)\n- ISC license\n  - [libyuv\u002Fsource\u002Fx86inc.asm](https:\u002F\u002Fcode.google.com\u002Fp\u002Flibyuv\u002Fsource\u002Fbrowse\u002Ftrunk\u002Fsource\u002Fx86inc.asm)\n\nandroid\u002Fijkplayer-exo is based on or derives from projects below:\n- Apache License 2.0\n  - [ExoPlayer](https:\u002F\u002Fgithub.com\u002Fgoogle\u002FExoPlayer)\n\nandroid\u002Fexample is based on or derives from projects below:\n- GPL\n  - [android-ndk-profiler](https:\u002F\u002Fgithub.com\u002Frichq\u002Fandroid-ndk-profiler) (not included by default)\n\nios\u002FIJKMediaDemo is based on or derives from projects below:\n- Unknown license\n  - [iOS7-BarcodeScanner](https:\u002F\u002Fgithub.com\u002Fjpwiddy\u002FiOS7-BarcodeScanner)\n\nijkplayer's build scripts are based on or derives from projects below:\n- [gas-preprocessor](http:\u002F\u002Fgit.libav.org\u002F?p=gas-preprocessor.git)\n- [VideoLAN](http:\u002F\u002Fgit.videolan.org)\n- [yixia\u002FFFmpeg-Android](https:\u002F\u002Fgithub.com\u002Fyixia\u002FFFmpeg-Android)\n- [kewlbear\u002FFFmpeg-iOS-build-script](https:\u002F\u002Fgithub.com\u002Fkewlbear\u002FFFmpeg-iOS-build-script) \n\n### Commercial Use\nijkplayer is licensed under LGPLv2.1 or later, so itself is free for commercial use under LGPLv2.1 or later\n\nBut ijkplayer is also based on other different projects under various licenses, which I have no idea whether they are compatible to each other or to your product.\n\n[IANAL](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FIANAL), you should always ask your lawyer for these stuffs before use it in your product.\n","ijkplayer是一个基于FFmpeg的Android\u002FiOS视频播放器，支持MediaCodec和VideoToolbox。该项目使用C语言编写，提供了MediaPlayer-like API，并针对移动平台进行了优化，包括减少二进制文件大小、处理在线视频流中的常见问题等特性。它支持多种CPU架构与操作系统版本，适用于需要高性能且轻量级视频解码能力的应用场景，如移动应用内的多媒体内容展示或直播服务。此外，ijkplayer还提供了一些替代后端选项以满足不同需求。",2,"2026-06-11 02:46:35","top_all"]