MPEG-SVC in GPAC

This week was held in Incheon, South Korea, the 104th MPEG meeting. For this occasion, the GPAC team worked hard to prepare the following contribution.

[textimport http://biblio.telecom-paristech.fr/cgi-bin/ws/biblio.cgi?type=standardisation&etat=submitted&id=13808]

This contribution discusses MPEG-HEVC (see this post), WebVTT and in particular the support for MPEG Scalable Video Coding (SVC) packaging, streaming and playback in GPAC. I’ve extracted the SVC related part of this contribution in this post. This work has been done in the context of the OptiSaT2 project, in particular by Viet Thanh Trung Nguyen.

The playback support is powered by the open-source OpenSVC decoder

Splitting SVC layers into ISOBMF

SVC can now be imported in ISOBMF files with one track per layer, using Extractors to base layers. The syntax used is as follows:

Operation

Command line example

Notes

SVC Import MP4Box -add file.avc:svcmode=merged  -new file.mp4 Adds file.avc (Annex B format or ISOBMF) to the given file. All SVC layers are stored in a single track. This is the default if the svcmode parameter is not specified.
MP4Box -add file.avc:svcmode=split -new file.mp4 Adds file.avc (Annex B format) to the given file. Each SVC layer is stored in a given track.The same command can be used with an ISOBMF input to split an already imported file.
MP4Box -add file.avc:svcmode=splitbase -new file.mp4 Adds file.avc (Annex B format or ISOBMF) to the given file. All SVC layers are stored in a single track but the AVC base layer is stored in a different track.

Some more information can be found here.

MPEG-2 TS Encapsulation

SVC can now be imported in MPEG-2 TS one PID per layer, using ISOBMF files where each SVC tracks are in different layers. No specific option is required for the MP42TS utility.

RTP streaming and hinting Encapsulation

SVC files can now be hinted or streamed over RTP according to the IETF RFC using MP4Box, with one RTP stream PID per layer, using ISOBMF source files where each SVC tracks are in different layers. No specific option is required for the MP4Boxutility.

Improved SVC Playback

Thanks to the OpenSVC decoder, all these SVC transport modes are now supported for playback in GPAC. Switching between layers is achieved using ctrl+h (for high) and ctrl+l (low). SVC Switching now implies shutting down the associated network streams (stops multicast socket or PID filtering).

SVC Future Work

We plan to introduce SVC in DASH support in both MP4Box and the player for the next MPEG meeting.