You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

144 lines
5.2 KiB

libde265 - open h.265 codec implementation
==========================================
![libde265](libde265.png)
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](https://github.com/strukturag/libde265/wiki/Decoder-conformance)]).
A list of supported features are available in the [wiki](https://github.com/strukturag/libde265/wiki/Supported-decoding-features).
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](https://github.com/strukturag/gstreamer-libde265)).
The tool plays a Matroska movie to the GStreamer fakesink and measures
the average framerate.
| Resolution | avg. fps | CPU usage |
| ----------------- | -------- | --------- |
| [720p][1] | 284 fps | 39 % |
| [1080p][2] | 150 fps | 45 % |
| [4K][3] | 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
[1]: http://trailers.divx.com/hevc/TearsOfSteel_720p_24fps_27qp_831kbps_720p_GPSNR_41.65_HM11_2aud_7subs.mkv
[2]: http://trailers.divx.com/hevc/TearsOfSteel_1080p_24fps_27qp_1474kbps_GPSNR_42.29_HM11_2aud_7subs.mkv
[3]: http://trailers.divx.com/hevc/TearsOfSteel_4K_24fps_9500kbps_2aud_9subs.mkv
Building
========
[![Build Status](https://travis-ci.org/strukturag/libde265.png?branch=master)](https://travis-ci.org/strukturag/libde265) [![Build Status](https://ci.appveyor.com/api/projects/status/github/strukturag/libde265?svg=true)](https://ci.appveyor.com/project/strukturag/libde265)
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
<pre>
--disable-dec265 Do not build the dec265 decoder program.
--disable-sherlock265 Do not build the sherlock265 visual inspection program.
</pre>
Additional logging information can be turned on and off using these `./configure` flags:
<pre>
--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)
</pre>
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](http://www.cmake.org) for further information on
using cmake on other platforms.
Prebuilt binaries
=================
Binary packages can be obtained from this [launchpad site](https://launchpad.net/~strukturag/+archive/libde265).
Software using libde265
=======================
Libde265 has been integrated into these applications:
- gstreamer plugin, [source](https://github.com/strukturag/gstreamer-libde265), [binary packages](https://launchpad.net/~strukturag/+archive/libde265).
- VLC plugin [source](https://github.com/strukturag/vlc-libde265), [binary packages](https://launchpad.net/~strukturag/+archive/libde265).
- Windows DirectShow filters, https://github.com/strukturag/LAVFilters/releases
- ffmpeg fork, https://github.com/farindk/ffmpeg
- ffmpeg decoder [source](https://github.com/strukturag/libde265-ffmpeg)
- libde265.js JavaScript decoder [source](https://github.com/strukturag/libde265.js), [demo](https://strukturag.github.io/libde265.js/).
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 MIT license.
See `COPYING` for more details.
Copyright (c) 2013-2014 Struktur AG
Contact: Dirk Farin <farin@struktur.de>