framix 0.1.2

A simple yet powerful Rust-based video editor wrapper for FFmpeg
# Framix (Video Editor)

A Rust-based command-line tool for basic video editing tasks, utilizing `ffmpeg` under the hood.

## Features

- **Combine**: Merge multiple video files into one.
- **Compress**: Reduce video file size using CRF (Constant Rate Factor).
- **Add Music**: Add a background audio track to a video (mixing or replacing).
- **Timelapse**: Speed up a video to create a timelapse effect.
- **Info**: Display detailed metadata about a video file.

## Prerequisites

- [Rust]https://www.rust-lang.org/tools/install (latest stable)
- [FFmpeg]https://ffmpeg.org/download.html (must be added to your system PATH)

## Installation

```bash
git clone https://github.com/PritamP20/framix
cd video-editor
cargo build --release
```

## Usage

You can run the tool using `cargo run -- <command>` or after installing with `framix <command>`.

### 1. Combine Videos
Concatenate multiple video files into a single output.

```bash
framix combine --inputs v1.mp4 v2.mp4 v3.mp4 --output combined.mp4
```

### 2. Compress Video
Compress a video to reduce file size.
- `--crf`: Constant Rate Factor (0-51). Lower is better quality, higher is lower size. Default is 23.

```bash
framix compress --input input.mp4 --output output.mp4 --crf 28
```

### 3. Add Music
Add an audio file to a video.
- `--reduce-original`: Volume of the original video audio (e.g., `0.1` for 10%). Default is `1.0`.

```bash
framix add-music --video input.mp4 --audio music.mp3 --output output.mp4 --reduce-original 0.2
```

### 4. Create Timelapse
Speed up a video. usage of `--speed` factor. Audio is removed.

```bash
framix timelapse --input input.mp4 --output output.mp4 --speed 10.0
```

### 5. Get Video Info
Show metadata about a video file (resolution, codecs, bitrate, etc.).

```bash
framix info --input input.mp4
```

## TUI Mode

Framix now includes an interactive Terminal User Interface (TUI).

```bash
framix tui
# or simply
framix
```

### Keybindings

| Key | Action |
| --- | --- |
| **Shift + Tab** | Switch Tab |
| **Tab** | Autocomplete (files) |
| **↑ / ↓** | Select Field |
| **Enter** | Next Field |
| **Shift + Enter** | Execute Command |
| **Ctrl + C** | Quit |

## License

MIT