Open Source · MIT License

Native video composition
for Expo

Hardware-accelerated video editing on iOS and Android. Real-time preview, 9 filters, 8 transitions, audio mixing, and interactive overlays — no proprietary SDKs, no per-minute billing.

$ npm i @projectyoked/expo-media-engine
Used in production Project Yoked — workout training app (iOS & Android)
🎬

Multi-track composition

Stack video, audio, text, and image tracks with per-clip timing, transforms, and blending.

Live preview engine

Frame-accurate preview backed by AVPlayer (iOS) and OpenGL ES 2.0 (Android). Filters and transitions match the export exactly.

🎨

9 filters · 8 transitions

Grayscale, sepia, warm, cool, vignette and more. Crossfade, slide, zoom, and fade transitions — all with adjustable duration.

🔊

Full audio mixing

Multi-track audio with per-clip volume, fade in/out, and keyframe-based volume automation.

📱

iOS & Android

AVFoundation on iOS. MediaCodec + OpenGL ES 2.0 on Android. True native performance on both platforms.

🧩

Interactive overlays

useCompositionOverlays feeds resolved text/image data to your Skia layer — same coordinate space, drag/resize ready.

✂️

Stitch & compress

Fast mp4parser concatenation with auto-fallback transcoding. H.264/H.265 compression with quality presets.

🔒

Zero lock-in

Pure MIT-licensed Swift and Kotlin. No API keys, vendor accounts, or recurring subscription costs.

Choose a release line

LineInstallDocs
Pre-release (1.0.0-alpha-4) npm i @projectyoked/expo-media-engine Full API reference →
Stable (0.1.x) npm i @projectyoked/expo-media-engine@0.1.3 Stable docs →

The pre-release line is npm latest and contains the full feature set. Stable (0.1.x) is not default — install @0.1.3 explicitly for basic single-video export and audio utilities only.

Background

Built at Project Yoked LLC for the Project Yoked fitness app. We needed native video composition and real-time preview without vendor lock-in or third-party SDK fees, so we built it in-house and released it under the MIT license.