FAQ - iina/iina GitHub Wiki


简体中文



Will there be a Windows/Linux/iOS version?

No. See #674, #714 and #900.

Why is the seeking time not precise when pressing arrow keys?

IINA uses keyframe seek by default.

To use exact seek, please duplicate the default key binding scheme and change the action for the left/right key to something like

seek 5 relative+exact

as shown in the screenshot below.

Use exact seek

Please note that exact seek can be slow when playing large files.

Is there a frame step function?

Yes, it's Option+Arrow keys in the default key binding scheme.

Tip: Alternative menu items will be revealed for opened menus while holding the Option key.

How to adjust speed?

Command + Option + [ or ]

How to collect log files when reporting an issue?

When reporting an IINA problem the issue template has a section for including log files. Log files are important evidence for identifying the cause of a problem. By default logging is disabled. Collecting log files involves enabling logging, reproducing the problem, dropping the generated log files into the issue template and disabling logging.

To enable logging follow these instructions:

  • Start IINA
  • Click on Settings… under the IINA menu
  • The settings panel appears
  • On the left side of the panel click on Advanced
  • Slide the Enable advanced settings toggle button to be on (blue)
  • Click on the checkbox Enable logging to file
  • Confirm the settings panel looks like the screenshot below
  • Restart IINA to activate logging

enable-logging

Once IINA has restarted, reproduce the problem. Then:

  • Click on Settings… under the IINA menu
  • The settings panel appears
  • On the left side of the panel click on Advanced
  • Click on Open log directory
  • A new Finder window appears containing the logs for this session
  • Quit IINA to complete the log files

The Finder window contains two files, iina.log and mpv.log. To attach the log files to the issue, drag-n-drop them from the Finder window to the Logs section of the issue being created. Include both the iina.log and the mpv.log files.

DO NOT FORGET to disable logging once you have obtained log files for the problem. IINA does not restrict the size of log files or delete old logs. If you leave logging enabled the logs will continue to accumulate.


The log files can also be accessed using Terminal. They can be found under the directory ~/Library/Logs/com.colliderli.iina. With logging enabled IINA creates a new log directory each time it is started. If accessing the logs using Terminal be sure to obtain them from the latest log directory:

low-batt@gag ~$ cd ~/Library/Logs/com.colliderli.iina
low-batt@gag com.colliderli.iina$ ls -la
total 0
drwxr-xr-x   4 low-batt  staff  128 Oct 11 16:14 .
drwxr-xr-x@ 21 low-batt  staff  672 Mar 30  2023 ..
drwxr-xr-x@  4 low-batt  staff  128 Oct 11 16:14 2024-10-11-16-14-28_4MlDna
drwxr-xr-x@  4 low-batt  staff  128 Oct 11 16:14 2024-10-11-16-14-47_VQOLs4
low-batt@gag com.colliderli.iina$ cd 2024-10-11-16-14-47_VQOLs4
low-batt@gag 2024-10-11-16-14-47_VQOLs4$ ls
iina.log	mpv.log
low-batt@gag 2024-10-11-16-14-47_VQOLs4$ 

How to collect a crash report when reporting an issue?

If IINA crashes the app will disappear and macOS will display this alert: crashed

When this happens open the macOS Console application found in /Applications/Utilities. Then on the left side of the Console window click on Crash Reports. Look for an IINA crash with the date/time the failure occurred: console

Right click on the crash report to bring up the context menu and click on Reveal in Finder: right-click

In the Finder window right click on the crash report file and click on Compress: compress

This compresses the ips file into a zip file. This is required to be able to post the file to GitHub: zip-file

If you are creating a new IINA issue on GitHub you can drag-n-drop the zip file to the Crash Report or Process Sample section of the issue before creating it. If the issue has already been created you can drag-n-drop the zip file to the Add a comment section and then click on the Comment button.

How to collect a process sample when reporting an issue?

Certain types of coding errors can cause a computer application to stop responding to inputs. This type of failure is referred to as a hang. When this happens to an application macOS might display the spinning beach ball of death as the cursor when positioned over the app. This type of problem can sometimes be hard to reproduce. A critical piece of evidence for diagnosing a hang is a process sample.

If entering a GitHub issue to report an IINA hang it is desirable to include a process sample. Once IINA is hung, to generate a process sample first start Terminal. Move to your Documents directory. Then run this command:

sample -file sample.txt IINA

NOTE: This will overwrite any existing sample.txt file in Documents.

The sample command may take a while to run. Be patient. Wait for it to finish:

low-batt@gag ~$ cd Documents/
low-batt@gag Documents$ sample -file sample.txt IINA
Sampling process 14321 for 10 seconds with 1 millisecond of run time between samples
Sampling completed, processing symbols...
Sample analysis of process 14321 written to file sample.txt
low-batt@gag Documents$ 

To attach the process sample to the issue, open a Finder window, navigate to your Documents folder then drag-n-drop the sample.txt file to the GitHub issue you are creating.


