Chuck Versus Handbrake on a Raspberry Pi 2

[Update: A new post is online for Handbrake 0.10.5 and the Raspberry PI 3]

(based on the work of the tech-note-pad and my own for the version 0.9.9)

Questions

  1. How fast is software x264 encoding on a PI 2?
  2. Does grain reduce fps?

Test Object

To answer the questions I benchmarked Handbrake on a PI 2. As test videos I chose two episodes of the series Chuck because the picture quality of the Blu-rays (1080p) is really poor (grain). I used S2.E11 as a standard episode and S2.E12 (Chuck Versus the Third Dimension) since with is the one episode with a proper picture quality (no grain).

Installation

user@localhost:~$ mkdir handbrake
user@localhost:~$ cd handbrake
user@localhost:~$ wget https://handbrake.fr/rotation.php?file=HandBrake-0.10.2.tar.bz2
user@localhost:~$ bzip2 -d HandBrake-0.10.2.tar.bz2
user@localhost:~$ tar xvf HandBrake-0.10.2.tar

user@localhost:~$ sudo apt-get update && sudo apt-get upgrade

user@localhost:~$ sudo apt-get install subversion yasm build-essential autoconf libtool zlib1g-dev libbz2-dev libfribidi-dev intltool libglib2.0-dev libdbus-glib-1-dev libgtk-3-dev libgudev-1.0-dev libwebkit-dev libnotify-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libvorbis-dev libass-dev libsamplerate-dev libogg-dev libtheora-dev libappindicator-dev cmake libx264-dev libmp3lame-dev

(CMake is not necessary but the integrated build process of cmake would take some extra time)

Add –disable-asm in ./HandBrake-0.10.2/contrib/x264/module.defs

user@localhost:~$ sudo ./configure
user@localhost:~$ cd ./build
user@localhost:~$ sudo make
#Make nerd yoga. It takes about one hour.
#The GUI-Version can be found in ./gtk/src
#Handbrake-CLI can be found in the build folder

#If you want to install
user@localhost:~$ sudo make install

handbrake

Benchmark Settings

Setting 1: Main4.0 x264-Preset=VeryFast (Default Handbrake Normal Preset)
Setting 2: Main4.0 x264-Preset=VerySlow
Setting 3: High4.1 x264-Preset=Medium (Default Handbrake High Preset)
Setting 4: High4.1 x264-Preset=VerySlow (Best picture quality)

For every setting:
Video: Tune=Film RF=24
Audio: AAC br=160 DolbyProLogicII + Subtitle

The Raspberry PI 2 is overclocked with the preset “medium” (900MHz).

Results

For Chuck S2.E11:

(in fps) Setting 1 Setting 2 Setting 3 Setting 4
PI 2 3,1 0,26 0,65 0,22
i7 4700MQ @2,4GHz 49,5 7,9 17,3 6,7
i7 3517U @1,9GHz 20,2 2,2 5,8 2,0
Intel Core 2 Duo (T9400) @2,53GHz 11,9 1,3 3,8 1,2
Intel Core 2 Duo (E8400) @3,0GHz 14,9 1,5 4,2 1,6

For Chuck S2.E12:

(in fps) Setting 1 Setting 2 Setting 3 Setting 4
PI 2 3,6 0,47 0,91 0,31
i7 4700MQ @2,4GHz 58,9 11,1 25,7 8,6
i7 3517U @1,9GHz 22,0 2,7 6,9 2,4
Intel Core 2 Duo (T9400) @2,53GHz 16,6 1,9 5,0 2,0
Intel Core 2 Duo (E8400) @3,0GHz 18,5 2,3 5,8 2,3

Answers

  1. The PI 2 could be used for software x264 encoding, but it shouldn’t. If you really like to encode something with the PI 2 you should have a look for the hardware encoding using omx/gstreamer or omxtx.
  2. Yes, grain reduces fps and increases file size if you choose constant quality.

One thought on “Chuck Versus Handbrake on a Raspberry Pi 2

Leave a comment