Releases: ali-dev178/frame
Releases · ali-dev178/frame
Release list
v0.3.0
Everything since v0.2.0 — a much richer app.
Highlights
- Enterprise app shell — a left sidebar to switch between Frame photos and Make a video workspaces.
- Per-photo Framed / Original — photos added on the Frame tab are framed; photos added on the Video tab use the untouched original, each toggleable per photo.
- Full video editor — per-clip motion, color look & transition; title / text cards; drag-reorder, timeline zoom, snap-to-cut, editable clip length (up to 10 min); save any frame as a PNG.
- Audio depth — per-track volume, fade in/out, auto-duck under voice, and microphone voiceover recording.
- Export heads-up — estimated size, resolution, quality, and whether your music fits the video — plus live progress with time-left and a clean Cancel.
- Clear file guidance — explains HEIC / unsupported / non-image drops (with iPhone tips) instead of failing silently.
- Open source — MIT licensed, with a full README, screenshots, and contributor docs.
Downloads
- Windows: `Frame-Setup-0.3.0.exe`
- macOS (universal): `Frame-0.3.0-universal.dmg` or `.zip`
Builds are unsigned: on Windows click More info → Run anyway; on macOS approve under System Settings → Privacy & Security after first launch. The lossless photo guarantee is unchanged and continuously tested.
v0.2.0
Formats for TikTok / YouTube / X / custom sizes · session autosave & restore · settings presets · per-clip captions · color looks · slide-up & iris transitions · installable offline PWA (web build) · new app icon. Pixel-perfect guarantee unchanged: Still + Cut + Look:None + no caption = bit-identical frames.
v0.1.0
Migrate muxer: deprecated mp4-muxer -> Mediabunny mp4-muxer is deprecated upstream; Mediabunny (same author) supersedes it. Like-for-like migration of the fast exporter's muxing layer: - Muxer/ArrayBufferTarget -> Output + Mp4OutputFormat(fastStart "in-memory") + BufferTarget, per the official migration guide - addVideoChunk/addAudioChunk -> EncodedVideoPacketSource / EncodedAudioPacketSource .add(EncodedPacket.fromEncodedChunk(...)); adds are async, so per-track promise chains preserve decode order behind the sync encoder callbacks - our own encoding logic (pickAvc codec probe, AAC bitrate ladder, queue backpressure) is unchanged New e2e regression test encodes a real 1s clip through VideoEncoder + Mediabunny and asserts a valid MP4 (ftyp) comes out — video-only so it runs on Linux CI too (no AAC encode in Linux Chromium). Finding along the way: Playwright's chromium-headless-shell build crashes on VideoEncoder.encode despite isConfigSupported returning true — browser tests now use the full chromium build (channel "chromium"). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>