nginx-vod-module
nginx-vod-module copied to clipboard
Mapped mode id field not used in mpeg-dash streaming
In mapped mode id filed value form json used in hls response like mapped response json:
{
"playlistType": "vod",
"sequences": [
{
"bitrate": {
"v": 4050000,
"a": 128000
},
"id": "1080p30fps",
"clips": [
{
"type": "source",
"path": "/videos/1080.mp4"
}
]
}
]
}
m3u8 manifest:
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=4178000,RESOLUTION=1920x1080,FRAME-RATE=23.980,CODECS="avc1.640028,mp4a.40.2"
index-s1080p30fps-v1-a1.m3u8
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=257410,RESOLUTION=1920x1080,CODECS="avc1.640028",URI="iframes-s1080p30fps-v1-a1.m3u8"
media list
#EXTM3U
#EXT-X-TARGETDURATION:6
#EXT-X-ALLOW-CACHE:YES
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:1
#EXTINF:2.002,
segment-1-s1080p30fps-v1-a1.ts
#EXTINF:2.002,
segment-2-s1080p30fps-v1-a1.ts
id field value "transfered" to manifest as is to media list name/segment names.
But in mpeg dash playlist representation ids doesn't include id from mapped json. Why? Bug or limitation?
<?xml version="1.0"?>
<MPD
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="urn:mpeg:dash:schema:mpd:2011"
xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd"
type="static"
mediaPresentationDuration="PT6612.949S"
minBufferTime="PT6S"
profiles="urn:mpeg:dash:profile:isoff-main:2011">
<Period>
<AdaptationSet
id="1"
segmentAlignment="true"
maxWidth="1920"
maxHeight="1080"
maxFrameRate="10000/417">
<SegmentTemplate
timescale="1000"
media="dash-segment-$Number$-$RepresentationID$.m4s"
initialization="dash-init-$RepresentationID$.mp4"
startNumber="1">
<SegmentTimeline>
<S d="6005"/>
...
</SegmentTimeline>
</SegmentTemplate>
<Representation
id="f1-v1-x3"
mimeType="video/mp4"
codecs="avc1.640028"
width="1920"
height="1080"
frameRate="10000/417"
sar="1:1"
startWithSAP="1"
bandwidth="4050000">
</Representation>
</AdaptationSet>
<AdaptationSet
id="2"
segmentAlignment="true">
<AudioChannelConfiguration
schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011"
value="1"/>
<SegmentTemplate
timescale="1000"
media="dash-segment-$Number$-$RepresentationID$.m4s"
initialization="dash-init-$RepresentationID$.mp4"
startNumber="1">
<SegmentTimeline>
<S d="6014"/>
...
</SegmentTimeline>
</SegmentTemplate>
<Representation
id="f1-a1-x3"
mimeType="audio/mp4"
codecs="mp4a.40.2"
audioSamplingRate="44100"
startWithSAP="1"
bandwidth="128000">
</Representation>
</AdaptationSet>
</Period>
</MPD>
Correct, this feature is currently supported only in HLS.
@erankor Future request - support mapped ids in dash
Up-vote for this feature! This will help a lot with segments name logging and dash videos management logic. @erankor please consider this enhancement.