Core Android port of your text-based video editor:
- Video selection from storage
- Audio extraction with
ffmpeg - Transcription with
whisper.cppCLI + model - Word-based cut marks (delete words -> delete time segments)
- Export edited MP4 with
ffmpeg
This is the core pipeline implementation (not full polished editor UI):
- Pick video
- Transcribe
- Tap words to mark cuts
- Undo/Clear cuts
- Export edited video
VidEditJetpackCompose/
The app uses FFmpeg via Android SDK (FFmpegKit), so no standalone ffmpeg binary is required.
Whisper CLI is packaged as native libs in the APK:
app/src/main/jniLibs/arm64-v8a/libwhisper_cli.soapp/src/main/jniLibs/armeabi-v7a/libwhisper_cli.so
The app expects this model in app internal storage:
files/models/ggml-tiny-q5_1.bin
At startup it copies model from bundled assets:
app/src/main/assets/models/ggml-tiny-q5_1.bin
If not found, the app launches but transcription/export will be blocked with a setup error message.
Important:
libwhisper_cli.somust be an Android Linux executable for each supported device ABI.- After adding/replacing model in assets, reinstall the app so startup extraction runs again.
Bundled now:
app/src/main/jniLibs/arm64-v8a/libwhisper_cli.soapp/src/main/jniLibs/armeabi-v7a/libwhisper_cli.soapp/src/main/assets/models/ggml-tiny-q5_1.binis included in this project.
whisper.cppcommand uses JSON output (-oj) and parses word/segment/token formats.ffmpegexport uses trim+concat filter graph from kept segments.- Export output goes to app external files directory with timestamped filename.