Open h.265 video codec implementation.
C++ C Assembly Python CMake Shell Batchfile
Permalink
Failed to load latest commit information.
acceleration-speed add header files to sources Jul 15, 2015
dec265 fix stride computations for >8 bit outputs (SDL and YUV) Oct 13, 2015
enc265 add missing header to Makefile Oct 26, 2015
extra increase version number to v1.0.2 Jul 14, 2015
libde265 check for pictures without VPS Oct 26, 2015
m4 Merge branch 'master' into encoder Oct 20, 2014
scripts Add missing license headers and check headers in Travis. Jul 3, 2015
sherlock265 RGB 4:4:4 output for sherlock265 Oct 1, 2015
tools moved acceleration-speed tool into its own directory and split source… Jul 15, 2015
.gitignore Generate header file containing information from configure, added API… Feb 15, 2014
.travis.yml Merge branch 'master' into encoder Sep 30, 2015
AUTHORS Add myself to AUTHORS. May 27, 2014
CMakeLists.txt Need cmake 2.8.8 for OBJECT type. Sep 25, 2015
COPYING Clarify which parts are LGPL and which are GPL. Jul 30, 2014
ChangeLog Add some content to required files. May 27, 2014
Makefile.am moved acceleration-speed tool into its own directory and split source… Jul 15, 2015
Makefile.vc7 Support building encoder on Windows. Jun 17, 2015
NEWS Add some content to required files. May 27, 2014
README Added basic README as required by automake. Jan 24, 2014
README.md Also show AppVeyor build status. Aug 19, 2015
appveyor.yml Added configuration for AppVeyor CI. Aug 18, 2015
autogen.sh Add missing license headers and check headers in Travis. Jul 3, 2015
build.bat Support building encoder on Windows. Jun 17, 2015
configure.ac Merge branch 'master' into encoder Sep 23, 2015
libde265.pc.in Specify private libraries required for static linking. Jun 6, 2014
libde265.png Added libed265 logo. Jan 24, 2014

README.md

libde265 - open h.265 codec implementation

libde265

libde265 is an open source implementation of the h.265 video codec. It is written from scratch and has a plain C API to enable a simple integration into other software.

libde265 supports WPP and tile-based multithreading and includes SSE optimizations. The decoder includes all features of the Main profile and correctly decodes almost all conformance streams (see [wiki page]).

A list of supported features are available in the wiki.

For latest news check our website at http://www.libde265.org

The library comes with two example programs:

  • dec265, a simple player for raw h.265 bitstreams. It serves nicely as an example program how to use libde265.

  • sherlock265, a Qt-based video player with the additional capability to overlay some graphical representations of the h.265 bitstream (like CU-trees, intra-prediction modes).

Example bitstreams can be found, e.g., at this site: ftp://ftp.kw.bbc.co.uk/hevc/hm-10.1-anchors/bitstreams/ra_main/

Approximate performance for WPP, non-tiles streams (measured using the timehevc tool from the GStreamer plugin). The tool plays a Matroska movie to the GStreamer fakesink and measures the average framerate.

Resolution avg. fps CPU usage
720p 284 fps 39 %
1080p 150 fps 45 %
4K 36 fps 56 %

Environment:

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

Building

Build Status Build Status

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

libde265 has no dependencies on other libraries, but both optional example programs have dependencies on:

  • SDL (optional for dec265's YUV overlay output),

  • Qt (required for sherlock265),

  • libswscale (required for sherlock265 if libvideogfx is not available).

  • libvideogfx (required for sherlock265 if libswscale is not available, optional for dec265).

Libvideogfx can be obtained from http://www.dirk-farin.net/software/libvideogfx/index.html or http://github.com/farindk/libvideogfx

You can disable building of the example programs by running ./configure with

  --disable-dec265        Do not build the dec265 decoder program.
  --disable-sherlock265   Do not build the sherlock265 visual inspection program.

Additional logging information can be turned on and off using these ./configure flags:

  --enable-log-error      turn on logging at error level (default=yes)
  --enable-log-info       turn on logging at info level (default=no)
  --enable-log-trace      turn on logging at trace level (default=no)

Build using cmake

cmake scripts to build libde265 and the sample scripts dec265 and enc265 are included and can be compiled using these commands:

mkdir build
cd build
cmake ..
make

See the cmake documentation for further information on using cmake on other platforms.

Prebuilt binaries

Binary packages can be obtained from this launchpad site.

Software using libde265

Libde265 has been integrated into these applications:

License

The library libde265 is distributed under the terms of the GNU Lesser General Public License. The sample applications are distributed under the terms of the GNU General Public License.

See COPYING for more details.

Copyright (c) 2013-2014 Struktur AG Contact: Dirk Farin farin@struktur.de