HEVC/H.265 video decoder using libde265 (GStreamer plugin)
C
Latest commit e344d64 Jul 15, 2015 @fancycode fancycode Prepare 0.1.12

README.md

gstreamer-libde265

Powered by libde265

powered by libde265

Building

Build Status

If you got gstreamer-libde265 from the git repository, you will first need to run the included autogen.sh script to generate the configure script.

Compile for gstreamer0.10:

$ ./configure --enable-gstreamer0.10
$ make

Compile for gstreamer1.0:

$ ./configure
$ make

Dependencies

Various libraries are required to build gstreamer-libde265:

  • libde265-dev (>= 0.7),
  • libz-dev
  • libbz2-dev
  • libgstreamer0.10-dev (only for gstreamer0.10)
  • libgstreamer-plugins-base0.10-dev (only for gstreamer0.10)
  • libgstreamer-plugins-bad0.10-dev (only for gstreamer0.10)
  • libgstreamer1.0-dev (only for gstreamer1.0)
  • libgstreamer-plugins-base1.0-dev (only for gstreamer1.0)
  • libgstreamer-plugins-good1.0-dev (only for gstreamer1.0)
  • libgstreamer-plugins-bad1.0-dev (only for gstreamer1.0)

Prebuilt packages for Ubuntu are available at https://launchpad.net/~strukturag/+archive/libde265

Running

To test, make sure the libde265.so.0 is in your LD_LIBRARY_PATH and execute:

$ gst-launch-0.10 \
    --gst-plugin-path=/path/to/gstreamer-libde265/src/.libs/ \
    playbin uri=file:///path/to/sample-hevc.mkv

You can also playback raw H.265/HEVC bitstreams by switching the decoder to raw-mode and passing the desired framerate:

$ gst-launch-0.10 \
    --gst-plugin-path=/path/to/gstreamer-libde265/src/.libs/ \
    filesrc location=/path/to/sample-bitstream.hevc \
    ! libde265dec mode=raw framerate=25/1 ! xvimagesink

The examples folder contains a sample raw bitstream player which can be used instead of passing the various options to gst-launch (assuming you have all necessary plugins in the GStreamer plugin path):

$ ./playhevc --fps=25 /path/to/sample-bitstream.hevc

Other commandline switches are available from

$ ./playhevc --help-all

Performance

Decoder performance was measured using the timehevc tool from the examples folder. The tool plays a Matroska movie to the GStreamer fakesink and measures the average framerate.

Resolution avg. fps CPU usage
720p 298 fps 36 %
1080p 161 fps 43 %
4K 40 fps 55 %

Environment:

  • Intel(R) Core(TM) i7-2700K CPU @ 3.50GHz (4 physical CPU cores)
  • Ubuntu 12.04, 64bit
  • GStreamer 0.10.36
  • libde265 0.7

Copyright (c) 2014 struktur AG