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

0
362 views
views

作者:大型强子对撞机

作为一个 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
  • 对用户界面提出建议
  • 提供其他语言的本地化..

Alpha 1

目前 IINA 已经推出了第一个版本 v0.0.1。

 

下载地址

链接: http://pan.baidu.com/s/1qXOi8pA 密码: hved

内部优惠券