An open-source implementation of the H.265/HEVC video codec with a plain C API for easy integration.
libde265 is an open-source implementation of the H.265/HEVC video codec standard that provides software-based decoding of high-efficiency video content. It solves the problem of playing and processing modern HEVC-encoded video files without relying on proprietary hardware or software. The library is written from scratch with a plain C API to ensure easy integration into various multimedia applications.
Multimedia developers and software engineers who need to integrate H.265 video decoding capabilities into their applications, particularly those working on video players, editing software, or streaming solutions.
Developers choose libde265 because it offers a complete, open-source implementation of the H.265 standard with good performance through multithreading and SSE optimizations. Its plain C API makes it particularly easy to integrate compared to more complex codec libraries.
Open h.265 video codec implementation.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements all features of the H.265 Main profile and correctly decodes almost all conformance streams, ensuring high compatibility with standard HEVC content as documented in the wiki.
Supports Wavefront Parallel Processing (WPP) and tile-based multithreading, which improves decoding performance on multi-core CPUs, as evidenced by the benchmark showing 150 fps for 1080p on a quad-core i7.
Includes processor-specific optimizations for x86 architectures, accelerating decoding on common desktop and server systems, though this is limited to x86.
Provides a plain C API that makes integration straightforward into other software projects without complex dependencies, as highlighted in the README's focus on ease of use.
Libde265 lacks encoding support, so projects needing full H.265 encode-decode capabilities must pair it with another library, adding complexity.
SSE optimizations are specific to x86, meaning performance on ARM or other non-x86 architectures may be suboptimal without similar optimizations.
The example applications require external libraries like SDL2 and Qt, which can complicate setup and increase the learning curve for developers just testing the decoder.
Beyond the wiki on conformance and features, there is limited in-depth documentation or tutorials for complex integration scenarios, relying more on example code.