/iina

The modern video player for macOS.

Primary LanguageSwiftGNU General Public License v3.0GPL-3.0

IINA

IINA is the modern video player for macOS.

Website · Releases · Telegram Group


Features

  • Based on mpv, a powerful media player
  • Designed for modern macOS (10.10+)
  • Aims to offer the best user experience
  • All the features you need for videos, audios, subtitles, playlist, chapters and so on
  • MPV config files and script system are available for advanced users
  • Written in Swift, followed up on new technologies like Touch Bar, Force Touch, Picture-in-picture, etc.
  • Still in active development

Build

Use pre-compiled dylibs

  1. Please make sure CocoaPods is installed.

gem

sudo gem install cocoapods

homebrew

brew install cocoapods
  1. Run pod install in project root directory.
pod install
  1. Open .xcworkspace file.

Theoretically no extra work is needed. If you are unwilling to use the provided dylibs, follow the instructions below.

Build with the latest mpv

  • Install mpv

    brew install mpv --with-uchardet
    

    Feel free to include any other libraries if you like.

  • Copy latest header files into libmpv/include/mpv/

  • other/parse_doc.rb

    This script will fetch the latest mpv documentation and generate MPVOption.swift, MPVCommand.swift and MPVProperty.swift. This is only needed when updating libmpv. Note that if the API changes, the player source code may also need to be changed.

  • other/change_lib_dependencies.rb

    This script will deploy the depended libraries into libmpv/libs. Make sure you have a phase copying of all these dylibs in Xcode's build settings.

Contributing

Please read CONTRIBUTING.md before opening an issue or pull request.

Please ask for permission from the author before starting working on a pull request to make sure that there's not someone else working on the same feature.

Any feedback/contribution is appreciated!

Translation

Please check Translation Status first. If a language is labeled as "Need help", then please feel free to update the translation. If it doesn't contain your language, it will be awesome to submit a new translation. Please contact the author (@lhc70000) if you don't know how to submit translations using GitHub.