Giter Club home page Giter Club logo

iina-website's Introduction

IINA

IINA is the modern video player for macOS.

Website · Releases · Telegram Group


Crowdin

Features

  • 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

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
  • Tips:
    • 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.
  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 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.

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

  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 references to .dylib files from the Frameworks group in the sidebar and add all the .dylib files in deps/lib to that group by clicking "Add Files to iina..." in the context menu.

  7. Add all the imported .dylib files into the "Copy Dylibs" phase under "Build Phases" tab of the iina target.

  8. Make sure the necessary .dylib files are present in the "Link Binary With Libraries" phase under "Build Phases". Xcode should have already added all dylibs under this section.

  9. 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 consolidates 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 a 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 on the list, feel free to open an issue.

iina-website's People

Contributors

jimmycallin avatar lhc70000 avatar nloveladyallen avatar saagarjha avatar strafe avatar uiryuu avatar xeoneux avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

iina-website's Issues

Feature request: Window without borders

If is any way to add an option that make window mode don't show border or rounded corners. That will be perfect to share window or see full content. Fantastic app, thanks so much!

Change the “Rubik” font and use the “Inter” font instead

I would like your project website to use the Inter font instead of the Rubik font.
Why? The advantages would be the following:

  1. to be more compatible with the Apple Human Interface Guidelines
  2. it is free and open source (OFL 1.1)
  3. supports many languages
  4. is metrically similar to Apple's default San Francisco font
  5. better readability and support than Rubik
  6. brings a more professional touch to the project

I attach a few screenshots so you can see the difference between them.
iina io with rubik font  1
iina io using inter font  1
iina io with rubik font  2
iina io using inter font  2
iina io with rubik font  3
iina io using inter font  3
iina io with rubik font  4
iina,io using inter font  4
iina io with rubik font  5
iina io using inter font  5

Management

Can you please add volume and FF controls while in PiP mode (keyboard and mouse)

Stuttering playback after changing monitors

I have a MacBook Pro (15,2) which I use with a Dell U3219Q, 32" 4K monitor.

If I've been watching (local) videos on the laptop itself then plug it into the monitor and go to watch another video, it has a stuttering playback. The fix it simple - to quit IINA and restart. Or move it across to the laptop screen and back.

(S)FTP

This wasn't the place for my request.
Found the right place for it and saw previously opened issues.

Feature request: resize from a corner not centre

When watching 4K movies on my Macbook Pro I will reduce their size with Command-zero so I can be doing other work at the same time.

What's annoying is that it reduces all sides so it's in the centre of the full size display. Can you provide an option so the resizing only moves two sides rather than 4.

Example:

Current behaviour:

  1. Open a high res video.
  2. Ensure top left corner of the video window is in the top left corner of the display.
  3. Press Command-zero to halve the size of the video.
  4. The window is now in the centre of the previous window space

Desired behaviour:

Same as above but after pressing Command-zero the window is now half the size but remains in the top left corner of the display.

Obviously, my preference is anchoring it to the top left corner, but I imagine such a feature would be more generally implemented: resize using all 4 sides (current method), only move the right and edges (my preference), only move left and top edge, etc.

I've tried to achieve this via Preferences -> UI -> Window -> Initial Window position, but that only seems to apply to the initial window position, not the position after resizing. If this option also applied after resizing that would be another way to implement this.

Dark theme

Could you please add a dark theme to the site? Because using your site at night or in dark rooms is very unpleasant because of the bright white background.

it's not a issue but a request

Hi, i'm asking your help guys because I'd like a plugin that can copy the subtitle when a specific key is pressed could you help me ?

Minor rewording and grammar fix

It'll be better if "Translation" in the header gets changed to "Translations", and "With the support of youtube-dl and our browser extensions, you can also play a variety of online streams in IINA via one click." gets changed to "With the support of youtube-dl and our browser extensions, you can also play a variety of online streams via one click in IINA."

😎

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.