GPAC Project on Advanced Content

Last updated
GPAC
Developer(s) Jean Le Feuvre, Romain Bouqueau, Aurélien David, People@GPAC [1] [2]
Initial release2003;22 years ago (2003) [3]
Stable release
2.4 [4]   OOjs UI icon edit-ltr-progressive.svg / 17 April 2024;15 months ago (17 April 2024)
Repository
Written in C
Operating system Cross-platform
Available inEnglish
Type Multimedia framework
License LGPL v2.1
Website gpac.io

GPAC Project on Advanced Content (GPAC, a recursive acronym) is an open-source multimedia framework focused on modularity and standards compliance. GPAC was created as an implementation of the MPEG-4 Systems standard written in ANSI C and later extended in Streaming Media.

Contents

GPAC provides tools to process, inspect, package, stream, media playback and interact with media content. Such content can be any combination of audio, video, subtitles, metadata, encrypted media, rendering and ECMAScript. [5]

GPAC provides three sets of tools based on a core library called libgpac:

GPAC is cross-platform. It is written in (almost 100% ANSI) C for portability reasons, attempting to keep the memory footprint as low as possible. It is currently running under Windows, Linux, MacOS X, iOS, Android, and many other systems.

GPAC is best known for its wide MP4/ISOBMFF capabilities and is popular among video enthusiasts, academic researchers, standardization bodies, and professional broadcasters.

History and standards

GPAC was founded in New York City in 1999 [7] as a company called AviPix. In 2003, it became open-source, with the initial goal of becoming the defacto MPEG-4 Systems standard implementation, as a small and flexible alternative to the MPEG-4 reference software. [3]

In parallel, as MPEG-4 was intended to compete with Macromedia Flash, GPAC evolved to support other standards such as X3D, W3C SVG Tiny 1.2, and OMA/3GPP/ISMA and eventually MPEG-DASH. The MPEG-DASH feature can be used to reconstruct .mp4 files from videos streamed and cached in this format (e.g., YouTube). [8] Various research projects used or use GPAC. [9]

In 2019 the GPAC team explained the code has undergone a massive re-architecture [10] called Filters with release 0.9 while release 0.8 is the last release of the legacy architecture with an extended 18-months support. The front-end applications remain unchanged, making the transition seamless. The underlying filters build a dynamic modular dataflow pipeline.

In 2020 GPAC 1.0 was released. The Website was split into a wiki documentation, a doxygen API documentation, a buildbot and GitHub actions, a testbot with a high coverage. [11] The new gpac application has been used as a FFmpeg on steroids [12] offering additional speed, features, ease of use.

Since 2013, GPAC Licensing has offered business support and closed-source licenses. [13] In 2022 Netflix announced using GPAC for their worldwide content operations [14] including the Netflix service, studio content, and merchandising material. [15]

Multimedia content features

Packaging

GPAC features encoders and multiplexers, publishing and content distribution tools for MP4 files and many tools for scene descriptions (BIFS/VRML/X3D converters, SWF/BIFS, SVG/BIFS, etc.). MP4Box provides all these tools in a single command-line application. Current supported features are: [16]

Playing

GPAC supports many protocols and standards, among which: [16]

Streaming

As of version 0.4.5, GPAC has some server-side and streaming tools: [16]

Contributors

The project is hosted at Télécom Paris, a leading French engineering school. Current main contributors of GPAC are: [2]

Other (current or past) contributors are: [2]

Additionally, GPAC is used at Télécom Paris and other universities for pedagogical purposes. Students regularly participate in the development of the project. [2]

References

  1. 1 2 3 4 Jean Le Feuvre; Cyril Concolato; Jean-Claude Moissinac (2007). "GPAC: open source multimedia framework". Proceedings of the 15th International Conference on Multimedia. ACM Digital Library. pp. 1009–1012. doi:10.1145/1291233.1291452. ISBN   978-1-59593-702-5.
  2. 1 2 3 4 "About us". People@GPAC. Retrieved 2014-01-28.
  3. 1 2 3 Romain Bouqueau (2014-01-22). "5000th commit, 10 years of open-source software". People@GPAC. Retrieved 2014-01-28.
  4. "Release 2.4.0". 17 April 2024. Retrieved 25 July 2024.
  5. 1 2 3 Jean Le Feuvre; Cyril Concolato (December 2012). "GPAC, Toolbox for Interactive Multimedia Packaging, Delivery and Playback". Open Source Column. ACM SIGMM Records. ISSN   1947-4598. Archived from the original on 2014-01-29. Retrieved 2014-01-28.
  6. "Release GPAC 1.0 · gpac/gpac". GitHub. Retrieved 2024-10-30.
  7. GPAC (2013). "About us". GPAC Licensing. Archived from the original on 2014-02-01. Retrieved 2014-01-28.
  8. Sofer, Nir (2013). "VideoCacheView". NirSoft.net. Retrieved 2014-01-28. uses MP4Box installed as a part of GPAC package to convert the MPEG-DASH streams into a valid mp4
  9. GPAC. "Other academic works using GPAC". Publications. People@GPAC. Retrieved 2014-01-28.
  10. "Rearchitecture - GPAC wiki". wiki.gpac.io. Retrieved 2024-10-30.
  11. "GPAC wiki". wiki.gpac.io. Retrieved 2024-10-30.
  12. "Release GPAC 1.0 · gpac/gpac". GitHub. Retrieved 2024-10-30.
  13. 1 2 Bouqueau, Romain (2013-05-09). "GPAC Licensing". GPAC Licensing. Retrieved 2014-01-28. The GPAC and MP4Box trademarks are internationally registered by Telecom ParisTech
  14. Bouqueau, Romain (2013-05-09). "Netflix deploys GPAC as their primary packager". GPAC Licensing. Retrieved 2024-07-25. GPAC deployed by Netflix as their primary packager
  15. Rayburn, Dan (2013-05-09). "NAB Streaming Summit 2023". NAB Streaming Summit. Retrieved 2024-07-25. Netflix uses GPAC in all their packaging scenarios
  16. 1 2 3 "GPAC features". People@GPAC. Retrieved 2014-01-28.
  17. 1 2 3 4 5 6 Cyril Concolato; Jean Le Feuvre; Jean-Claude Moissinac (May 2008). "Design of an Efficient Scalable Vector Graphics Player for Constrained Devices". IEEE Transactions on Consumer Electronics. 54 (2). IEEE Transactions on Consumer Electronics (Vol. 54 issue 2): 895–903. CiteSeerX   10.1.1.648.6798 . doi:10.1109/TCE.2008.4560176. S2CID   1722027 . Retrieved 2014-01-28.