# lconvert [![Crates.io Version](https://img.shields.io/crates/v/lconvert)](https://crates.io/crates/lconvert) [![Crates.io Total Downloads](https://img.shields.io/crates/d/lconvert)](https://crates.io/crates/lconvert) A cli tool that simplifies usage of FFmpeg for multiple files ## Features ### Multiple file conversion - files with an extension to another extension - files with different extensions to another extension - files with different extensions to different extensions - files in directories ### Output patterns You can control where the output files go with patterns like "outdir/{{out-ext}}/{{file}}". The placeholders in {{curly brackets}} will be replaced and a subdirectory for every output extension will be created with only the files that have that extension in it. See more placeholders with '--help' ### Custom FFmpeg options Allows you to apply FFmpeg options (such as changing bitrate, resolution, etc...) to multiple files at once ### glob expansion Expands glob expressions ### Parallel execution Runs multiple FFmpeg instances at once for fast conversion time ### Progress bar And it has a progress bar, yes ## Requirements You will need ffmpeg and ffprobe executables [downloaded](https://www.ffmpeg.org/) and avalable through the PATH variable You will need [cargo](https://www.rust-lang.org/tools/install) if you want to install lconvert from source (not needed for binary releases) ## Installation ### Binary Download binary release for your os from [releases](https://github.com/hodojek/lconvert/releases) ### Install with cargo ``` cargo install lconvert ``` ### Build yourself ``` git clone https://github.com/hodojek/lconvert.git ``` ``` cd lconvert ``` ``` cargo build --release ``` You will find lconvert executable in ./target/release directory ## Examples Simple Pattern