为什么 Yamby 选择 MPV 作为播放内核
播放内核的选择
视频播放器的性能上限几乎完全由其底层播放引擎决定。Emby 官方 Android 客户端长期使用系统自带播放器(基于 Android MediaCodec + ExoPlayer 组合),这套方案在大多数场景够用,但在几个关键点上存在硬伤。
MPV(mpv.io)是社区公认的开源视频播放引擎之冠。Yamby 选择它作为 Pro 版的核心播放器,有以下几个决定性理由。
ASS/SSA 字幕渲染
这是 MPV 最核心的杀手级功能。ASS(Advanced SubStation Alpha)和 SSA(SubStation Alpha)是动漫字幕常用的两种格式,支持:
- 字幕位置精确到像素的动画效果
- 多色、描边、阴影等复杂样式
- 卡拉 OK 式逐字高亮
- 多种叠加特效
系统播放器对 ASS/SSA 的支持非常有限——要么直接显示乱码,要么丢失动画效果,要么字幕位置偏移。MPV 对这两种格式的渲染是业界最完整的,几乎没有兼容问题。
如果你追番时遇到字幕「要么乱要么丢」的情况,系统播放器是根源。
硬解与软解
Android 上的视频播放有两条路线:
- 硬解(Hardware Decoding):调用设备 GPU 的专用解码单元,功耗低、CPU 占用小,但格式支持受限于芯片厂商
- 软解(Software Decoding):CPU 直接解码,兼容性最强但功耗高
MPV 的优势在于:
- 自动检测设备硬件能力,智能选择硬解 / 软解切换点
- 硬解失败时无缝回退到软解,不会中断播放
- 支持自定义硬解优先级(优先硬解所有可硬解格式 vs 仅对 H.264/H.265 硬解)
滤镜与后处理
MPV 内置了丰富的视频后处理滤镜,在软解模式下可启用:
- 反交错(Deinterlace):解决隔行扫描视频的运动模糊
- 视频锐化:提升低分辨率片源的清晰度
- 色彩校正:调整对比度、饱和度、亮度
这些滤镜在系统播放器上几乎无法实现,或需要安装复杂的第三方插件。
性能对比
| 维度 | 系统播放器 | MPV |
|---|---|---|
| ASS/SSA 字幕 | 部分支持、动画丢失 | 完整支持、无兼容问题 |
| 硬解能力 | 依赖芯片 | 智能切换、自动回退 |
| 滤镜 | 几乎没有 | 反交错、锐化、色彩校正 |
| 启动速度 | 快 | 稍慢(但 Yamby 做了预加载优化) |
| 内存占用 | 低 | 中等(约 100-200MB) |
Pro 版启用方式
MPV 内核在 Yamby 中属于 Pro 功能,但目前作者已将绝大部分 Pro 功能免费开放。在播放器设置中切换「默认播放器」为 MPV 即可启用。切换后重新播放影片生效。