During the 128th MPEG meeting, we made a quick presentation of GPAC 0.9.0 and the roadmap towards 1.0: m50899 – Towards GPAC 1.0
We are thrilled to announce the public release of the development branch of GPAC 0.9.0.
This branch is very special to us. It took us almost two years to re-architect GPAC to make it more powerful and easier for you to use.
GPAC takes roots in research and visionary innovations of the late 1990s. Started as a start-up in 2000, GPAC gained traction from research and a nascent multimedia community as it was open-sourced in 2003. Since then we never stopped transforming GPAC into a useful and up-to-date project, with many industrial R&D collaborations and a community of tens of thousands of users. This makes GPAC one of the few open-source multimedia projects that gathers so much diversity.
This diversity is also the result of GPAC’s two core concepts: each media is an object that lives on its own, combined by a presentation layer presenting these objects as part of an experience. This vision has proven incredibly successful in Flash and then HTML5. Although GPAC was based on MPEG-4 and SVG Tiny 1.2 technologies that never massively took off, its broad set of technologies for building rich multimedia applications (packaging, streaming, interactive playback) with limited resources makes GPAC quite unique.
After 15 years of R&D developments, the time had come to expose more of this modularity to our users, as explained here. To get details on the result of this work, go to our wiki. This work was also the opportunity to:
- clean up unused code accumulated over the years and improve our test suite, and the test coverage on this branch is already excellent.
- revise GPAC documentation, using auto-generation to always stay up-to-date and move all existing documentation (post and pages of this site) to GPAC wiki.
We encourage all GPAC users to try this new version, give us feedback, feature requests and bug reports (hopefully not too many) on our issue tracker.
We will keep the master on the old architecture until end of October 2019 before switching to the new architecture. Note that the master branch is merged into the new arch branch almost daily.
Both branches are available as pre-built installers for simplicity.
The branch can be browsed online here and can be checkout as usual:
$ git checkout filters
GPAC has never been so alive!
We are happy to announce a new release of GPAC (v0.8.0), featuring AV1, HDR, full CENC, CMAF, HEIF and ATSC3.0 support! For more details, check the detailed changelog.
Enjoy, and stay tuned for more info on GPAC !
GPAC has added support for new codecs recently:
- AV1 support is available in nightly builds since July 10th, 2018. This include file creation with MP4Box (including MPEG DASH generation) and file playback with MP4Client. Support for AV1 encryption was added on September 20th, 2018.
- VP9 support was completed on October 14th, 2018.
This article gives you some useful command lines to use AV1 streams, but the same can be applied for VP9 streams.
Command-line for importing AV1 streams into MP4 files
To store an AV1 bitstream into an ISOBMFF/MP4 file , use the following command line. If the input file is called *.av1, its content can be OBUs (as specified in Section 5 of the AV1 specification), IVF or Annex B bitstreams. WebM streams are not supported. You can also call OBU-based bistream *.obu and IVF files *.ivf:
MP4Box -add file.av1 file_av1.mp4
If your file extension is not recognized by MP4Box, you can indicate the bitstream format with “:fmt=obu” or :fmt=AnnexB or fmt=IVF (case insensitive) as follows:
MP4Box -add file.xxx:fmt=obu file_av1.mp4
AV1 bitstreams may not contain frame rate information, you can use the following to indicate it:
MP4Box -add file.av1:fps=1000 file_av1.mp4
Command-line for AV1 adaptive streaming preparation
You can use the usual MP4Box command line parameters to segment your AV1 MP4 file and prepare it for adaptive streaming. The following command line will generate an MPEG-DASH onDemand manifest based on an AV1 representation (with its ‘codecs’ parameter) and it will create a segmented MP4 file with segments starting at AV1 KEY FRAMEs and targeting 1 second duration.
MP4Box -dash 1000 -profile onDemand file_av1.mp4
Command-line for AV1 encryption/decryption
Encryption of AV1 streams in MP4 files follows the general principles given by MPEG’s Common Encryption specification. To use MP4Box for encryption or decryption, use the following command lines where the file ‘info.xml’ is an XML file that provides encryption parameters, as described in more details here. Example of such XML files can be found in our test base.
MP4Box -crypt info.xml -out file_av1_encrypted.mp4 file_av1.mp4
MP4Box -decrypt info.xml -out file_av1_decrypted.mp4 file_av1_encrypted.mp4
Acknowledgements and conclusion
As usual, if you find any bug or miss documentation, let us know.
Apple has announced this week at WWDC2017 support for the High Efficiency Image Format (HEIF) (see video here). HEIF is a new image format defined within MPEG, by companies such as Apple, Nokia, Canon, … and by the GPAC team and Telecom ParisTech. So, the GPAC tools are already capable of producing HEIF images. This post provides instructions to do so.
It’s demo season !
We are also exhibiting at the Future en Seine event as part of the 4Ever-2 project, where we demonstrate hybrid scalable broadcast broadband with an AVC 1080p 50hz SDR base broadcast enhanced with an SHVC UHD HDR (PQ) layer carried over broadband DASH, check it out !
SHVC decoding is powered by our close friends at openHEVC, broadband/broadcast synchronization is achieved through MPEG-2 TS TEMI.
During this project, the GPAC team has standardized the MPEG-2 TEMI extensions used for broadcast-brodband synchronization and implemented several demos based on this techno (small tutorial here on how to use GPAC for such demonstrations).
GPAC is a Free Software multimedia framework. The project covers different aspects of multimedia, with a focus on multimedia packaging and presentation technologies (graphics, animation, interactivity, VR). We provide popular packagers, streamers and players on http://www.gpac.io.
The GPAC team builds tomorrow multimedia standards. The GPAC team is renowned for its participation in standards (ISO/MPEG, W3C, etc.). GPAC is the reference software for some core multimedia technologies and drives innovative technologies (scalable and interactive video, etc.).
The internship aims at exploring the CMAF standard. CMAF aims at unifying all the existing video streaming formats and is backed by Apple and Microsoft. The role of the intern is to participate in the development of a CMAF validation service.
Continue reading Internship: next-generation video streaming analyzer (Paris, France)