A C++ SDK and tools for reading, writing, and processing MP4, MPEG-DASH, HLS, and CMAF media files with support for encryption and multiple codecs.
Bento4 is a C++ software development kit and collection of command-line tools for reading, writing, and manipulating MP4 media files and related streaming formats like MPEG-DASH and HLS. It solves the problem of low-level media container processing by providing a portable, self-contained library that supports encryption, codec handling, and format conversion without external dependencies.
Media engineers, streaming service developers, and software developers working on video processing pipelines, DRM integration, or adaptive bitrate streaming who need programmatic control over MP4 file structures.
Developers choose Bento4 for its comprehensive feature set covering MP4, DASH, HLS, and CMAF standards, its support for multiple encryption schemes and DRM systems, and its portability as a dependency-free C++ library that can be compiled across many platforms.
Full-featured MP4 format, MPEG DASH, HLS, CMAF SDK and tools
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports MP4, DASH, HLS, CMAF, and multiple encryption schemes like CENC and PIFF, as detailed in the Features list, covering industry standards extensively.
The C++ library is self-contained and builds on Linux, Windows, macOS, iOS, and Android using CMake, Make, or IDE projects, ensuring cross-platform compatibility.
Includes utilities like mp4info for diagnostics, mp4encrypt for DRM, and mp4-dash for streaming, providing a full suite for media manipulation tasks.
Explicitly supports Widevine, PlayReady, and Marlin DRM through MPEG Common Encryption, facilitating secure content delivery for streaming services.
Multiple build systems like CMake, SCons (deprecated), and Make with target-specific directories can confuse newcomers, as noted in the Building section.
Requires deep knowledge of MP4 atoms and media formats; tools operate at a low level, making it unsuitable for quick or casual use without expertise.
The Open Source license is dual-licensed, with details on an external site, potentially complicating commercial adoption and requiring careful review.