说到macOS平台的最佳视频播放器,估计每个人都有自己的想法,就像最佳编程语言一样,有人认为是PHP,有人认为是Go。
OK,我们不争论。
我推荐使用视频播放器是 IINA 原因如下(其实自嗨):
- 开源 - 是的,你完全可以学习和研究现代macOS视频播放软件是如何开发的
- 专注macOS - 不是跨平台软件,而是只针对macOS平台优化的视频播放器:这可以说是缺点,但同时对于专注使用macOS平台但用户来说却是优点。程序不需要考虑跨平台兼容性,也就精简了代码
- 支持大量的视频格式 - 因为底层使用了支持大量视频格式的mpv引擎
IINA官网提供了直接安装的软件包。但是,作为开源软件,显然你可以自己编译安装。
- IINA使用了 cocoaPods来管理安装第三方库,可以通过以下方式安装
通过RubyGems安装CocoaPods:
sudo gem install cocoapods
或者通过Homebrew
brew install cocoapods
- 在IINA代码根目录下执行
pod install
- 在Xcode中打开
iina.xcworkspace
- Build项目
你也可以不使用预先编译的库,而自己手工编译mpv库。
- 使用homebrew
使用iina的参数传递tap:
brew tap iina/homebrew-mpv-iina
brew install mpv-iina
- 使用MacPorts(如果不使用homebrew)
port install mpv +uchardet -bundle -rubberband configure.args="--enable-libmpv-shared --enable-lua --enable-libarchive --enable-libbluray --disable-swift --disable-rubberband"
-
将mpv头文件(*.h)复制到
deps/include/mpv/
目录 -
运行
other/parse_doc.rb
脚本将获取最新的mpv文档并生成MPVOption.swift
,MPVCommand.swift
和MPVProperty.swift
。这对更新libmpv游泳 -
运行
other/change_lib_dependencies.rb
,该脚本部署依赖库到deps/lib
目录
other/change_lib_dependencies.rb "$(brew --prefix)" "$(brew --prefix mpv-iina)/lib/libmpv.dylib"
如果使用 MacPorst,则换成执行
port contents mpv | grep '\.dylib$' | xargs other/change_lib_dependencies.rb /opt/local
-
在Xcoce中打开
iina.xcworkspace
-
删除Frameworks组的所有引用的 .dylib 文件,并将所有 .dylib 文件移入
deps/lib
-
将所有
deps/lib
中的.dylib文件移入iina目标的"Embedded Binaries"部分 -
执行 Build 整个项目
编译iina的工作我没有实践,仅做记录