https://github.com/cbenoit/media-cutter
GTK based tool using ffmpeg and optionally SoX to easily process audio and video files.
https://github.com/cbenoit/media-cutter
audio-processing graphical-applications rust video-processing
Last synced: 2 months ago
JSON representation
GTK based tool using ffmpeg and optionally SoX to easily process audio and video files.
- Host: GitHub
- URL: https://github.com/cbenoit/media-cutter
- Owner: CBenoit
- License: mit
- Created: 2019-01-07T00:04:43.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2019-01-14T21:55:36.000Z (over 7 years ago)
- Last Synced: 2026-02-07T21:26:13.411Z (5 months ago)
- Topics: audio-processing, graphical-applications, rust, video-processing
- Language: Rust
- Homepage:
- Size: 85.9 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README

# Media Cutter
Licensed under the MIT license.

[ffmpeg](https://www.ffmpeg.org/) is used for most audio and video processing.
[SoX](http://sox.sourceforge.net/) is an optional tool used for noise reduction filter.
I originally made this software to easily cut audio files
using ffmpeg as well as applying some filters quickly.
However, it can also process video files without further modification thanks to `ffmpeg`
hence "Media Cutter" instead of "Audio Cutter".
Also, I wanted to try some graphical libraries in Rust.
In this case, I had a quite good experience using [gtk-rs](https://gtk-rs.org/) despite
the boiler-plate code required to handle ownership and borrowing in the numerous clojures.
## Dependencies
- gtk 3.10
- [ffmpeg](https://www.ffmpeg.org/) (tested with v4.1, but older might works perfectly as well. No new fancy feature is used to my knowledge)
- **Optional**: [SoX](http://sox.sourceforge.net/) (tested with v14.4, but again, older might works perfectly)
Present software was used and tested only on *Linux*.
It might works on Windows too, but since aformentioned tools are directly used
by command line you might get some `command not found` troubles.
Hint: make sure executables are accessibles using the `%PATH%`.
I might add a way to manually specify path to executables later though.
## Building
Thanks to the Rust package manager, `cargo`, building is as simple as executing
```
$ cargo build --release
```
inside the project directory.
It will build a self-contained executable `media_cutter` inside `target/release/` folder.
If you need to install the rust compiler and cargo, see [rustup](https://github.com/rust-lang/rustup.rs) for an easy install.
*Additional step*: you can use the [strip](https://sourceware.org/binutils/docs/binutils/strip.html)
command to discard object files from the executable and get its size under 1M.
```
$ strip target/release/media_cutter
```
## Pre-built binaries
See released binaries [here](https://github.com/CBenoit/media-cutter/releases).
## Installing
On *Linux*, simply copy/move the executable in a folder present in the `$PATH` environment variable.
`/usr/local/bin` is a good choice for manually installed (installed without package manager) softwares.