Sunday, 20 January 2013

Selene Media Encoder for Ubuntu

Latest Version: 1.1 (2013-02-02)
Platform: Linux (Debian/Ubuntu)
Language: Vala & GTK3

What is Selene?

Selene is an audio/video converter for linux that uses bash scripts for transcoding the input files. The scripts can use any command line utility for encoding the input and Selene will display the progress along with options to pause/resume/shutdown, etc.

Since the conversion process is driven by bash scripts, this makes Selene extremely flexible. Bash scripts can be written for a wide variety of transcoding tasks.

How does it work?

Simply drag audio/video files to the main window, select the encoding script from the drop-down and click 'Start' to begin. The progress window will display the progress for each file along with options to pause/resume encoding.

Running the app in admin mode (using sudo or gksu) will enable additional GUI options. The progress window will display two additional buttons; one for shutting down the system after encoding, and another for running the conversion process with a lower priority (background-mode).

Selene can also be used as a normal command-line utility. Run Selene with the '--help' argument to see the full list of options.

What kind of scripts are used for conversion?

The scripts are ordinary bash scripts. The simplest script would be:

x264 -o "${outDir}/${title}.mkv" "${inFile}"

This script converts any given input file to an MKV file using the x264 encoder.

${inFile}, ${outDir}, ${title} are variables which refer to the input file. These variables will be inserted into the script before execution. It is mandatory to use these variables instead of hard-coding the input file names. This is the only restriction.

The script can use any command line utility (like ffmpeg, x264, etc) for converting the files. The progress percentage will be calculated automatically from the console output.

If the encoding tool is a common tool (like ffmpeg or x264), selene will provide some additional features:

  • The console output displayed in the statusbar will be pretty-formatted
  • The input files can be auto-cropped by replacing the cropping parameters specified in the script

How does auto-cropping work?

For auto-cropping the input files:

  1. Select one or more files from the input list
  2. Right-click and select the AutoCrop option. This will calculate the cropping parameters for the file.
  3. Select any script that uses avconv, x264 or ffmpeg2theora for encoding. The script must use the cropping option for the encoder that is used. For example, we can use:
    x264 --vf crop:0,0,0,0 -o "${outDir}/${title}.mkv" "${inFile}"
    The cropping values specified in the script will be replaced with the calculated values before the script is executed.

After using the 'AutoCrop' option, the output can be previewed by right-clicking the file and selecting the 'Preview Output' option. The calculated values can be edited directly from the input file list. Clear the values to disable the cropping option.

Why can't I just run the bash script from a terminal window?

You can. But using Selene will give you the following additional options:

  • The scripts are easier to write since Selene automatically inserts commonly required variables into the script
  • A batch of files can be selected and encoded with the selected script
  • Pause/Resume options
  • Shutdown PC after encoding
  • Run the processes with low priority
  • Option to set the output location
  • Option to move the input files to a backup location after encoding

Future versions of Selene will provide options to monitor a group of folders for audio/video files and encode them automatically using pre-defined scripts.

Selene can also be used as a normal command-line utility. Run Selene with the '--help' argument to see the full list of options.

Where can I get it?

If you are using Ubuntu 12.10 (Quantal Quetzal) or its derivates (Kubuntu 12.10, Xubuntu 12.10, Mint 14, ..) then you can install it from the LaunchPad PPA:

Open a terminal window (CTRL+ALT+T) on your Ubuntu machine and type the following commands one by one:

sudo apt-add-repository -y ppa:teejee2008/ppa
sudo aptitude update
sudo aptitude install selene

For other Debian systems the DEB package can be download from