Category Archives: GPAC

Official AV1 and VP9 support in GPAC

Dear reader,

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.

Encryption:

MP4Box -crypt info.xml -out file_av1_encrypted.mp4 file_av1.mp4

Decryption:

MP4Box -decrypt info.xml -out file_av1_decrypted.mp4 file_av1_encrypted.mp4

Acknowledgements and conclusion

The work on AV1 and VP9 was largely sponsored by Alliance for Open Media and Netflix. Kudos to them 🙂

As usual, if you find any bug or miss documentation, let us know.

GPAC support for HEIF

⚠ The content of this page may be outdated.
Please refer to this page for more up to date information: https://github.com/gpac/gpac/wiki/GPAC-support-for-HEIF

 

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.

Continue reading GPAC support for HEIF

Check key-frame alignment with MP4Box

⚠ The content of this page may be outdated.
Please refer to this page for more up to date information: https://github.com/gpac/gpac/wiki/Check-key-frame-alignment-with-MP4Box

 

Dear adaptive streaming followers,

Many of you reported issues when packaging your encoded content to respectively HLS or MPEG-DASH using GPAC (resp. the MP42TS and MP4Box tools). Most of the time, this is due to misalignment of key-frames across the different encoded qualities. In this article, we are going to show how to check key-frame alignment.
Continue reading Check key-frame alignment with MP4Box

Leaving SVN and SourceForge, using Git and GitHub

Dear followers,

In a previous post we mentionned that we had created an official account on GitHub but at that time the migration was not complete. We still used internally the SVN repository hosted on SourceForge and in particular for our BuildBot to generate the Nightly Builds. The git repository was synced with the SVN repository.

Since last week, we have migrated all our tools to use the git repository hosted on GitHub as the official source code of GPAC. The SVN repository at SourceForge will not be maintained anymore. In fact, recent commits have already been made to GitHub which are not present on the SVN.

As part of that migration, we have changed the numbering of GPAC’s binaries. New builds now use a numbering in the form of 0.5.2-DEV-<number-of-commits-since-last-release>-<latest-git-commit-hash>-<git-branch>.

Note also that GPAC is now also automatically built on TravisCI when a commit is pushed to the repository or when a pull request is made. We hope this move to git and GitHub will help improving the code. So don’t hesitate to fork, fix and make pull requests.

The GPAC team.