Compress videos using highly efficient & modern codecs (hardware accelerated) 🚀
My two motivations for this project:
- Learning Tauri & SvelteKit and Go
- I've tried many video compressors, but some were quite clunky and not user-friendly, others didn't support newer codecs and hardware acceleration. I wanted to create a simple and easy-to-use video compressor that anyone can use.
- HEVC + AMF (AMD hardware acceleration)
- Windows support
- View input & output file info/metadata
- Progress bar, estimated time, FPS, realtime log
- Estimate file size before compression
- Batch processing
- NVIDIA hardware acceleration
- Add more codecs
- Linux
cd .\frontend\compressorui\
bun i
bun run tauri devcd .\backend\
go get .
go run .
Video: https://pixabay.com/de/videos/verkehr-stadt-stadtbild-urban-88921/
I downloaded the source video and cut it to be 99.9 MiB (16s, 717ms).
Quality tests were done with MSU_VQMT_14.1r12839_free_64, metric Netflix VMAF, color Y, colorspace auto YUV.
System:
- RX 6750 XT 12 GB GDDR6
- 32GB RAM @ 3200 MHz
- Ryzen 5 5600X
- Windows 11
Presets are my own collections of arguments I built into this program, NOT FFmpeg/encoders preset option! "No" means that the only FFmpeg arguments used are the ones to set the codec, bitrate and to encode the audio in 64k Opus.
| Preset (Bitrate)¹ | Bitrate² | File Size | VMAF (mean)³ | Encoding Time |
|---|---|---|---|---|
| No 4000 | 5.0 | 10.2 MiB | 59.71 | 11.34s |
| UltraSlow 4000 | 6.1 | 12.2 MiB | 64.42 | 81.95s |
| Optimal 800-1600 | 15.7 | 32.0 MiB | 79.241 | 9.27s |
¹ Target bitrate in Kbps, as set in the UI.
² Actual bitrate in Mbps of the output video, as reported by MediaInfo.
³ Whereas 100 is the best possible score, and means - according to the metric - practically indistinguishable quality compared to the source video.
