Single-file C library for decoding MPEG1 video and MP2 audio with minimal dependencies.
PL_MPEG is a single-file C library designed to decode MPEG1 video and MP2 audio streams from MPEG-PS containers. It solves the problem of adding video playback to applications or games without relying on large, complex libraries like ffmpeg, offering a lightweight and dependency-free alternative.
C/C++ developers building applications or games that require simple video playback, especially those working in resource-constrained environments or seeking minimal dependencies.
Developers choose PL_MPEG for its extreme simplicity, single-file design, and patent-free codec support, making it ideal for projects where lightweight integration and ease of use are prioritized over advanced multimedia features.
Single file C library for decoding MPEG1 Video and MP2 Audio
The entire library is contained in one header file, making integration and distribution straightforward without complex build systems or dependencies.
It uses MPEG1 and MP2 codecs whose patents have expired, ensuring completely free and legal usage in any project without licensing concerns.
Despite no SIMD instructions, it can decode 4k60fps video on a single CPU core, as demonstrated on an i7-6700k, offering good performance for its simplicity.
Requires only standard C libraries, with optional SDL2 for example players, reducing external dependencies and simplifying deployment.
PL_MPEG provides no error reporting and silently ignores invalid data, making debugging corrupted files difficult and unreliable for production use.
The library ignores presentation timestamps in MPEG-PS containers, which can lead to audio-video synchronization problems with some files, as noted in the limitations.
Only supports MPEG1 video and MP2 audio in MPEG-PS containers, excluding modern codecs and other container formats like MP4 or AVI.
PL_MPEG is an open-source alternative to the following products:
Protocol Buffers - Google's data interchange format
A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff.
JSON for Modern C++
ASP.NET Core is a cross-platform .NET framework for building modern cloud-based web applications on Windows, Mac, or Linux.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.