A minimal, focused Android video trimmer.
- Nondestructive trimming — Uses native MediaMuxer stream copy to avoid re-encoding
- Precision mode — Hold trim handles for 2s to zoom 4x for frame-accurate trimming
- Share intent support — Receive videos shared from other apps
- Audio removal option — Toggle to strip audio track
- Replace or save new — Choose to overwrite original or create new file
- Instant share — Opens share sheet immediately after export
Open in Android Studio and build, or:
# First time setup (if no gradlew)
gradle wrapper
# Build debug APK
./gradlew assembleDebugAPK output: app/build/outputs/apk/debug/app-debug.apk
The app uses Android's native MediaMuxer for stream copy (instant, no quality loss). No FFmpeg dependency required.
When you hold a trim handle for 2 seconds, the timeline zooms 4x around that handle. This gives you frame-accurate control. Release to return to normal view.
All formats supported by Android's MediaMuxer:
- MP4 (H.264, H.265/HEVC)
- WebM
- 3GP
READ_MEDIA_VIDEO(Android 13+) /READ_EXTERNAL_STORAGE(older)VIBRATEfor haptic feedback
app/
├── MainActivity.kt # Entry point, permission handling
├── VideoRazorApp.kt # Application class
├── ui/
│ ├── VideoRazorScreen.kt # Main screen with player + controls
│ ├── TrimTimeline.kt # Thumbnail strip + trim handles + zoom
│ └── theme/Theme.kt # Dark monochromatic theme
└── export/
└── VideoExporter.kt # Native MediaMuxer-based nondestructive export
MIT