It is also possible to use the Activity Monitor to collect a process sample . To do that instead of using Terminal, follow these instructions:

  • Open Activity Monitor in /Applications/Utilities.
  • Find IINA in the list of processes displayed by the monitor
  • Click on IINA in the Process Name column to select that process
  • Then click on Sample Process under the View menu
  • A panel will appear titled Sample of IINA
  • Wait for the Activity Monitor to finish sampling IINA
  • When Activity Monitor finishes click on the Save… button and save the report to a file

What is a release channel?

The IINA issue template requires you to report the "Release Channel".

Channel Description
Release An official IINA release downloaded from the IINA web site or installed using brew.
Beta An official IINA Beta pre-release.
Nightly An official IINA nightly build downloaded using the IINA Nightly builds page. See: What is an IINA nightly build?
Other Normally you should be reporting problem against the above official builds, but this could be your own build of IINA's develop branch. By default that is a Debug build.
Not Sure Find to use this if you are unsure, but see below for how to tell what kind of release you have.

There are various ways you can identify what kind of IINA release you are running.

The application icon reflects the release channel:

Release Beta Nightly Debug
icon_128x128 icon_128x128 icon_128x128 icon_128x128

If in IINA's settings on the General tab in the Behavior section the At launch setting is set to Show welcome window then when IINA starts up the welcome window will be displayed. If this is something other than the official release there will be an indication on the welcome window:

welcome

Clicking on About IINA under the IINA menu will display the about panel. If this is something other than the official release there will be an indication on the about panel:

about

Clicking on Log Viewer under the Window menu will display the Log Viewer window. As long as the log level is set to Debug or Verbose the first log message displayed will contain an indication in that log message:

log

What is an IINA nightly build?

The Optional Actions section at the bottom of the IINA issue template contains this checkbox:

I tested with the Nightly build and confirmed the issue is not fixed.

This is about checking to see if developers have already fixed the problem. This is optional. It is fine to enter the issue without performing this check. If you want to know about nightly builds read on…

The bottom of the downloads page on the IINA web site contains a link to Nightly Builds. Nightly build is a dated term from when computers were not as powerful and companies would run builds late at night when employees where not using the computers. The IINA nightly build is actually a result of a continuous integration build. After a proposed change to IINA passes review the source changes are merged into the develop branch of source control. This triggers a build. Thus the latest IINA nightly build represents the current state of IINA development.

The review process is supposed to prevent new problems from being introduced, but the nightly build does not benefit from the extra testing that is done for IINA stable releases and IINA beta releases. This is why in the Downloading section IINA's README contains this caution:

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.

The Nightly Builds page contains this note:

Nightly builds are built by GitHub Actions based on each new commit on the develop branch. You may need to login on GitHub to download a nightly build. They are not signed, so you need to manually change your system security settings to use nightly builds.

That last sentence is important. IINA stable releases and IINA beta releases are signed and notarized, whereas nightly builds are not. Code signing ties the code to an author and guarantees that the code has not been altered or corrupted since it was signed. From App code signing process in macOS:

…all apps distributed outside the App Store must be signed by the developer using an Apple-issued Developer ID certificate (combined with a private key) and notarized by Apple to run under the default Gatekeeper settings.

Gatekeeper is the macOS security technology that verifies an app as been signed and notarized when you open it. To open an unsigned app you must instruct Gatekeeper to allow it to be opened. You should only do this if you downloaded the app from a location you trust and it is expected that the app is unsigned.

It used to be easy to instruct Gatekeeper to allow an app to be opened. In macOS Sequoia Apple added steps to ensure users are not accidentally by-passing Gatekeeper. Follow these instructions to run an IINA nightly build under macOS Sequoia:

On IINA's Nightly Builds page click on the Download on GitHub link of the latest build. You may need to log into GitHub. This will download an IINA.zip file. Double click on the zip file to extract the IINA app file:

files

Once the app has been extracted from the zip file double click on it to open IINA. Instead of opening macOS will put up this alert:

not-opened

Click on Done to dismiss it. Under the  menu click on System Settings…. In the settings window on the left side click on Privacy & Security. On the right side scroll down to the bottom. Under Security look for an entry that indicates "IINA.app" was blocked:

privacy

Click on Open Anyway. An alert will be shown asking if you really wanted to do that:

again

Click on Open Anyway. Again. If you are not running under an administrator account macOS will prompt for an administrator's credentials to allow this:

admin

Enter the credentials and click Ok. IINA will start up. If later you download a different nightly build you will have to repeat this process to allow that IINA build to run.

Note

Running an unsigned IINA build such as a nightly build or your own build will cause macOS to clear the short list of recent documents IINA opened. This is the list seen on the Welcome Window (if enabled) and in the Open Recent menu item under the File menu. It is not known at this time why Apple thought it was appropriate to delete the user's data without permission like this.

⚠️ **GitHub.com Fallback** ⚠️