Based on mpv, which provides the best decoding capacity on macOS
Designed with modern versions of macOS (10.15+) 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
Downloading
You can get IINA through several sources. For the latest stable and beta releases, visit the GitHub release page or the IINA official website. If you want to try out the latest features and improvements before they are officially released, you can download the nightly builds from our Nightly Download Page.
[!IMPORTANT]
Nightly builds are generated by GitHub automatically for every commits, which might be buggy and unusable. If you find a bug, please follow the contributing section and file an issue.
Building
IINA uses mpv for media playback. To build IINA, you can either fetch copies of these libraries we have already built (using the instructions below) or build them yourself by skipping to these instructions.
Using the pre-compiled libraries
Download pre-compiled libraries by running
./other/download_libs.sh
[!TIP]
Change the URL in the shell script if you want to download arch-specific binaries. By default, it will download the universal ones. You can download other binaries from https://iina.io/dylibs/${ARCH}/filelist.txt where ARCH can be universal, arm64 and x86_64.
If you want to build an older IINA version, make sure to download the corresponding dylibs. For example, https://iina.io/dylibs/1.2.0/universal/filelist.txt.
Copy the corresponding mpv and FFmpeg header files into deps/include/, replacing the current ones. You can find them on GitHub (e.g. mpv), but it’s recommended to copy them from the Homebrew or MacPorts installation. Always make sure the header files have the same version of the dylibs.
Run other/parse_doc.rb. This script will fetch the latest mpv documentation and generate MPVOption.swift, MPVCommand.swift and MPVProperty.swift. Copy them from other/ to iina/, replacing the current files. 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 into deps/lib. If you’re using a package manager to manage dependencies, invoke it like so:
IINA
IINA is the modern video player for macOS.
Website · Releases · Telegram Group
Features
Downloading
You can get IINA through several sources. For the latest stable and beta releases, visit the GitHub release page or the IINA official website. If you want to try out the latest features and improvements before they are officially released, you can download the nightly builds from our Nightly Download Page.
Building
IINA uses mpv for media playback. To build IINA, you can either fetch copies of these libraries we have already built (using the instructions below) or build them yourself by skipping to these instructions.
Using the pre-compiled libraries
Open iina.xcodeproj in the latest public version of Xcode. IINA may not build if you use any other version.
Build the project.
Building mpv manually
Build your own copy of mpv. If you’re using a package manager to manage dependencies, the steps below outline the process.
With Homebrew
Use our tap as it passes in the correct flags to mpv’s configure script:
With MacPorts
Pass in these flags when installing:
Copy the corresponding mpv and FFmpeg header files into
deps/include/, replacing the current ones. You can find them on GitHub (e.g. mpv), but it’s recommended to copy them from the Homebrew or MacPorts installation. Always make sure the header files have the same version of the dylibs.Run
other/parse_doc.rb. This script will fetch the latest mpv documentation and generateMPVOption.swift,MPVCommand.swiftandMPVProperty.swift. Copy them fromother/toiina/, replacing the current files. 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:With Homebrew
With MacPorts