A portable C library implementing the EBU R128 standard for loudness normalization in audio processing.
libebur128 is a C library that implements the EBU R128 standard for loudness normalization, which is used to measure and normalize audio loudness consistently across different media. It solves the problem of varying perceived loudness in audio content by providing accurate measurement tools for compliance with broadcasting and production standards.
Audio engineers, broadcasters, and developers working on audio processing software who need to implement standardized loudness measurement and normalization.
Developers choose libebur128 for its strict adherence to the EBU R128 standard, portable ANSI C codebase, and comprehensive features like true peak scanning and loudness range measurement, making it a reliable choice for professional audio applications.
A library implementing the EBU R128 loudness standard.
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 EBU R128 modes (M, S, I) and loudness range per EBU TECH 3342, ensuring broadcast-ready measurements for professional audio workflows.
Written in portable ANSI C with no external dependencies, making it reliable across diverse systems from Windows to embedded devices, as highlighted in the philosophy.
Includes true peak scanning to prevent clipping and dynamic filter recalculation for any sample rate, covering advanced audio analysis needs.
Provides functions like ebur128_loudness_window for live loudness tracking, useful in audio processing pipelines, as added in v1.2.0.
Regular updates fix critical issues, such as uninitialized memory access in v1.2.3 and dynamic linking fixes in v1.2.6, ensuring reliability.
Lacks built-in bindings for other languages, requiring additional effort for use in Python, Java, or web projects, which limits its ecosystem.
Requires CMake for compilation, and changes like removing BUILD_STATIC_LIBS in v1.2.5 can confuse developers unfamiliar with C build tools.
Release notes reveal bugs like null pointer dereferences and uninitialized memory access, indicating potential reliability concerns in earlier versions.
Focuses on raw PCM data; developers must handle decoding from formats like MP3 or AAC externally, adding implementation complexity.