Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/bjornua/transcode
- Owner: bjornua
- License: mit
- Created: 2016-10-15T15:21:49.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2016-11-08T10:07:26.000Z (almost 8 years ago)
- Last Synced: 2024-06-19T21:35:53.098Z (3 months ago)
- Language: Rust
- Homepage:
- Size: 148 KB
- Stars: 5
- Watchers: 2
- Forks: 0
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
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 formatExamples 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