GPAC Project on Advanced Content

Last updated
GPAC
Developer(s) Jean Le Feuvre, Romain Bouqueau, Aurélien David, People@GPAC [1] [2]
Initial release2003;21 years ago (2003) [3]
Stable release
2.4 [4]   OOjs UI icon edit-ltr-progressive.svg / 17 April 2024;7 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. 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]

Contents

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 developing from scratch, in ANSI C, clean software compliant with the MPEG-4 Systems architecture standard, 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 experimental 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 for pedagogical purposes. Students regularly participate in the development of the project. [2]

Related Research Articles

H.263 is a video compression method originally designed as a low-bit-rate compressed format for videotelephony. It was standardized by the ITU-T Video Coding Experts Group (VCEG) in a project ending in 1995/1996. It is a member of the H.26x family of video coding standards in the domain of the ITU-T.

Scalable Vector Graphics (SVG) is an XML-based vector image format for defining two-dimensional graphics, having support for interactivity and animation. The SVG specification is an open standard developed by the World Wide Web Consortium since 1999.

<span class="mw-page-title-main">Synchronized Multimedia Integration Language</span> XML-based markup language for multimedia presentations

Synchronized Multimedia Integration Language ) is a World Wide Web Consortium recommended Extensible Markup Language (XML) markup language to describe multimedia presentations. It defines markup for timing, layout, animations, visual transitions, and media embedding, among other things. SMIL allows presenting media items such as text, images, video, audio, links to other SMIL presentations, and files from multiple web servers. SMIL markup is written in XML, and has similarities to HTML.

X3D is a set of royalty-free ISO/IEC standards for declaratively representing 3D computer graphics. X3D includes multiple graphics file formats, programming-language API definitions, and run-time specifications for both delivery and integration of interactive network-capable 3D data. X3D version 4.0 has been approved by Web3D Consortium, and is under final review by ISO/IEC as a revised International Standard (IS).

Extended Adaptive Multi-Rate – Wideband (AMR-WB+) is an audio codec that extends AMR-WB. It adds support for stereo signals and higher sampling rates. Another main improvement is the use of transform coding additionally to ACELP. This greatly improves the generic audio coding. Automatic switching between transform coding and ACELP provides both good speech and audio quality with moderate bit rates.

3GP is a multimedia container format defined by the Third Generation Partnership Project (3GPP) for 3G UMTS multimedia services.

<span class="mw-page-title-main">High-Efficiency Advanced Audio Coding</span> Audio codec

High-Efficiency Advanced Audio Coding (HE-AAC) is an audio coding format for lossy data compression of digital audio defined as an MPEG-4 Audio profile in ISO/IEC 14496–3. It is an extension of Low Complexity AAC (AAC-LC) optimized for low-bitrate applications such as streaming audio. The usage profile HE-AAC v1 uses spectral band replication (SBR) to enhance the modified discrete cosine transform (MDCT) compression efficiency in the frequency domain. The usage profile HE-AAC v2 couples SBR with Parametric Stereo (PS) to further enhance the compression efficiency of stereo signals.

MPEG-4 Part 17, or MPEG-4 Timed Text (MP4TT), or MPEG-4 Streaming text format is the text-based subtitle format for MPEG-4, published as ISO/IEC 14496-17 in 2006. It was developed in response to the need for a generic method for coding of text as one of the multimedia components within audiovisual presentations.

The Extensible MPEG-4 Textual Format (XMT) is a high-level, XML-based file format for storing MPEG-4 data in a way suitable for further editing. In contrast, the more common MPEG-4 Part 14 (MP4) format is less flexible and used for distributing finished content.

A container format or metafile is a file format that allows multiple data streams to be embedded into a single file, usually along with metadata for identifying and further detailing those streams. Notable examples of container formats include archive files and formats used for multimedia playback. Among the earliest cross-platform container formats were Distinguished Encoding Rules and the 1985 Interchange File Format.

These tables compare features of multimedia container formats, most often used for storing or streaming digital video or digital audio content. To see which multimedia players support which container format, look at comparison of media players.

MPEG-4 Part 11Scene description and application engine was published as ISO/IEC 14496-11 in 2005. MPEG-4 Part 11 is also known as BIFS, XMT, MPEG-J. It defines:

