libde265 is an open source implementation of the h.265 video codec. It is written from scratch in plain C for simplicity and efficiency. Its simple API makes it easy to integrate it into other software.
libde265 supports WPP and tile-based multithreading and includes SSE optimizations. All features of the Main profile except long-term MC (which is currently unused by the available encoders) are supported.
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 totem video player with libde265-gstreamer plugin on a Intel(R) Core(TM) i7-2700K CPU @ 3.50GHz with 8 CPU cores on Ubuntu 12.04, 64bit):
Resolution | fps | CPU usage @ 24 fps |
---|---|---|
720p | 685 fps | ~28 % |
1080p | 240 fps | ~80 % |
4K | 51 fps | ~380 % |
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),
-
libvideogfx (required for sherlock265, 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 dec265 decoder program. --disable-sherlock265 Do not build 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)
Binary packages can be obtained from this launchpad site.
Libde265 has been integrated into these applications:
-
gstreamer plugin, source, binary packages.
-
Windows DirectShow filters, https://github.com/strukturag/LAVFilters/releases
-
ffmpeg fork, https://github.com/farindk/ffmpeg
libde265 is distributed under the terms of the GNU Lesser General Public License. See COPYRIGHT for more details.
Copyright (c) 2013-2014 Struktur AG Contact: Dirk Farin [email protected]