Movie Slicer & Joiner
Free • Open Source • MIT Licensed
- Frame-accurate editing - Step through video frame-by-frame for precise cuts
- Visual timeline with range selection and playback scrubbing
- Thumbnail previews for each segment
- Drag-and-drop video loading
- Multiple segments - Create unlimited video segments from a single source
- Reorderable segments - Move segments up/down to arrange final output
- Variable playback speed - 0.25× to 2.0× speed control
- Keyboard shortcuts - Efficient editing workflow
- Multi-file concatenation - Join multiple videos into one
- Per-file trimming - Trim each video individually before joining
- Three transition modes:
- None - Instant cuts (lossless, fastest)
- Fade to Black - Smooth fade transitions between clips
- Crossfade - Blend clips together for seamless transitions
- Customizable transition duration - Adjust fade/crossfade timing (100-5000ms)
- Visual previews - See thumbnails of each video segment
- Drag-and-drop support - Add multiple files at once
- Built on FFmpeg for industry-standard video processing
- Lossless output option for instant cuts (no re-encoding)
- High-quality re-encoding with H.264 for transitions
- Maintains original video quality and audio
- Windows 10/11 (64-bit)
- .NET 8.0 Runtime - Download here
- FFmpeg - Included in release, or download separately
- Download the latest release from Releases
- Extract the ZIP file
- Run
Moonsplice.exe - Drag and drop a video file to begin editing
- Drag and drop a video file onto the window, OR
- Click the placeholder area and browse for a file
- Use the timeline slider to preview your video
- The left thumb (green) sets the start point
- The right thumb (green) sets the end point
- The yellow marker shows current playback position
- Drag any thumb to preview that position in the video
- Use Left/Right arrow keys to step through frame-by-frame
- Use , and . to jump back/forward 5 seconds
- Use K and L to jump back/forward 15 seconds
- Adjust playback speed with the speed controls (0.25× - 2.0×)
- Click Add Segment (or press
Enter) to save the current range - Segments appear in the left panel with thumbnail previews
- Add as many segments as needed
- Play - Preview a specific segment
- Move Up/Down - Reorder segments for final output
- Delete - Remove unwanted segments
- Click Export to render your final video
- Choose output location and filename
- Select transition mode in Settings (None/Fade to Black/Crossfade)
- Click Join in the top navigation bar
- Drag and drop multiple video files onto the window, OR
- Click Add Files to browse
- Each video has its own range slider
- Drag the handles to trim start/end of each clip
- Trim range shows in real-time
- Use Move Up/Down buttons to arrange video order
- Final output will play videos in the order shown
- Click Join & Export
- Choose transition mode in Settings:
- None - Instant cuts (lossless, fast)
- Fade to Black - Configurable fade transitions
- Crossfade - Smooth blending between clips
| Action | Default Key | Customizable |
|---|---|---|
| Set Segment Start | [ |
✅ |
| Set Segment End | ] |
✅ |
| Jump Back 5s | , |
✅ |
| Jump Forward 5s | . |
✅ |
| Jump Back 15s | K |
✅ |
| Jump Forward 15s | L |
✅ |
| Add Segment | Enter |
✅ |
| Play/Pause | Space |
✅ |
| Frame Back | ← |
❌ (Fixed) |
| Frame Forward | → |
❌ (Fixed) |
| Volume Up | ↑ |
❌ (Fixed) |
| Volume Down | ↓ |
❌ (Fixed) |
To customize shortcuts:
- Go to Settings tab
- Click the key field you want to change
- Press your desired key
- Settings auto-save
- Always on Top - Keep Moonsplice window above other applications
Choose how segments are joined together:
- None - Direct cuts with no transition (lossless, instant)
- Fade to Black - Brief fade to black between segments
- Crossfade - Smooth blend between segments
Note: Transitions require re-encoding and take longer to export
- Customize fade/crossfade duration in milliseconds (100-15000ms)
- Default: 1000ms (1 second)
- Shorter durations = quicker transitions
- Longer durations = smoother, more gradual transitions
- FFmpeg Path - Location of
ffmpeg.exe(default: included in app folder) - Browse to use a custom FFmpeg installation if needed
- Use None transition mode for quick exports (no re-encoding)
- Close other applications when exporting large videos
- Ensure sufficient disk space (exports can be large)
- Use original, high-quality source videos
- Avoid re-encoding multiple times (quality degrades)
- Use Crossfade sparingly (computationally expensive)
- Use arrow keys to step through frames for precise cuts
- The yellow playback marker is independent of the range thumbs
- Drag range thumbs to preview start/end positions
- Press Play to start from the yellow marker position
- Name your output files clearly (e.g.,
ProjectName_v1.mp4) - Keep source videos in one folder
- Export intermediate versions before making major changes
Solution:
- Go to Settings tab
- Click Browse next to FFmpeg Path
- Navigate to
ffmpeg.exelocation - Select the file and click OK
Possible causes:
- Unsupported format (try MP4, AVI, MKV, MOV)
- Corrupted video file
- Missing codecs
Solution: Convert video to MP4 using a tool like HandBrake first
Causes:
- Using Fade to Black or Crossfade transitions (requires re-encoding)
- Very large or high-resolution videos
Solutions:
- Use None transition mode for instant exports
- Export smaller sections separately
- Reduce transition duration in Settings
- Upgrade to faster hardware (SSD, more RAM)
Solution:
- Ensure FFmpeg is properly configured
- Check that source video is not corrupted
- Restart Moonsplice
Solution: This was a bug in early versions. Ensure you're using the latest release where transitions start near the end of clips, not at the beginning.
Solution: This is expected behavior:
- Dragging range thumbs (green) previews that position without moving the playback marker
- Dragging the yellow marker or using skip buttons moves the actual playback position
- Press Play to start playback from the yellow marker
Input: MP4, AVI, MKV, MOV, WMV, FLV, WebM
Output: MP4 (H.264 video, AAC audio)
- Lossless Mode (None transition): Direct stream copy, no quality loss
- Re-encoded Mode (Fade/Crossfade): H.264 codec, CRF 18 (high quality)
- Audio: AAC 192kbps
- OS: Windows 10/11 (64-bit)
- RAM: 4GB minimum, 8GB recommended
- Storage: 500MB for app + space for video files
- CPU: Multi-core processor recommended for faster exports
- Visual Studio 2022 or later
- .NET 8.0 SDK
- FFmpeg binaries (
ffmpeg.exeandffprobe.exe)
- TopazWPF - Custom UI framework (referenced as local project)
- .NET 8.0 Windows Desktop Runtime
git clone https://github.com/stephenmthomas/moonsplice.git
cd moonsplice
# Place TopazWPF project in ../../TopazWPF/TopazWPF/ or adjust .csproj reference
dotnet restore
dotnet build -c ReleaseMoonsplice/
├── MainWindow.xaml # Main UI layout
├── MainWindow.xaml.cs # UI logic and event handlers
├── FFmpegWrapper.cs # FFmpeg integration
├── VideoSegment.cs # Segment data model
├── AppSettings.cs # Settings persistence
├── App.xaml # Application resources
└── Moonsplice.csproj # Project configuration
Contributions are welcome! Please feel free to submit a Pull Request.
- Additional transition effects
- Video format support improvements
- UI/UX enhancements
- Performance optimizations
- Bug fixes
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- FFmpeg - Video processing engine (ffmpeg.org)
- TopazWPF - Custom WPF UI framework
- BandiCut - If they didn't force you to pay to remove a splash screen, this app would not exist.
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Video splicing with frame-accurate editing
- Multi-file video joining
- Three transition modes (None, Fade to Black, Crossfade)
- Customizable transition duration (100-5000ms)
- Customizable keyboard shortcuts
- Per-file trimming in Join mode
- Thumbnail generation from video frames
- Variable playback speed control (0.25× - 2.0×)
- Independent timeline controls (range thumbs + playback marker)
- Dark theme UI with modern design
- Settings persistence across sessions
Made with 🩸💧😭 for video editors everywhere



