播放 iOS 原生不支持的 AVI、RMVB、MKV 视频
为什么 iOS 放不了这些格式
iOS 系统自带的视频 App(照片、Safari 内嵌播放器)基于 Apple 的 AVFoundation 框架,只支持有限的编码格式:
- 视频编码:H.264、H.265/HEVC、MPEG-4 Part 2、Motion JPEG
- 容器格式:MP4、MOV、M4V
而 AVI、RMVB、MKV 分别使用的是:
- AVI——微软的容器格式,可以装各种编码(DivX、XviD、RV40),iOS 不认
- RMVB——Real Networks 开发,视频编码 RV40 / RV50,iOS 完全没有解码器
- MKV——开源容器格式,里面可以装 H.264/H.265(iOS 原生认识)也可以装其他编码(不认识)
这就是为什么你从网上下的老动漫 AVI 文件传到 iPhone 后,"照片"App 里根本找不到它。
XP3Player 怎么做到的
XP3Player 使用了第三方开源的视频解码库(类似 VLC 的 libVLC 或 FFmpeg),绕过了 iOS 原生的 AVPlayer 限制。它直接解码视频帧然后通过 OpenGL ES2 渲染到屏幕上。
播放操作
- 把视频文件传输到 XP3Player 的 Documents 目录(和 GalGame 同样的方式)
- 在 XP3Player 文件管理里找到视频文件
- 直接点击播放即可
播放界面的操作:
- 点击屏幕 = 显示 / 隐藏播放控件
- 左右滑动 = 快退 / 快进(精度较低,约 ±10 秒)
- 上下滑动屏幕左侧 = 亮度调节
- 上下滑动屏幕右侧 = 音量调节
性能提示
- AVI / RMVB——老格式,编码效率低但画面也简单,iOS 设备轻松应对
- MKV 1080p——主流画质,大多数 A12 及以上设备硬件解码无压力
- MKV 4K / HEVC 10bit——对性能要求较高,老设备(A10/A11)可能掉帧
如果播放高清 MKV 时掉帧严重,可以:
- 关闭硬件解码(改为软件解码)试试
- 降低视频分辨率(电脑上转码到 1080p 或 720p)