Compiling Handbrake 0.10.5 on a Raspberry Pi 3

This is a follow up on my benchmarks for the Raspberry Pi 2 (see here).

Question

  1. How fast is software x264 encoding now on a PI 3?

Test Object

To answer the questions I compiled and benchmarked Handbrake on a PI 3. As test videos I choseĀ a full HD video, because nowadays is useless to encode in DVD quality for big screens.

Compile Handbrake 0.10.5

sudo apt-get update && sudo apt-get upgrade
mkdir handbrake
cd handbrake
wget https://handbrake.fr/rotation.php?file=HandBrake-0.10.5.tar.bz2
bzip2 -d HandBrake-0.10.5.tar.bz2
tar xvf HandBrake-0.10.5.tar

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 pkgconf

cd HandBrake-0.10.5/

Now you have to disable the asm support.

Add –disable-asm in ./HandBrake-0.10.2/contrib/x264/module.defs. It should look like this:

X264.CONFIGURE.extra += –disable-asm –disable-lavf –disable-ffms –disable-avs –disable-swscale –disable-gpac –disable-lsmash –disable-cli

And now compiling:

./configure
cd build
make

I ran into an error quite fast while building M4:

./stdio.h:477:1: error: ‘gets’ undeclared here (not in a function)
_GL_WARN_ON_USE (gets, “gets is a security hole – use fgets instead”);
^

This is the fix:

sed -i -e’/gets is a security/d’ ./contrib/m4/m4-1.4.16/lib/stdio.in.h

And once again

make

Compile Handbrake on a Raspberry PI 3
Compile Handbrake on a Raspberry PI 3

Benchmark

For the benchmark i used the “normal” preset (q20, b160, Main profile). The PI was not overclocked.

The performance was overall disappointing but I expected that. As an average frame rate for a full HD video (source: 1920×1080 no croop, 29fps, 7500kbps) i got 2.6fps. This is pretty ok for a PI, but a waste of time.

So, you should not use a PI 3 for software encoding with Handbrake.

Fin.

Advertisements

4 thoughts on “Compiling Handbrake 0.10.5 on a Raspberry Pi 3

  1. Thanks for the tutorial. Are you saying that the resulting file came out at 2.6fps, or thats how fast it processed?

    Additionally, I followed your instructions and everything worked until I got the following error during MAKE. Any ideas how to get past it?

    checking for limits.h… yes
    checking for dlfcn.h… (cached) yes
    checking for special C compiler options needed for large files… no
    checking for _FILE_OFFSET_BITS value needed for large files… 64
    checking whether byte ordering is bigendian… no
    ./configure: line 12586: syntax error near unexpected token `CSS,’
    ./configure: line 12586: ` PKG_CHECK_MODULES(CSS, $CSS_REQUIRES)’
    ../contrib/libdvdread/module.rules:2: recipe for target ‘contrib/libdvdread/.stamp.configure’ failed
    make: *** [contrib/libdvdread/.stamp.configure] Error 2

    Like

    • Hi,

      2.6fps indicates the processing speed, not the resulting fps in the file.

      This error you get is a result of a misconfigured pkg-config.

      Like

  2. I have the same error ([contrib/libdvdread/.stamp.configure] Error 2) and don’t know how to solve it, any help would be appreciated, thanks

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s