Public | Automated Build

Last pushed: 2 months ago
Short Description
Podcast audio/video encoder based on debian:stretch-slim w/ MLT, Jinja2, FFmpeg, and sox.
Full Description

Radcast was created to save hours of podcast encode and upload time by automation.

Quick Start

Install

Open a terminal window and run the following to install radcast to /usr/local/bin

$ sudo docker run --rm -v $PWD:/target mantlepro/radcast install
$ sudo mv radcast /usr/local/bin

Run

Once radcast has been installed, run the shell script

$ radcast

radcast is essentially a wrapper script that formulates a docker run command with CLI arguments based on user input. It also caches values in ~/.radcast for easy recall.

Example

Radcast  Copyright (C) 2017 Josh Wheeler <joshwheeler@mantlepro.com>

  This program comes with ABSOLUTELY NO WARRANTY. This is free software,
  and you are welcome to redistribute it under certain conditions. See
  https://github.com/mantlepro/radcast for details.

Enter values for podcast

Source file []: ~/Videos/foo.mkv
Destination directory []: ~/Videos
Podcast title []: My Podcast
IN (frames, HH:MM:SS:FF MM:SS:FF or SS:FF): 0
OUT (frames, HH:MM:SS:FF MM:SS:FF or SS:FF): 12:05:17
Would you like to start encoding? [y/N]: N

Answering N will allow you to correct any mistakes, add/change pre- and post-roll, etc.

radcast - radical podcast automation

Source: /home/mantlepro/Videos/foo.mkv
Destination: /home/mantlepro/Videos
Title: My Podcast
In: 0
Out: 12:05:17
Pre-roll: 
Post-roll: 

1) Set source
2) Set dest
3) Title
4) Set in
5) Set out
6) pre-roll
7) post-roll
8) Encode
9) Quit

Select an option: 

Note: the destination directory must exist or the video will be not be saved.

By default, radcast encodes video to HD 720p h.264 m4v, and corresponding mp3 file for an audio-only version. Silence is trimmed from the beginning and end of the audio version to prevent pre/post-roll graphics from creating dead air.

For more advanced usage, the the command line interface can be used directly from the docker container.

Command Line Interface

Run and display usage

$ docker run --rm mantlepro/radcast

usage: radcast [-h] [-t TITLE] [-o OUTPUT] [--in IN_TIME] [--out OUT_TIME]
               [--pre-roll PRE_ROLL [PRE_ROLL ...]]
               [--post-roll POST_ROLL [POST_ROLL ...]] [--fade FADE]
               [--still STILL] [--preview]
               [--preset {1080p webm,1080p x264,720p webm,720p x264}]
               input

Example

$ docker run --rm -it -u $(id -u):$(id -g) -v /mnt/input:/media/input:ro -v /mnt/output:/media/output:rw mantlepro/radcast -i input/Capture0001.mkv --in 14:31:00 --out 14:51:00 --pre-roll input/bumper.mp4 --post-roll input/logo.mov

--rm=true|false
     Automatically remove the container when it exits. The default is false.

-i, --interactive=true|false
      Keep STDIN open even if not attached. The default is false.
-t, --tty=true|false
      Allocate a pseudo-TTY. The default is false.
-u $(id -u):$(id -g)
   Set uid:gid to active user (write files as user instead of root)
-v|--volume[=[[HOST-DIR:]CONTAINER-DIR[:OPTIONS]]]
      Create a bind mount. If you specify, -v /host/input:/media/input, Docker
      bind mounts /host/input in the host to /media/input in the container.

Notes

By default, mantlepro/radcast writes to /media/output unless an output argument is provided.

Status

This project is under principal development. Radcast is nearly ready for primetime, and with your help can be tested to make things even better. Alpha testers and developer-types are welcome to give it a go and report bugs or add feature requests.

Contribution

Pull requests are welcome. If bugs are found, please feel free to open an issue.

Radcast uses the MLT framework, Jinja2, FFmpeg, and sox.

To install or develop radcast locally (outside of the Docker environment), download the zip, or clone the repository and follow the setup instructions for your platform

Install Dependencies

Debian

$ sudo apt-get update
$ sudo apt-get install python-pip python-jinja2 python-yaml python-mlt ffmpeg melt sox
$ sudo python setup.py install

Fedora

$ sudo dnf install mlt-python python-pip python2-jinja2 ffmpeg sox
$ sudo python setup.py install

Install radcast

After the dependencies have been met, radcast can be installed locally using make. Note: using this installation method, radcast is the command line interface and radcast-tui is the text user interface. In the Docker installation, radcast starts the text user interface.

$ make install

Uninstall

radcast can also be uninstalled using make

$ make uninstall
Docker Pull Command
Owner
mantlepro
Source Repository