https://github.com/zeozeozeo/teacrush
Compresses your videos down to a set size
https://github.com/zeozeozeo/teacrush
8mb amf av1 bubbletea cli discord ffmpeg ffmpreg h264 hevc nvenc qsv tui two-pass-encoding video-compress video-compression video-compressor vp9
Last synced: 6 months ago
JSON representation
Compresses your videos down to a set size
- Host: GitHub
- URL: https://github.com/zeozeozeo/teacrush
- Owner: zeozeozeo
- License: unlicense
- Created: 2025-12-05T16:59:54.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-12-20T11:01:20.000Z (6 months ago)
- Last Synced: 2025-12-22T14:42:39.118Z (6 months ago)
- Topics: 8mb, amf, av1, bubbletea, cli, discord, ffmpeg, ffmpreg, h264, hevc, nvenc, qsv, tui, two-pass-encoding, video-compress, video-compression, video-compressor, vp9
- Language: Go
- Homepage:
- Size: 71.3 KB
- Stars: 5
- Watchers: 0
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Teacrush
A [Bubble Tea](https://github.com/charmbracelet/bubbletea) TUI app for compressing videos down to a certain size. Basically like [8mb.video](https://8mb.video/) but locally.
https://github.com/user-attachments/assets/dbc959b8-cb32-4400-8369-b703c0f47ad0
You need [FFmpeg](https://www.ffmpeg.org/download.html) installed for this to work.
> [!NOTE]
> Do not use the FFmpeg that comes bundled with your Python installation with this (you can check that by running `which ffmpeg` or `where ffmpeg` on Windows).
> If it is located in the Python installation directory, make sure you have your FFmpeg build higher than Python in PATH.
## Installation
Install [Go](https://go.dev/dl/) if you haven't already.
```console
go install github.com/zeozeozeo/teacrush@latest
```
## Usage
```
$ teacrush -h
Teacrush
Usage:
teacrush [input_file] [flags]
Flags:
-gif Encode to GIF
-apng Encode to animated PNG
-avif Encode to animated AVIF
-o [file] Output file path
-v Verbose mode (show command)
-trim [start] [end] Trim video (e.g. -trim 00:01:00 00:02:00 or -trim 1s 5s)
-h, --help, ? Show this help message
```
## Encoder preset mapping
| Level | SVT-AV1 | rav1e | VP9 | AOM-AV1 | H.264 / H.265 | NVENC | AMF (H.264/HEVC) | AMF (AV1) | QSV |
| :----------- | :------ | :------ | :-- | :------ | :------------ | :---- | :--------------- | :----------- | :------- |
| **Fastest** | P12[^1] | S10[^2] | S8 | CPU 8 | ultrafast | p1 | speed | speed | veryfast |
| **Faster** | P10 | S8 | S7 | CPU 7 | veryfast | p2 | speed | balanced | faster |
| **Balanced** | P8 | S6 | S6 | CPU 6 | faster | p4 | balanced | quality | balanced |
| **Better** | P6 | S4 | S4 | CPU 4 | medium | p6 | quality | high_quality | slow |
| **Best** | P4 | S2 | S1 | CPU 3 | veryslow | p7 | quality | high_quality | veryslow |
[^1]: P = `-preset`
[^2]: S = `-speed`