Skip to content

About

An open-source mobile video editor in Rust while using Kotlin as the UI framework.

Resources

Stars

69 stars

Watchers

2 watching

Forks

Repository files navigation

CapCraft's app icon

CapCraft for Android

CapCraft-android is an open-source reimplementation of the CapCut android app.
Many credits to the original maintainers, jub0t and the Concat contributors.

Get it on GitHub Get it on Obtainium

Rust engine Kotlin and Jetpack Compose Minimum: Android 10 (API 29) Target: Android 16 (API 36) License: AGPL-3.0-or-later Status: beta

Editing · Filters, effects & transitions · Text & stickers · Captions & sound · Export & Home · Planned features · Building


The editor: a moving gradient test clip with the title Made with CapCraft on a pink plate and a yellow WOW sticker, the transport row, and the timeline with the main track, a sticker row, a Rainbow effect row and Add audio, over the tools Edit, Audio, Text, Effects, Overlay, Captions, Filters, Adjust and Stickers
The editor: the preview, the transport row, a timeline with rows for text, stickers, effects and sound, and the tools.


Editing

A clip selected on the main track with its trim handles and length, and the clip tools: Split, Volume, Animations, Effects, Delete, Speed, Beats and Crop The Sound FX panel: a search field, the kinds Swooshes, Pops, Bells, Booms, Game, Cartoon and Transition, and the sounds Whoosh, Swoosh down, Whip, Riser, Fall and Pop, each with its length and an add button
A clip selected: split, volume, animations, speed, crop and more Sound effects, made by the app

Filters, effects and transitions

The Filters panel on the Cinematic shelf: None, Teal & Orange, Moody (chosen) and Cool Blue, each a preview of the clip itself, and an intensity slider with Apply to all The Video effects panel: the shelves Motion, Light, Distort, Retro, Stylize, Split and Blur, and the effects Shake, Flash, Pulse, Glitch, VHS, Old Film and Rainbow, each previewed on the frame
80+ filters, previewed on the clip Video effects, on a clip or on a row of their own

The Transitions panel at a cut: None, Dissolve, Blur Dissolve, Film Burn, Zoom, Slide, Push, Spin, Swirl, Glitch, RGB Split, Linear Wipe, Iris, Shape Wipe, Light Leak and Cube, every tile animating with the two clips
Transitions, every tile animated with your own clips.


Text and stickers

The text sheet for Made with CapCraft: the Templates, Fonts, Styles, Effects, Animations and Bubbles tabs, and templates such as BIG NEWS, Weekend, SALE, Day One, WOW!, ROAD TRIP, Cheers, LIVE, TOP 5, Sunday, Oh no!, Ready?, vibes, Chapter 1 and THE END The Stickers panel on its Labels shelf: NEW, SALE, LIVE, WOW, OMG, LOL, HOT and TOP 10, with the WOW label placed on the preview
Text: templates, fonts, styles, word art, animations and bubbles Stickers, labels and doodles, drawn by the app

Captions and sound

Captions made on the phone from a speech test clip: The quick brown fox jumps over on a black plate, a row of caption clips on the timeline, and the tools Enter captions, Auto Captions, Caption templates, Auto lyrics and Import captions
Captions, made on the phone from what is said.


Export and Home

The export settings: Video, GIF and Photo tabs, and sliders for resolution (480p to 4k, set at 1080p), frame rate (24 to 60, set at 30) and bitrate, with the estimated file size Home: New video and Edit photo, a row of recent projects, and the tools AutoCut, Retouch, Photo tools, Shoot and record, Auto enhance, Cover maker, Auto captions, Remove background, Adjust speed and Audio tools
Export at 480p to 4K, 24 to 60 fps, or as a GIF or photo Home: start a video or a photo, then your projects

Planned features

CapCraft for Android is in beta.

Area Status
Projects from the phone's videos and photos, or shared to the app; autosave; rename, duplicate, delete ✅
The timeline: trim, move, split, delete, duplicate, replace, multi-select, undo and redo; pinch to zoom ✅
Speed and curves, freeze frame, reverse, volume and fades, crop, mask, chroma key, keyframes ✅
Overlays and layers with blend modes, opacity, transform and animations ✅
Filters, adjustments (HSL, curves, colour wheels), video effects, body effects and transitions ✅
Text: templates, fonts, styles, word art, bubbles, animations and text to speech ✅
Stickers, labels, shapes and drawing ✅
Captions made on the phone, typed captions, caption templates and imported subtitles ✅
Sound effects, voiceover, extract audio, voice effects, noise reduction and isolate voice ✅
Remove background (a model downloaded once, run on the phone) ✅
Aspect ratios, backgrounds, cover, AutoCut, collage ✅
Export at 480p to 4K, 24 to 60 fps, GIF and photo, saved to the gallery and shared ✅
A music library, downloadable effects and templates ⬜
Generative AI, cloud storage, accounts 🚫 CapCraft is a local app

✅ works today · 🚧 in progress · ⬜ not started · 🚫 not planned


Building Instructions

One Gradle command builds the app: it compiles the Rust engine with cargo-ndk and generates the Kotlin bindings. FFmpeg and sherpa-onnx are fetched and built first, once.

  • Clone this repository
  • Make sure you have at least 10 GB of free disk space
  • In src, with ANDROID_HOME pointing at your Android SDK:
    scripts/ffmpeg-mobile.sh aarch64-linux-android
    scripts/sherpa-mobile.sh aarch64-linux-android
    eval "$(scripts/mobile-env.sh aarch64-linux-android)"
    
  • then enter src/crates/capcraft-android/android and run ./gradlew assembleRelease.

Build time dependencies:

required tools
    Linux or macOS (on Windows, WSL)
    rustup (it installs the Rust release rust-toolchain.toml names)
    rustup target add aarch64-linux-android
    cargo install cargo-ndk --version 4.1.2 --locked
    Android SDK (API 37) and NDK 29.0.14206865
    JDK 17 or newer
    cmake, make, clang (libclang-dev), curl

Builds are only tested in WSL Ubuntu on Windows 11.


License

AGPL-3.0-or-later, CapCraft for Android is not affiliated with, endorsed by or connected to ByteDance or CapCut.


Misc info for myself

Try to use semantic commit messages. Use feat: / fix: / chore: / docs: / etc.

About

An open-source mobile video editor in Rust while using Kotlin as the UI framework.

Resources

Stars

69 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages