IINA is the modern video player for macOS.
Website · Releases · Telegram Group
- Based on mpv, which provides the best decoding capacity on macOS
- Designed with modern versions of macOS (10.11+) in mind
- All the features you need for video and music: subtitles, playlists, chapters…and much, much more!
- Force Touch, picture-in-picture and advanced Touch Bar support
- Customizable user interface including multiple color schemes and on screen controller (OSC) layout positioning
- Standalone Music Mode designed for audio files
- Video thumbnails
- Online subtitle searching and intelligent local subtitle matching
- Unlimited playback history
- Convenient and interactive settings for video/audio filters
- Fully customizable keyboard, mouse, trackpad, and gesture controls
- mpv configuration files and script system for advanced users
- Command line tool and browser extensions provided
- In active development
- 
IINA uses CocoaPods for managing the installation of third-party libraries. If you don't already have it installed, here's how you can do so: $ sudo gem install cocoapods$ brew install cocoapods
- 
Run pod installin project's root directory.
IINA ships with pre-compiled dynamic libraries for convenience reasons. If you aren't planning on modifying these libraries, you can follow the instructions below to build IINA; otherwise, skip down to Building mpv manually:
- 
Open iina.xcworkspace in the latest public version of Xcode. IINA may not build if you use any other version. 
- 
Build the project. 
- 
Build your own copy of mpv. If you're using a package manager to manage dependencies, the steps below outline the process. Use our tap as it passes in the correct flags to mpv's configure script: $ brew tap iina/homebrew-mpv-iina $ brew install mpv-iina Pass in these flags when installing: # port install mpv +uchardet -bundle -rubberband configure.args="--enable-libmpv-shared --enable-lua --enable-libarchive --enable-libbluray --disable-swift --disable-rubberband"
- 
Copy the latest header files from mpv (*.h) into deps/include/mpv/.
- 
Run other/parse_doc.rb. This script will fetch the latest mpv documentation and generateMPVOption.swift,MPVCommand.swiftandMPVProperty.swift. This is only needed when updating libmpv. Note that if the API changes, the player source code may also need to be changed.
- 
Run other/change_lib_dependencies.rb. This script will deploy the dependent libraries intodeps/lib. If you're using a package manager to manage dependencies, invoke it like so:$ other/change_lib_dependencies.rb "$(brew --prefix)" "$(brew --prefix mpv-iina)/lib/libmpv.dylib"$ port contents mpv | grep '\.dylib$' | xargs other/change_lib_dependencies.rb /opt/local
- 
Open iina.xcworkspace in the latest public version of Xcode. IINA may not build if you use any other version. 
- 
Remove all of references to .dylib files from the Frameworks group in the sidebar and drag all the .dylib files in deps/libto that group.
- 
Drag all the .dylib files in deps/libinto the "Embedded Binaries" section of the iina target.
- 
Build the project. 
IINA is always looking for contributions, whether it's through bug reports, code, or new translations.
- 
If you find a bug in IINA, or would like to suggest a new feature or enhancement, it'd be nice if you could search your problem first; while we don't mind duplicates, keeping issues unique helps us save time and considates effort. If you can't find your issue, feel free to file a new one. 
- 
If you're looking to contribute code, please read CONTRIBUTING.md–it has information on IINA's process for handling contributions, and tips on how the code is structured to make your work easier. 
- 
If you'd like to translate IINA to your language, please visit IINA's instance of Crowdin. You can create an account for free and start translating and/or approving. Please do not send pull request to this repo directly, Crowdin will automatically sync new translations with our repo. If you want to translate IINA into a new language that is currently not in the list, feel free to open an issue.