Flash Video is a container file format used to deliver digital video content over the Internet using Adobe Flash Player version 6 and newer. Flash Video content may also be embedded within SWF files. There are two different Flash Video file formats: FLV and F4V. The audio and video data within FLV files are encoded in the same way as SWF files. The F4V file format is based on the ISO base media file format, starting with Flash Player 9 update 3. Both formats are supported in Adobe Flash Player and developed by Adobe Systems. FLV was originally developed by Macromedia. In the early 2000s, Flash Video was the de facto standard for web-based streaming video. Users include Hulu, VEVO, Yahoo! Video, metacafe, Reuters.com, and many other news providers.

<span class="mw-page-title-main">KMPlayer</span> Freeware media player for Microsoft Windows

K-Multimedia Player is an Adware-supported media player for Windows, android and iOS that can play most current audio and video formats, including VCD, DVD, AVI, MP4, MPG, DAT, OGM, VOB, MKV, Ogg, OGM, 3GP, MPEG-1/2/4, AAC, WMA 7/8, WMV, RealMedia, FLV, and QuickTime.

<span class="mw-page-title-main">MP4 file format</span> Digital format for storing video and audio

MPEG-4 Part 14, or MP4, is a digital multimedia container format most commonly used to store video and audio, but it can also be used to store other data such as subtitles and still images. Like most modern container formats, it allows streaming over the Internet. The only filename extension for MPEG-4 Part 14 files as defined by the specification is .mp4. MPEG-4 Part 14 is a standard specified as a part of MPEG-4.

MPEG-4 Part 20, or MPEG-4 Lightweight Application Scene Representation (LASeR) is a rich media standard dedicated to the mobile, embedded and consumer electronics industries specified by the MPEG standardization group. LASeR is based on SVG Tiny and adds methods for sending dynamic updates and a binary compression format.

<span class="mw-page-title-main">Vision Mobile Browser</span> Web browser

Vision was a mobile browser developed by Novarra Inc. that ran on Java Platform, Micro Edition. It was first released in 2002, and the final release was in 2009.

The ISO base media file format (ISOBMFF) is a container file format that defines a general structure for files that contain time-based multimedia data such as video and audio. It is standardized in ISO/IEC 14496-12, a.k.a. MPEG-4 Part 12, and was formerly also published as ISO/IEC 15444-12, a.k.a. JPEG 2000 Part 12.

The Helix Universal Media Server was a product developed by RealNetworks and originates from the first streaming media server originally developed by Progressive Networks in 1994. It supported a variety of streaming media delivery transports including MPEG-DASH RTMP (flash), RTSP (standard), HTTP Live Streaming (HLS), Microsoft Silverlight and HTTP Progressive Download enabling mobile phone OS and PC OS media client delivery.

Dynamic Adaptive Streaming over HTTP (DASH), also known as MPEG-DASH, is an adaptive bitrate streaming technique that enables high quality streaming of media content over the Internet delivered from conventional HTTP web servers. Similar to Apple's HTTP Live Streaming (HLS) solution, MPEG-DASH works by breaking the content into a sequence of small segments, which are served over HTTP. An early HTTP web server based streaming system called SProxy was developed and deployed in the Hewlett Packard Laboratories in 2006. It showed how to use HTTP range requests to break the content into small segments. SProxy shows the effectiveness of segment based streaming, gaining best Internet penetration due to the wide deployment of firewalls, and reducing the unnecessary traffic transmission if a user chooses to terminate the streaming session earlier before reaching the end. Each segment contains a short interval of playback time of content that is potentially many hours in duration, such as a movie or the live broadcast of a sport event. The content is made available at a variety of different bit rates, i.e., alternative segments encoded at different bit rates covering aligned short intervals of playback time. While the content is being played back by an MPEG-DASH client, the client uses a bit rate adaptation (ABR) algorithm to automatically select the segment with the highest bit rate possible that can be downloaded in time for playback without causing stalls or re-buffering events in the playback. The current MPEG-DASH reference client dash.js offers both buffer-based (BOLA) and hybrid (DYNAMIC) bit rate adaptation algorithms. Thus, an MPEG-DASH client can seamlessly adapt to changing network conditions and provide high quality playback with few stalls or re-buffering events.

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. 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.