libde265 - open h.265 codec implementation
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 %|
- Intel(R) Core(TM) i7-2700K CPU @ 3.50GHz (4 physical CPU cores)
- Ubuntu 12.04, 64bit
- GStreamer 0.10.36
If you got libde265 from the git repository, you will first need to run the included
autogen.sh script to generate the
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
--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
--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
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.
Binary packages can be obtained from this launchpad site.
Software using libde265
Libde265 has been integrated into these applications:
Windows DirectShow filters, https://github.com/strukturag/LAVFilters/releases
ffmpeg fork, https://github.com/farindk/ffmpeg
ffmpeg decoder source
libde265 is distributed under the terms of the GNU Lesser General Public License. The sample applications are distributed under the terms of the MIT license.
COPYING for more details.
Copyright (c) 2013-2014 Struktur AG Contact: Dirk Farin [email protected]