-
Notifications
You must be signed in to change notification settings - Fork 557
bssplit
Warning
GPAC's wiki has moved to wiki.gpac.io.
This github wiki will no longer be updated.
You can contribute to GPAC's documentation here.
Register name used to load filter: bssplit
This filter is not checked during graph resolution and needs explicit loading.
Filters of this class can connect to each-other.
This filter splits input stream by layers and sublayers
The filter supports AVC|H264, HEVC and VVC stream splitting and is pass-through for other codec types.
Splitting is based on temporalID value (start from 1) and layerID value (start from 0).
For AVC|H264, layerID is the dependency value, or quality value if svcqid
is set.
Each input stream is filtered according to the ltid
option as follows:
- no value set: input stream is split by layerID, i.e. each layer creates an output
-
all
: input stream is split by layerID and temporalID, i.e. each {layerID,temporalID} creates an output -
lID
: input stream is split according to layerlID
value, and temporalID is ignored -
.tID
: input stream is split according to temporal sub-layertID
value and layerID is ignored -
lID.tID
: input stream is split according to layerlID
and sub-layertID
values
Note: A tID value of 0 in ltid<
8000
/code> is equivalent to value 1.
Multiple values can be given in ltid
, in which case each value gives the maximum {layerID,temporalID} values for the current layer.
A few examples on an input with 2 layers each with 2 temporal sublayers:
-
ltid=0.2
: this will split the stream in:- one stream with {lID=0,tID=1} and {lID=0,tID=2} NAL units
- one stream with all other layers/substreams
-
ltid=0.1,1.1
: this will split the stream in:- one stream with {lID=0,tID=1} NAL units
- one stream with {lID=0,tID=2}, {lID=1,tID=1} NAL units
- one stream with the rest {lID=0,tID=2}, {lID=1,tID=2} NAL units
-
ltid=0.1,0.2
: this will split the stream in:- one stream with {lID=0,tID=1} NAL units
- one stream with {lID=0,tID=2} NAL units
- one stream with the rest {lID=1,tID=1}, {lID=1,tID=2} NAL units
The filter can also be used on AVC and HEVC DolbyVision streams to split base stream and DV RPU/EL.
The filter does not create aggregator or extractor NAL units.
ltid (strl): temporal and layer ID of output streams
svcqid (bool, default: false): use qualityID instead of dependencyID for SVC splitting
sig_ltid (bool, default: false): signal maximum temporal (max_temporal_id
) and layer ID (max_layer_id
) of output streams (mostly used for debug)