transcode 0.3.0

Command-line utility for converting directories of audio/video format to run on a raspberry pi.
# transcode
[![Cargo version][cargo-image]][cargo-url]

Transcode a directory of videos

## Example
```bash
transcode ~/Videos/ ~/ConvertedVideos
```
* Converts video/audio files in `~/Videos/` to `~/VideosConverted/`

## Full Usage
```
Usage: target/debug/transcode [OPTION]... INPUT_DIRECTORY OUTPUT_DIRECTORY [INPUT_FILE]...

Options:
    -d, --dry-run       No paths are created or updated
    -h, --help          Display this help and exit
    -f, --format        Set the output format

Examples of the --format option:
    --format=mkv,h264,18,normal,opus,192
```

## Features
* Shows progress for individual files and total progress
* Shows ETA for individual files and total ETA
* Takes directory as input, automatically identify audio/video files within.
* Copies files that are already in the target format instead of processing.

## Formats
Currently the only target format is hardcoded and is:

| Container | Audio     | Video     |
|-----------|-----------|-----------|
| Matroska  | Opus 192k | h.264 4.1 |

## Installation
* Install rust (https://www.rust-lang.org/en-US/downloads.html)
* Install ffmpeg (https://ffmpeg.org/download.html)
* Run `cargo install transcode`
* Run `~/.cargo/bin/transcode` (you can add `~/.cargo/bin/` to `PATH`)

## Motivation
I ran into the problem of having many video files of various formats that needed to run on a raspberry pi.
So i needed a script to convert all of them for playback in a format that raspberry pi can run.

You could of course just loop through all the files. Though i found the following issues:

Problems:
* There is no ETA on when the script will finish.
* Files would be scattered in the file system.

So i decided i wanted to write a more specific program for the job.

[cargo-image]: https://img.shields.io/crates/v/transcode.svg
[cargo-url]: https://crates.io/crates/transcode