爱意满满的作品展示区。
lhc70000

IINA - 一个现代的 macOS 视频播放器

  lhc70000 ·
lhc70000 · Jan 4, 2017 · 76521 views
This topic created in 3425 days ago, the information mentioned may be changed or developed.

作为一个 Mac 用户,或许你和我一样感到过疑惑:为什么这样一个拥有众多高质量软件的平台,竟没有一个强大而优雅的视频播放器。

说起 macOS 上的视频播放器,大多数人会举出 QuickTime 、 VLC 、 MPlayerX 等名字,然而他们的缺点也显而易见: QuickTime 支持的格式太少; VLC 界面不美观,也时常卡顿; MPlayerX 基于稍稍过时的 mplayer ,不再有大幅更新,而且界面......不是那么 Mac 。

这个知乎问题中,有人推荐过了 mpv 。 mpv 是 mplayer 系唯一活跃开发的分支,也是当前跨平台功能最强大的播放软件之一。两年前的我也是从这个问题才了解到 mpv ,当即装上测试,对它的解码能力和强大配置选项有了很深的印象。但即使作为程序员的我,也用不惯它的命令行界面:一个媒体类软件,怎能没有一个好用好看的 UI 呢?

所以今年暑假,我突然冒出「做一个现代的 macOS 视频播放器」的想法。我经常想出个点子做一两天之后坑掉,但是幸运的是,对于这个项目,虽然中间由于自己懒和课程太忙暂停了好一阵,我还是坚持下来了。

Project IINA,是一个基于 mpv 、契合 macOS 设计风格、力求做到最佳用户体验、轻便且功能强大的视频播放器项目。

解码和播放

IINA 以 mpv 为播放核心,所以享受到了 mpv 解码和图像方面的所有优点。与 MPlayerX 使用的 slave mode 不同, IINA 使用了 libmpv 的 C API ,来提供更加稳定快速的渲染和控制。此外,它使用原始屏幕分辨率渲染,所以比起其他一些播放器画质有显著提高。

( IINA 与 MPlayerX 同分辨率下的字幕渲染对比)

用户界面

不多说,先上截图:

当前 macOS 的毛玻璃效果可以选择材质,所以标题栏和播放控制有四种主题可选: Dark (截图中的主题)、 Ultra Dark 、 Light 和 Medium Light 。

语言方面,开发(和截图中)语言为英文,但目前几乎所有界面都有简体中文支持。

快速设置

或许你试过在其他播放器中,调整音频延迟等选项时,需要不断点击菜单项来一次又一次地加减音频延迟的数值;或者在选择音轨字幕时,展开好几层菜单来找到需要的那一个。当然, IINA 提供了和其他播放器一样,甚至更丰富的菜单项,它也提供了一个快速设置界面,涵盖了所有常用的视频、音频和字幕选项,并使用了各种可交互的控件来大大加快更改各种播放设置的效率。

(视频设置)

(音频设置)

(字幕设置)

这些界面只需一个快捷键即可调出。传统的菜单项设置也全部保留,方便有任何需求的用户。

甚至对于画面剪切(用途有去黑边等),除去快速设置中的按常用长宽比剪切,它甚至提供了一个全交互式的剪切界面(此界面将来可扩展至更多设置):

播放列表和章节

IINA 支持简易的播放列表(更多功能稍后添加)。对于分章节的视频,它更是可以把内容及起始时间一目了然地列出:

(播放列表)

(章节)

点击即可跳转至相应视频或者时间。

丰富的设置项

IINA 希望能迎合尽可能多用户的喜好。在开发过程中,遇到和身边人不同的操作习惯,我会把它们作为可选的设置项加入偏好设置。

比如,播放按钮两边的左右箭头,可以选择调整速度(类似 QuickTime )、上一个 /下一个媒体( MPlayerX )或是前进 /后退;又如鼠标在播放界面单击和双击,都可以有可选的相应动作。

我也尽量满足一些「强迫症」用户的偏好,所以在拖动播放控制时,可以吸附窗口中心;又如在根据视频大小调整窗口大小时,可以选择根据 Retina 屏物理分辨率还是逻辑分辨率。

