A standalone native macOS media player built on AetherEngine.
Drop or open a video or audio file, play it, switch audio and subtitle tracks, scrub with live thumbnail previews, and grab full-resolution frames.
Universal binary (Apple Silicon + Intel), macOS 14.0+.
Grab the latest notarized .dmg from the Releases page, drag AetherPlayer to your Applications folder, and launch it. The app keeps itself current through built-in auto-updates (Sparkle), so you only have to download it once.
- Plays what other players choke on. FFmpeg-backed decoding through AetherEngine, with an on-screen
native/swbadge so you can see which rendering path a file took. - Audio too, with system Now Playing. Open a music or audio file and AetherPlayer shows a dedicated Now Playing view (embedded cover art over a blurred backdrop, or a generated gradient when there is none). Playback wires into Control Center, the lock screen, and the keyboard media keys via
MPNowPlayingInfoCenter. - Audio and subtitle track switching from the menu bar or the tracks popover, with an "Off" option for subtitles.
- Scrub bar with live preview. Hover the timeline for a thumbnail, click to seek, or drag to scrub.
- Frame capture. Save the current frame at full resolution (Cmd+Shift+S, or the camera button).
- Recents with thumbnails. Recently opened files show disk-cached keyframe thumbnails for quick visual recognition.
- Resume where you left off. Reopen a file and pick up at your last position.
- Folder playlists. Open a folder and step through its videos with Cmd+Left / Cmd+Right.
- Stays out of the way. Controls auto-hide during video playback and reappear on mouse movement.
| Action | Effect |
|---|---|
| Space / click | Play / pause |
| Double-click / F | Toggle fullscreen |
| Left / Right | Seek -/+ 10s |
| Cmd+Left / Cmd+Right | Previous / next in folder |
| Up / Down | Volume +/- 5% |
| M | Mute / unmute |
| Escape | Exit fullscreen, else stop |
| Cmd+O | Open file |
| Cmd+Shift+O | Open folder |
| Cmd+Shift+S | Save current frame |
| Cmd+Shift+T | Toggle always on top |
The system media keys and Control Center transport also drive play / pause and track stepping, handy for audio.
Generated by XcodeGen:
brew install xcodegen
xcodegen generate
xcodebuild -project AetherPlayer.xcodeproj -scheme AetherPlayer -destination 'platform=macOS' buildDEVELOPER_ID="Developer ID Application: Your Name (TEAMID)" \
NOTARY_PROFILE="NOTARY_PROFILE" \
./Scripts/build-dmg.shProduces a notarized, stapled universal .dmg. Set DEVELOPER_ID for a signed local build; add NOTARY_PROFILE to notarize for distribution.
Vibe-coded and maintained by Vincent Herbst in close pair-programming with Claude (Anthropic). The heavy lifting (demux, decode, HDR, audio) lives in AetherEngine; this repo is the macOS shell around it.
LGPL-3.0, matching AetherEngine and upstream FFmpeg.
