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.
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:
Command line example
|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.