对于快捷键, IINA 保留了整个 mpv 的 input.conf 系统,以做到与原来 mpv 用户的最大兼容。但是,用户可以有多个快捷键配置文件,并在 GUI 中切换和编辑他们(暂时可以做到快捷键配置的管理和录制新快捷键,但对应命令需要自行输入;此问题会尽快解决)。

欲查看所有设置项的截图,请访问 IINA 的网站(链接在文章底部)。

MPV 的配置文件和脚本系统

当然, IINA 支持 mpv 强大的配置文件和 lua 脚本系统。对于现有的 mpv 用户,只需要打上一个勾, IINA 就会自动使用原有的全部配置(并覆盖偏好设置中的相关项),从而几乎无缝切换到一个同样内核但有强大界面的新播放器。

目前 IINA 也支持 mpv 的日志功能( Debug 用),以及使用 mpv 自己的 osd 。

当然,对于不熟悉 mpv 的用户,这些选项平时会被禁用,不会有任何影响。

面向现代 macOS

现有的播放器有很多都含有不少冗余部分,如 MPlayerX ,含有很多用于兼容 10.6 的代码,而如今几乎没有人在使用此版本。 IINA 仅面向现代 macOS ,支持 macOS 10.10+,推荐使用 macOS 10.12 。

免费,开源,期待你的参与

IINA 由纯 Swift 写成,并在 github 上使用 GPLv3 开源。 IINA 不管现在还是将来,都将免费。

如果你对这个项目感兴趣,可以用各种方式给我反馈:

  • 下载并测试
  • 提出 bug report
  • 提出 feature request
  • 在 github 上加星星
  • 检查我的代码并提出建议(我知道写得很渣)
  • 甚至提出 pull request
  • 对用户界面提出建议
  • 提供其他语言的本地化
  • 在 bilibili 围观我的不定期写代码直播(?)http://live.bilibili.com/2639149
  • 任何其他反馈

Alpha 1

目前 IINA 已经推出了第一个版本 v0.0.1 。不过由于我的经验不足,我相信此版本仍有很多待解决的问题。如果你发现了问题,甚至软件根本不能打开,请在 github 上提出 issue 或者通过邮件 /私信等方式联系我。

下载地址等请参见网站,或 github 上的 release 。

Github : https://github.com/lhc70000/iina

网站:https://lhc70000.github.io/iina/zh-cn/

(第一次发帖就是类似广告的东西,还请大家见谅^ ^||)

Supplement 1  ·  Jan 4, 2017

由于反馈人数有点多,有回复限制而不能及时回复,如果你希望继续跟进交流,请加入QQ群

142730636

