GPAC Project on Advanced Content

Last updated
GPAC
Developer(s) Jean Le Feuvre, People@GPAC [1] [2]
Initial release2003;20 years ago (2003) [3]
Stable release
2.2.1 [4]   OOjs UI icon edit-ltr-progressive.svg / 27 April 2023;7 months ago (27 April 2023)
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 implementation of the MPEG-4 Systems standard written in ANSI C. GPAC provides tools for media playback, vector graphics and 3D rendering, MPEG-4 authoring and distribution. [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, Solaris, Windows CE (SmartPhone, PocketPC 2002/2003), iOS, Android, Embedded Linux (familiar 8, GPE) and recent Symbian OS systems.

The project is intended for a wide audience ranging from end-users or content creators with development skills who want to experiment the new standards for interactive technologies or want to convert files for mobile devices, to developers who need players and/or server for multimedia streaming applications.

The GPAC framework is being developed at École nationale supérieure des télécommunications (ENST) as part of research work on digital media.

History and standards

GPAC was founded in New York City in 1999. [6] In 2003, it became an open-source project, with the initial goal of developing from scratch, in ANSI C, clean software compliant with the MPEG-4 Systems standard, as a small and flexible alternative to the MPEG-4 reference software. [3]

In parallel, the project has evolved and now supports many other multimedia standards, with support for X3D, W3C SVG Tiny 1.2, and OMA/3GPP/ISMA and MPEG Dynamic Adaptive Streaming over HTTP (MPEG-DASH) features. 3D support is available on embedded platforms through OpenGL-ES.[ citation needed ] The MPEG-DASH feature can be used to reconstruct .mp4 files from videos streamed and cached in this format (e.g., YouTube). [7] Various research projects used or use GPAC. [8]

Since 2013, GPAC Licensing has offered business support and closed-source licenses. [9]

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, albeit with extremely arcane syntax. Current supported features are: [10]

Playing

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

Streaming

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

Contributors

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

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

Additionally, GPAC is used at ENST for pedagogical purposes. Students regularly participate in the development of the project. [2]

Related Research Articles

H.263 is a video compression standard 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.

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. It is used on 3G mobile phones but can also be played on some 2G and 4G phones.

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">QuickTime Broadcaster</span>

QuickTime Broadcaster is an audio and video RTP/RTSP server by Apple Inc. for Mac OS X. It is separate from Apple's QuickTime Streaming Server, as it is not a service daemon but a desktop application. It is able to stream live video and audio over a network in any QuickTime supported streaming codec.

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

A demultiplexer for digital media files, or media demultiplexer, also called a file splitter by laymen or consumer software providers, is software that demultiplexes individual elementary streams of a media file, e.g., audio, video, or subtitles and sends them to their respective decoders for actual decoding. Media demultiplexers are not decoders themselves, but are format container handlers that separate media streams from a (container) file and supply them to their respective audio, video, or subtitles decoders.

<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.2.1". 27 April 2023. Retrieved 1 May 2023.
  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. GPAC (2013). "About us". GPAC Licensing. Retrieved 2014-01-28.
  7. 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
  8. GPAC. "Other academic works using GPAC". Publications. People@GPAC. Retrieved 2014-01-28.
  9. 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
  10. 1 2 3 "GPAC features". People@GPAC. Retrieved 2014-01-28.
  11. 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. IEEE Transactions on Consumer Electronics (Vol. 54 issue 2). 54 (2): 895–903. CiteSeerX   10.1.1.648.6798 . doi:10.1109/TCE.2008.4560176. S2CID   1722027 . Retrieved 2014-01-28.