Mistika and ProRes output

There’s no official support from ProRes output in Mistika yet, but using Baptiste Coudurier’s fantastic ffmbc we can still encode them on linux.

Installing ffmbc

Visit the ffmbc project page and find the exact url for the tarball of the latest source. ¬†As I’m writing this, the latest version is 0.7rc7, and it’s tarball url is http://ffmbc.googlecode.com/files/FFmbc-0.7-rc7.tar.bz2
We will download the file and extract it to a folder with today’s date (because I like it that way).
We must then configure, compile and install the program.

Here’s a cut’n’pasteable set of commands (given you use the default shell for the mistika user) for the whole thing:

set today=`date +%y%m%d`
cd /usr/share/
sudo mkdir -p ffmbc/$today
cd ffmbc/$today
wget http://ffmbc.googlecode.com/files/FFmbc-0.7-rc7.tar.bz2
tar xvjf FFmbc*
cd FFmbc*
./configure --enable-gpl
sudo make install
sudo ln -s /usr/share/ffmbc/$today/FFmbc*/ffmbc /usr/bin/ffmbc

Encoding a ProRes file

The command arguments of ffmbc are mostly similar to those of ffmpeg.

Here are a few examples:

ffmbc -i /path/to/input/file.avi -vcodec prores /path/to/output/file.mov
ffmbc -i /path/to/input/file.avi -vcodec prores -profile lt -acodec pcm_s16le -timecode 01:00:00:00 /path/to/output/file.mov
ffmbc -r 25 -i /path/to/input/sequence.%06d.dpx -i /path/to/input/audio.aiff -vcodec prores -profile hq -pix_fmt yuv444p10le -acodec pcm_s16le /path/to/output/file.mov

The first line is the most basic way of specifying an input file, an output codec and an output file.
Number two shows how to create Final Cut friendly files with timecode for editing.
The last example shows a 10bit capable way of creating ProRes 444 master files from a sequence of dpx files and an aiff. Note the -r flag before the input sequence to specify the input framerate.

At last, let’s have a look at the ProRes specific ffmbc options:

# ffmbc07rc7 --help | grep -i prores -A 5
prores encoder options:
-cqp               <int>   E.V.. Set quantization parameter
-b                 <int64> E.V.. Set bit rate in (bits/s)
-ratetol           <float> E.V.. Set bit rate tolerance in %
-profile           <string> E.V.. Set encoding profile: proxy,lt,std,hq


All this can obviously be put into afterscripts, but I wont be writing that lesson tonight …

Comments are closed.