谢谢各位( ´ ▽ ` )ノ

228 replies    2019-05-20 20:31:00 +08:00
1  2  3  
sammo
    201
sammo  
   Jan 18, 2017
IMRES
    202
IMRES  
   Jan 23, 2017
很漂亮 支持!
ivxe2v
    203
ivxe2v  
   Jan 25, 2017
能不能加上自动下字幕的功能?
lhc70000
    204
lhc70000  
OP
   Jan 26, 2017
@ivxe2v 现在已经有了啊...
Wao
    205
Wao  
   Feb 23, 2017
请问有什么办法可以在开始播放一个媒体文件时在屏幕上显示( HUD )该文件的名字等信息吗?谢谢 : )
这样在连续补剧时方便掌握自己正在看哪一集,这样在被其他事情耽搁后继续追时可以直接从那一集开始

我现在有时没注意看到哪一集,像在继续时要打开几集才能试出来 x_x
Wao
    206
Wao  
   Feb 23, 2017
或者是在按下某一个按键时,在屏幕显示当前播放文件的相关信息,谢谢 : )
lhc70000
    207
lhc70000  
OP
   Feb 23, 2017   ❤️ 1
@Wao 现在的 OSD 显示的信息确实太少;已经有这个 issue 了,以后版本会加入的
xuesumin
    208
xuesumin  
   Mar 17, 2017
马克一下,确实好用!
zhuangtongfa
    209
zhuangtongfa  
   Mar 20, 2017
一开始还以为是外国人开发的,原来是国人开发的,非常不错
LZRng
    210
LZRng  
   Mar 24, 2017
amazing !加油加油!
Neo
    211
Neo  
   Apr 8, 2017
发现不支持 iso 格式,期待支持
Jobin0528
    212
Jobin0528  
   May 12, 2017
safari 插件每次使用都会有弹窗提示是否允许,这个可以设置么?
lhc70000
    213
lhc70000  
OP
   May 15, 2017
@Jobin0528 似乎不行……
ahu
    214
ahu  
   Jul 3, 2017
@lhc70000 最近我弟弟知道了 IINA 这款播放器,他觉得不错专门向我推荐,我一开始写错了写成 LLNA 了,搜了半天没结果,后来才发现是 iina...一搜,果然在半年前就在咱 V2 宣传过了,我那时候忙没怎么上竟然错过了,罪过罪过...

我弟弟说,看是否能联系上你,建议一个功能:像 movist 那样支持多窗口。so,你看着办咯~Good luck !
Wao
    215
Wao  
   Jul 10, 2017
没注意自己按了哪个按键还是怎样,现在默认打开视频时是最小音量(本来是最大),看了设置,没发现恢复的选项,请问怎么改回来呀?谢谢
lhc70000
    216
lhc70000  
OP
   Jul 11, 2017
@ahu 多窗口已经做了,请等下一版

@wao 如果真的是最小( 0 )的话……只能是你的 mpv 配置问题了(偏好设置-高级里的 mpv 选项,或者是自定义的 mpv.conf )
Wao
    217
Wao  
   Jul 11, 2017
@lhc70000 这部分的设置没动过
lhc70000
    218
lhc70000  
OP
   Jul 12, 2017   ❤️ 1
@Wao 我再检查一下。你可以先在 Additional mpv options 里加上 volume = 100 来固定初始音量。
zysgycl
    219
zysgycl  
   Aug 7, 2017
楼主你好,请问怎样设置才能自定义一个同样大小的窗口?也就是说无论视频大小如何,都以一个用户自定义的同样大小的尺寸打开。现在每次打开一个视频都是一个很小的窗口,需要手动去设置视频的大小,有些麻烦。谢谢楼主!
lhc70000
    220
lhc70000  
OP
   Aug 7, 2017
@zysgycl

IINA 支持 mpv 的 geometry 选项。请参照 https://mpv.io/manual/stable/#options-geometry,加到偏好设置-高级的 mpv 选项里就行。

如果你只是觉得默认窗口小,可以试试关掉偏好设置-UI 里的「 retina 屏上使用物理分辨率」。
zysgycl
    221
zysgycl  
   Aug 8, 2017
@lhc70000
明白了,非常感谢楼主的指点!
JimGreen
    222
JimGreen  
   Jan 25, 2018
希望可以添加类似 mplayerx 那样,自动查找并播放当前文件夹下下一个文件。
谢谢!
lhc70000
    223
lhc70000  
OP
   Jan 25, 2018
@JimGreen 现在不可以吗?
JimGreen
    224
JimGreen  
   Jan 25, 2018 via iPhone
@lhc70000 刚刚更新到新版,可以了。👍。
JanKinAn
    225
JanKinAn  
   Apr 7, 2018
恭喜进入 1.0
guller
    226
guller  
   Jun 19, 2018
当光标移到左上角的关闭按钮前,控制键会消失,不能及时关闭。。
lhc70000
    227
lhc70000  
OP
   Jun 19, 2018
@guller 现在还不提供 10.14 的支持。这个问题还没有确认是系统的 bug 还是 API 的变更,所以不会马上在新版本里推送修复。10.14 的开发在别的分支上,如果有条件可以自己编译。
dongqisheng520
    228
dongqisheng520  
   May 20, 2019
最好的 macOS 免费播放器。
1  2  3  
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1047 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 65ms · UTC 18:51 · PVG 02:51 · LAX 11:51 · JFK 14:51
♥ Do have faith in what you're doing.