Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/bjornua/transcode

Transcode a directory of videos
https://github.com/bjornua/transcode

Last synced: about 2 months ago
JSON representation

Transcode a directory of videos

Awesome Lists containing this project

README

        

# 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