AetherEngine:Apple 平台媒体播放引擎
面向 iOS、tvOS、macOS、visionOS 的媒体播放引擎,处理 HDR、杜比全景声与直播时移,UI 由你自己实现。
- 浏览
- 4
- 访问
- 0
- 下载
- 0
- 版本
- v7.54.0
详细介绍
项目简介
AetherEngine 是一个面向 Apple 平台(iOS、tvOS、macOS、visionOS)的媒体播放引擎。它负责解封装、解码、HDR、杜比全景声、字幕这些难处理的部分,对外只暴露一个 AetherPlayerView(UIKit / AppKit)或 AetherPlayerSurface(SwiftUI),以及少量 async 方法。
不是 AVPlayerViewController,不自带控件,也不做统计上报。绑定视图、调用 play(),再读取发布的属性获取状态即可;播放条、下拉菜单等界面全部由宿主自己实现。视图本身是多态的:引擎会按会话在底层替换承载的 CALayer(原生 AVPlayer 路线用 AVPlayerLayer,dav1d 软件兜底路线用 AVSampleBufferDisplayLayer),宿主无需感知。
主要功能
- 封装格式:MKV、MP4、WebM、MPEG-TS、AVI、ASF / WMV、OGG、FLV、RealMedia、3GP / 3G2;支持远程点播 MPEG-DASH 清单;支持解密后的 DVD-Video 与 Blu-ray ISO,可选标题与章节。
- 视频解码:H.264、HEVC、HEVC Main10 及有硬件支持的 AV1 走 VideoToolbox;AV1(dav1d)、VP9 / VP8、MPEG-2 / MPEG-4、VC-1、RealVideo、Theora 等走 FFmpeg 软件解码。
- HDR:HDR10、HDR10+(逐帧 ST 2094-40)、Dolby Vision(P5、P7、P8.1、P8.4、AV1 P10.x)、HLG、HDR Vivid。
- 音频:AAC、AC3、EAC3、FLAC、ALAC 无损直通;TrueHD、DTS-HD MA、Opus、Vorbis、WMA、RealAudio、LPCM 等;5.1 / 7.1 带正确的
AudioChannelLayout。 - Dolby Atmos:EAC3+JOC 在 HDMI、AirPods 空间音频、蓝牙降混等路线上直通;可选的对象音频渲染可将 TrueHD / DTS:X 的对象音频渲染成扬声器布局。
- 高度声道:TrueHD 与 DTS:X 对象音频渲染为 5.1.2 至 9.1.6 的扬声器床,以无损 24-bit PCM 输出。
- 直播电视:DVR 时移、GPU 去隔行(yadif_videotoolbox + Metal,默认场率输出),并提供 CPU bwdif 兜底。
- 字幕:文本字幕(SRT / ASS / SSA / VTT / mov_text)、位图字幕(PGS / DVB / DVD,以及本地 VobSub
.idx+.sub)、带内 CEA-608 隐藏字幕、DVB teletext,外部字幕文件可作为一等轨道注册与选择。 - 纯音频与后台:
LoadOptions.audioOnly提供精简管线,tvOS / iOS 上接入系统 Now-Playing;支持后台音频与画中画。
安装与使用
工程以 Swift Package 形式提供(README 指向 Swift Package Index),要求 Swift 6.0+。集成后宿主只需绑定视图、调用 play(),再读取公开属性获取播放状态,例如:
player.play()
完整的 API 用法与各格式细节见官方文档站 https://aetherengine.superuser404.de。
注意事项
- 引擎不提供任何 UI 控件,播放控制界面需宿主自行实现。
- 软件解码是默认路线,只有 HEVC、H.264 和可硬件解码的 AV1 走原生路径。
- 部分能力需要通过
LoadOptions显式开启,例如objectAudioRendering、preferDualLayerDolbyVision、upscalesLowResolutionVideo。 - 采用 LGPL-3.0 + App Store Exception 许可。
- 已有 Sodalite、AetherPlayer、Plozz、Syravo 等客户端基于该引擎构建。
本作品整理自 GitHub 开源项目 superuser404notfound/AetherEngine,原作者 @superuser404notfound。中文介绍由 AI 根据项目 README 整理,以原仓库为准。
更新记录
- v7.54.0当前版本
7.54.0 - seek(to:exact:), FLAC seeks, rate-switch relock, subtitle and live fixes
- v7.53.1
7.53.1 - tvOS device builds under Xcode 27.2, remote-HLS buffered position
- v7.53.0
新增默认关闭的低分辨率 SDR 上采样(LoadOptions.upscalesLowResolutionVideo):低于 1080p 的 8-bit SDR 源经 Apple VTLowLatencySuperResolutionScaler 与 MetalFX 放大,超时自动降级或关闭,需 OS 26。
评论