IINA is the modern video player for macOS.

Related tags

Miscellaneous iina
Overview

IINA

IINA is the modern video player for macOS.

Website · Releases · Telegram Group


Features

  • 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

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

  1. Download pre-compiled libraries by running
./other/download_libs.sh
  1. Open iina.xcodeproj in the latest public version of Xcode. IINA may not build if you use any other version.

  2. Build the project.

Building mpv manually

  1. 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:

    $ brew tap iina/homebrew-mpv-iina
    $ brew install mpv-iina

    With MacPorts

    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"
  2. Copy the latest header files from mpv (*.h) into deps/include/mpv/.

  3. Run 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.

  4. 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:

    With Homebrew

    $ other/change_lib_dependencies.rb "$(brew --prefix)" "$(brew --prefix mpv-iina)/lib/libmpv.dylib"

    With MacPorts

    $ port contents mpv | grep '\.dylib$' | xargs other/change_lib_dependencies.rb /opt/local
  5. Open iina.xcodeproj in the latest public version of Xcode. IINA may not build if you use any other version.

  6. Remove all of references to .dylib files from the Frameworks group in the sidebar and drag all the .dylib files in deps/lib to that group.

  7. Drag all the .dylib files in deps/lib into the "Embedded Binaries" section of the iina target.

  8. Build the project.

Contributing

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.

You might also like...
macOS PropertyList Editor

PropertyListEditor About ... License Project is released under the terms of the MIT License. Repository Infos Owner: Jean-David Gadina - XS-L

macOS status bar app to automatically fetch Git repositories.

Fetcher About macOS status bar app to automatically fetch Git repositories. License Project is released under the terms of the MIT License. Repository

Swift sample app for running privileged operations on macOS using a helper tool
Swift sample app for running privileged operations on macOS using a helper tool

SwiftAuthorizationSample demonstrates how to run privileged operations on macOS using a helper tool managed by launchd. This sample was created with t

Swift JSExport extensions for macOS system frameworks
Swift JSExport extensions for macOS system frameworks

framework-bridge Swift JSExport extensions for macOS system frameworks. Progress Foundation AppKit Usage Swift import JavaScriptCore import FrameworkB

Coreml-performance project works on MacOS to test M1 macbooks

ml-macos-performance This project is inspired by Vladimir Chernykh coreml-performance project for iOS. I made changes so it works on MacOS to test M1

A longstanding annoying bug in our beloved operating system macOS

Houston There is a longstanding annoying bug in our beloved operating system macOS. If you open an application while Mission Control is active, the ap

Create dynamic wallpapers for macOS
Create dynamic wallpapers for macOS

Equinox Create macOS native wallpapers Description Equinox is an application that allows you to create macOS native wallpapers. Starting macOS Mojave

A GUI based virtualisation tool for running Linux on macOS Big Sur (x86 or arm64)
A GUI based virtualisation tool for running Linux on macOS Big Sur (x86 or arm64)

Project Mendacius GUI based virtualization tool to run Linux, based on the Virtualization framework introduced by Apple for macOS Big Sur with support

A sample app demonstrates how to use Atlantis on Swift Playground (iOS/macOS)
A sample app demonstrates how to use Atlantis on Swift Playground (iOS/macOS)

Atlantis with Swift Playground A sample app demonstrates how to use Atlantis on

Releases(v1.2.0-develop(1))
Owner
xjbeta
xjbeta
An ultra-lightweight native Discord client for vintage and modern Mac OS

Discord Lite An ultra-lightweight native Discord client for vintage and modern Mac OS Minimum System Requirements Mac OS X version 10.4 (Tiger) PowerP

null 155 Jan 2, 2023
A Spotify player for watchOS

Apollo A Spotify player for watchOS. The goal of open sourcing this project is to motivate Spotify to add playback support to their watchOS app. I'm n

Khaos Tian 75 Jan 5, 2023
A modern runtime (soon: modification) library

Bridge A Modern Runtime (soon: Modification) Library Setup swift package generate-xcodeproj Whenever you need to create/modify a target, please regen

Cero 18 Oct 31, 2022
Modern JavaScriptBridge for JSContext & WKWebview.

HWJavaScriptBridge Example To run the example project, clone the repo, and run pod install from the Example directory first. Requirements iOS 6.0+ Ins

null 6 Jul 28, 2022
React Native utility library around image and video files for getting metadata like MIME type, timestamp, duration, and dimensions. Works on iOS and Android using Java and Obj-C, instead of Node 🚀.

Qeepsake React Native File Utils Extracts information from image and video files including MIME type, duration (video), dimensions, and timestamp. The

Qeepsake 12 Oct 19, 2022
A ARM macOS Virtual Machine, using macOS 12's new Virtualization framework.

macOS Virtual Machine A ARM macOS Virtual Machine, using macOS 12's new Virtualization framework. I copied KhaosT's code from here, all I did is chang

Ming Chang 127 Nov 30, 2022
A macOS application for accessing the output of the SimpleAnalytics package on the desktop.

The SimpleAnalytics package allows you to collect data user interaction analytic data in iOS and macOS applications. This SimpleAnalytics Reader app project allows you to more easily make sense of that collected data by displaying it on your Mac.

Dennis Birch 10 Dec 22, 2022
LinearMouse - A minimal app to get rid of mouse acceleration on macOS

LinearMouse A minimal app to get rid of mouse acceleration on macOS. Features Reverse the direction of scrolling. Linear scrolling (disable scrolling

Jiahao Lu 1.6k Jan 7, 2023
A Swift wrapper around the CoreSymbolication private framework on macOS.

CoreSymbolication provides a very powerful system for looking up and extracting symbolic information from mach-o executables, dyld shared caches, and dSYMs.

Stacksift 7 Nov 21, 2022
PlayCover is a project that allows you to sideload iOS apps on macOS( currently arm, Intel support will be tested.

PlayCover is a project that allows you to sideload iOS apps on macOS( currently arm, Intel support will be tested.

Alexandr 4k Jul 8, 2022