nginx-vod-module icon indicating copy to clipboard operation
nginx-vod-module copied to clipboard

Mapped mode id field not used in mpeg-dash streaming

Open maximk-1 opened this issue 1 year ago • 4 comments

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>

maximk-1 avatar Aug 10 '23 13:08 maximk-1

Correct, this feature is currently supported only in HLS.

erankor avatar Aug 16 '23 20:08 erankor

@erankor Future request - support mapped ids in dash

maximk-1 avatar Aug 17 '23 11:08 maximk-1

Up-vote for this feature! This will help a lot with segments name logging and dash videos management logic. @erankor please consider this enhancement.

dkashin avatar Nov 01 '23 12:11 dkashin