Crates.io | ffzap |
lib.rs | ffzap |
version | 0.1.3 |
source | src |
created_at | 2024-10-17 18:10:12.802279 |
updated_at | 2024-10-28 00:05:21.248666 |
description | ⚡ A multithreaded CLI for digital media processing using ffmpeg. If ffmpeg can do it, ffzap can do it - as many files in parallel as your CPU can handle. |
homepage | |
repository | https://github.com/CodeF0x/ffzap |
max_upload_size | |
id | 1413488 |
size | 20,264 |
ffzap ⚡ is a simple, fast command-line tool for processing media files with ffmpeg. As it's multithreaded and can run as many tasks in parallel as your system can handle, it's perfect for converting, compressing, or editing audio and video files quickly and efficiently.
Because it uses ffmpeg under the hood, it supports any media file processing that ffmpeg can handle.
To install ffzap, clone the repository and build the project:
git clone https://github.com/CodeF0x/ffzap
cd ffzap
cargo build --release
Alternatively, you can install it from crates.io.
cargo install ffzap
ffzap's usage is almost identical to ffmpeg, consider this simple example:
ffzap -i vids/test-1.webm -f "-c:v libx264 -b:v 1000k" -o transcoded.mp4
Mind that the ffmpeg processing options go into the -f
argument (short for --ffmpeg-options
), need to be passed
as a string and without the file name.
With a single file it doesn't really make sense to use ffzap, so consider this more advanced example:
ffzap -i "vids/**/*.{mp4,mkv}" -f "-c:v libx264 -b:v 1000k" -o transcoded/{{name}}.mp4 -t 4
This command takes all videos in vids
and its subfolders ending in .mp4
and .mkv
, processes them using the
options provided by -f
and saves them to a (new) directory called transcoded
, keeping the original filename and
changing the file extension to .mp4
while processing 4 files in parallel.
Notice that, when using glob patterns, -i
(short for --input-directory
) needs to be a string so that ffzap executes
the glob pattern and not your shell. Otherwise, the command will fail.
For more -o
(short for --output-directory
) options, run ffzap --help
. For more ffmpeg options,
visit ffmpeg's documentation.
You are free to:
Conditions: