ijk media player based on ffplay
Platform | Archs |
---|---|
iOS 11.0 | arm64、arm64_simulator、x86_64_simulator |
macOS 10.11 | arm64、x86_64 |
tvOS 12.0 | arm64、arm64_simulator、x86_64_simulator |
- macOS Sequoia(15.1)
- Xcode Version 16.1 (15F31d)
- cocoapods 1.16.1
- Common
- using FFmpeg 6.1.1
- enabled ffmpeg all decoders and demuxers binary size is bigger FFToolChain/ffconfig/module-full.sh
- workaround for some buggy online video
- iOS/macOS/tvOS
- video-output: Metal 2/OpenGL 3.3
- audio-output: AudioQueue, AudioUnit
- hardware acceleration: auto choose VideoToolbox by default
- subtitle:
- text subtitle(srt/vtt/ass)/image subtitle(dvbsub/dvdsub/pgssub/idx+sub)
- support intenal and external
- text subtitle support force style
- adjust position y and scale
- 4k/HDR/HDR10/HDR10+/Dolby Vision Compatible
- support Network or Local Blu-ray Disc/BDMV
- set audio or subtitle extra delay
- exchange video resolution gapless
- Donate to debugly/ijkplayer
- 捐赠 debugly/ijkplayer
install use cocoapod:
pod "IJKMediaPlayerKit", :podspec => 'https://github.com/debugly/ijkplayer/releases/download/k0.11.8/IJKMediaPlayerKit.spec.json'
if you need change source code, you can use git add submodule, then use cocoapod integrate ijk into your workspace by development pod like examples.
how to run examples:
git clone https://github.com/debugly/ijkplayer.git ijkplayer
cd ijkplayer
git checkout -B latest k0.11.8
git submodule update --init
./FFToolChain/main.sh install -p macos -l 'ass ffmpeg smb2'
./FFToolChain/main.sh install -p ios -l 'ass ffmpeg smb2'
./FFToolChain/main.sh install -p tvos -l 'ass ffmpeg smb2'
pod install --project-directory=./examples/macos
pod install --project-directory=./examples/ios
pod install --project-directory=./examples/tvos
# run iOS demo
open ./examples/ios/IJKMediaDemo.xcworkspace
# run macOS demo
open ./examples/macos/IJKMediaMacDemo.xcworkspace
# run tvOS demo
open ./examples/tvos/IJKMediaTVDemo.xcworkspace
if you want build your IJKMediaPlayerKit.framework, you need enter examples/{plat} folder, then exec ./build-framework.sh
- Please do not send e-mail to me. Public technical discussion on github is preferred.
- 请尽量在 github 上公开讨论技术问题,不要以邮件方式私下询问,恕不一一回复。
Copyright (c) 2017 Bilibili
Licensed under LGPLv2.1 or later
Copyright (c) 2022 Sohu
Licensed under LGPLv2.1 or later
ijkplayer required features are based on or derives from projects below:
- LGPL
- zlib license
- BSD-style license
- ISC license
android/ijkplayer-exo is based on or derives from projects below:
- Apache License 2.0
android/example is based on or derives from projects below:
- GPL
- android-ndk-profiler (not included by default)
ios/IJKMediaDemo is based on or derives from projects below:
- Unknown license
ijkplayer's build scripts are based on or derives from projects below:
ijkplayer is licensed under LGPLv2.1 or later, so itself is free for commercial use under LGPLv2.1 or later
But 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.
IANAL, you should always ask your lawyer for these stuffs before use it in your product.
Primay icon was made by my friend 小星.