# LosslessCut 🎥 [![Travis](https://img.shields.io/travis/mifi/lossless-cut.svg)]()
![Screenshot](screenshot.jpg)
Simple, cross platform video editor for lossless trimming / cutting of videos. Great for rough processing of large video files taken from a video camera, GoPro, drone, etc. Lets you quickly extract the good parts from your videos. It doesn't do any decoding / encoding and is therefore extremely fast and has no quality loss. Also allows for taking JPEG snapshots of the video at the selected time. This app uses the awesome ffmpeg🙏 for doing the grunt work. Also supports lossless cutting in the most common audio formats.
ffmpeg is now included in the app! 🎉
For an indication of supported formats / codecs, see https://www.chromium.org/audio-video
![Demo](https://giant.gfycat.com/HighAcclaimedAnaconda.gif)
## Installing / running
- Download [latest LosslessCut from releases](https://github.com/mifi/lossless-cut/releases)
- Run LosslessCut app/exe
## Documentation
### Typical flow
- Drag drop a video file into player to load or use ⌘/CTRL+O.
- Press SPACE to play/pause
- Select the cut start and end time
- Press the scissors button to export the slice
- Press the camera button to take a snapshot
The original video files will not be modified. Instead it creates a lossless export in the same directory as the original file with from/to timestamps. Note that the cut is currently not precise around the cutpoints, so video before/after the nearest keyframe will be lost. EXIF data is preserved.
### Keyboard shortcuts
- SPACE, k Play/pause
- j Slow down video
- l Speed up video
- ← Seek backward 1 sec
- → Seek forward 1 sec
- . (period) Tiny seek forward
- , (comma) Tiny seek backward
- i Mark in / cut start point
- o Mark out / cut end point
- e Export selection (in the same dir as the video)
- c Capture snapshot (in the same dir as the video)
## Development building / running
This app is built using Electron. Make sure you have at least node v4 with npm 3. The app uses ffmpeg from PATH when developing.
```
git clone https://github.com/mifi/lossless-cut.git
cd lossless-cut
npm install
```
### Running
In one terminal:
```
npm run watch
```
Then:
```
npm start
```
### Building package
```
npm run download-ffmpeg
npm run extract-ffmpeg
npm run build
npm run icon-gen
npm run package # builds all platforms
```
## Credits
- App icon made by [Dimi Kazak](http://www.flaticon.com/authors/dimi-kazak "Dimi Kazak") from [www.flaticon.com](http://www.flaticon.com "Flaticon") is licensed by [CC 3.0 BY](http://creativecommons.org/licenses/by/3.0/ "Creative Commons BY 3.0")