Results 1 to 9 of 9

Thread: value of EXT-X-TARGETDURATION when using custom playstart/playduration

  1. #1
    Join Date
    Mar 2010
    Posts
    12

    Default value of EXT-X-TARGETDURATION when using custom playstart/playduration

    when using cupertino on demand streaming of AAC audio file, the content of the wowza-generated playlist with audio chunks looks like:

    #EXTM3U
    #EXT-X-TARGETDURATION:13
    #EXT-X-MEDIA-SEQUENCE:1
    #EXTINF:11,
    media_1.ts?wowzasessionid=1584231945
    #EXTINF:12,
    media_2.ts?wowzasessionid=1584231945
    #EXTINF:11,
    media_3.ts?wowzasessionid=1584231945
    #EXTINF:11,
    media_4.ts?wowzasessionid=1584231945
    #EXTINF:10,
    media_5.ts?wowzasessionid=1584231945
    #EXTINF:13,
    media_6.ts?wowzasessionid=1584231945
    #EXTINF:11,
    media_7.ts?wowzasessionid=1584231945
    ...
    #EXTINF:11,
    media_54.ts?wowzasessionid=1584231945
    #EXTINF:1,
    media_55.ts?wowzasessionid=1584231945
    #EXT-X-ENDLIST
    Now, when I specify the playstart/playduration, either by passing the wowzaplaystart and wowzaplayduration parameters to the initial playlist.m3u8 URL, or via httpSession.setPlayStart() and httpSession.setPlayDuration() calls in the server module, the m3u8 playlist looks like:

    #EXTM3U
    #EXT-X-TARGETDURATION:41
    #EXT-X-MEDIA-SEQUENCE:1
    #EXTINF:11,
    media_1.ts?wowzasessionid=1814880444
    #EXTINF:10,
    media_2.ts?wowzasessionid=1814880444
    #EXTINF:13,
    media_3.ts?wowzasessionid=1814880444
    #EXTINF:9,
    media_4.ts?wowzasessionid=1814880444
    #EXTINF:10,
    media_5.ts?wowzasessionid=1814880444
    #EXTINF:4,
    media_6.ts?wowzasessionid=1814880444
    #EXT-X-ENDLIST
    (this example is for playstart=30000 and playduration=57000).

    Notice the unexpectedly high value of EXT-X-TARGETDURATION in this case (41), compared to a lower value (13) in case of not overriding the playstart/playduration.

    The spec at http://tools.ietf.org/html/draft-pan...e-streaming-01
    describes this tag as follows:

    3.1.1.  EXT-X-TARGETDURATION
    
       The EXT-X-TARGETDURATION tag indicates the approximate duration of
       the next media file that will be added to the main presentation.  It
       MUST appear in the Playlist file.  Its format is:
    
       #EXT-X-TARGETDURATION:<seconds>
    
       The actual duration of the media file MAY differ slightly from the
       target duration.
    This is happening on wowza 3.0.3. I've noticed that recently there were some bugs related to this EXT-X-TARGETDURATION tag, so i'm wondering if this behavior is correct or it would create problems with playback of such streams with custom playstart and playduration.

  2. #2

    Default

    This a bug. Will address in next patch. Wil post back here when patch is available.

    Charlie

  3. #3

    Default

    This patch should address this issue:

    WowzaMediaServer3.0.3-patch8.zip

    Charlie

  4. #4
    Join Date
    Nov 2010
    Posts
    2

    Default

    This may or be related, but observing some really strange behavior. The same file streams fine using Apple Live Streaming in 2.2.3 and does not stream correctly 3.0.x (no video or audio) . Tried dev patches up to 9, no luck. I also tried cupertinoCalculateCodecs and cupertinoCalculateResolution tags for HTTPStreamer. Please see the below output:

    2.2.3 (works)
    DEBUG server comment - MediaReaderH264.mp4ReadAheadSize: 65536
    DEBUG server comment - MediaReaderH264.mp4ReadAheadTrigger: 32768
    DEBUG server comment - MediaReaderH264.mp4IndexBufferSize: 16384
    DEBUG server comment - MediaReaderH264.randomAccessReaderClass: com.wowza.io.DirectRandomAccessReader
    DEBUG server comment - audioDuration:5132.202666666667:24000:123172864
    DEBUG server comment - videoDuration:5132.168708333334:24000:123172049
    DEBUG server comment - duration:5132.202666666667
    DEBUG server comment - HTTPStreamerAdapterCupertinoStreamer.canHandle[vod/_definst_/sh.mp4/playlist.m3u8]: true
    DEBUG server comment - HTTPStreamerAdapterCupertinoStreamer.service: vod/_definst_/sh.mp4/playlist.m3u8
    INFO server comment - onPlaylist: vod/_definst_/sh.mp4/playlist.m3u8
    INFO cupertino connect 269234416 -
    INFO stream create sh.mp4 -
    DEBUG server comment - MediaReaderH264.mp4ReadAheadSize: 65536
    DEBUG server comment - MediaReaderH264.mp4ReadAheadTrigger: 32768
    DEBUG server comment - MediaReaderH264.mp4IndexBufferSize: 16384
    DEBUG server comment - MediaReaderH264.randomAccessReaderClass: com.wowza.io.DirectRandomAccessReader
    DEBUG server comment - audioDuration:5132.202666666667:24000:123172864
    DEBUG server comment - videoDuration:5132.168708333334:24000:123172049
    DEBUG server comment - duration:5132.202666666667
    INFO server comment - MediaReaderH264Cupertino.indexFile[vod/_definst_/sh.mp4][mp4a.40.2]: AAC Audio info: {MediaCodecIn
    foAudio: codec:AAC, channels:2, frequency:24000, samplesPerFrame:1024, objectType:LC}
    INFO server comment - MediaReaderH264Cupertino.indexFile[vod/_definst_/sh.mp4][avc1.77.31]: H.264 (Video may not be play
    able on older iPhone and iPod touch devices where Baseline/Level 3.0 or lower is required) Video info: {MediaCodecInfoVi
    deo: codec:H264, profile:Main, level:3.1, frameSize:1280x720, displaySize:1280x720, frameRate:23.980000}
    application/vnd.apple.mpegurl:
    #EXTM3U
    #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1505013,CODECS="avc1.77.31, mp4a.40.2",RESOLUTION=1280x720
    playlist.m3u8?wowzasessionid=269234416
    
    DEBUG server comment - HTTPStreamerAdapterCupertinoStreamer.canHandle[vod/_definst_/sh.mp4/playlist.m3u8]: true
    DEBUG server comment - HTTPStreamerAdapterCupertinoStreamer.service: vod/_definst_/sh.mp4/playlist.m3u8?wowzasessionid=2
    69234416
    INFO server comment - onPlaylist: vod/_definst_/sh.mp4/playlist.m3u8?wowzasessionid=269234416
    application/vnd.apple.mpegurl:
    #EXTM3U
    #EXT-X-TARGETDURATION:1085
    #EXT-X-MEDIA-SEQUENCE:1
    #EXTINF:22,
    media_1.ts?wowzasessionid=269234416
    #EXTINF:59,
    media_2.ts?wowzasessionid=269234416
    #EXTINF:295,
    media_3.ts?wowzasessionid=269234416
    #EXTINF:1085,
    media_4.ts?wowzasessionid=269234416
    #EXTINF:35,
    media_5.ts?wowzasessionid=269234416
    #EXTINF:236,
    media_6.ts?wowzasessionid=269234416
    #EXTINF:122,
    media_7.ts?wowzasessionid=269234416
    #EXTINF:621,
    media_8.ts?wowzasessionid=269234416
    #EXTINF:49,
    media_9.ts?wowzasessionid=269234416
    #EXTINF:29,
    media_10.ts?wowzasessionid=269234416
    #EXTINF:107,
    media_11.ts?wowzasessionid=269234416
    #EXTINF:244,
    media_12.ts?wowzasessionid=269234416
    #EXTINF:714,
    media_13.ts?wowzasessionid=269234416
    #EXTINF:11,
    media_14.ts?wowzasessionid=269234416
    #EXTINF:14,
    media_15.ts?wowzasessionid=269234416
    #EXTINF:19,
    media_16.ts?wowzasessionid=269234416
    #EXTINF:16,
    media_17.ts?wowzasessionid=269234416
    #EXTINF:12,
    media_18.ts?wowzasessionid=269234416
    #EXTINF:17,
    media_19.ts?wowzasessionid=269234416
    #EXTINF:52,
    media_20.ts?wowzasessionid=269234416
    #EXTINF:15,
    media_21.ts?wowzasessionid=269234416
    #EXTINF:232,
    media_22.ts?wowzasessionid=269234416
    #EXTINF:140,
    media_23.ts?wowzasessionid=269234416
    #EXTINF:450,
    media_24.ts?wowzasessionid=269234416
    #EXTINF:229,
    media_25.ts?wowzasessionid=269234416
    #EXTINF:112,
    media_26.ts?wowzasessionid=269234416
    #EXTINF:195,
    media_27.ts?wowzasessionid=269234416
    #EXT-X-ENDLIST
    
    DEBUG server comment - HTTPStreamerAdapterCupertinoStreamer.canHandle[vod/_definst_/sh.mp4/media_1.ts]: true
    DEBUG server comment - HTTPStreamerAdapterCupertinoStreamer.service: vod/_definst_/sh.mp4/media_1.ts?wowzasessionid=2692
    34416
    INFO server comment - onMediaFile: vod/_definst_/sh.mp4/media_1.ts?wowzasessionid=269234416
    INFO stream play sh.mp4 -
    INFO server comment - onMediaFile: contentLength:3390768
    DEBUG server comment - HTTPStreamerAdapterCupertinoStreamer.canHandle[vod/_definst_/sh.mp4/media_2.ts]: true
    DEBUG server comment - HTTPStreamerAdapterCupertinoStreamer.service: vod/_definst_/sh.mp4/media_2.ts?wowzasessionid=2692
    34416
    INFO server comment - onMediaFile: vod/_definst_/sh.mp4/media_2.ts?wowzasessionid=269234416
    INFO server comment - onMediaFile: contentLength:2600416
    3.0.3 (no audio or video)
    DEBUG server comment - MediaReaderH264.mp4ReadAheadSize: 65536
    DEBUG server comment - MediaReaderH264.mp4ReadAheadTrigger: 32768
    DEBUG server comment - MediaReaderH264.mp4IndexBufferSize: 16384
    DEBUG server comment - MediaReaderH264.randomAccessReaderClass: com.wowza.io.DirectRandomAccessReader
    DEBUG server comment - audioDuration:5132.202666666667:24000:123172864
    DEBUG server comment - videoDuration:5132.168708333334:24000:123172049
    DEBUG server comment - duration:5132.202666666667
    DEBUG server comment - HTTPStreamerAdapterCupertinoStreamer.canHandle[vod/_definst_/sh.mp4/playlist.m3u8]: true
    DEBUG server comment - HTTPStreamerAdapterCupertinoStreamer.service: vod/_definst_/sh.mp4/playlist.m3u8
    INFO server comment - onPlaylist: vod/_definst_/sh.mp4/playlist.m3u8
    INFO cupertino connect 1498416291 -
    INFO stream create sh.mp4 -
    DEBUG server comment - MediaReaderH264.mp4ReadAheadSize: 65536
    DEBUG server comment - MediaReaderH264.mp4ReadAheadTrigger: 32768
    DEBUG server comment - MediaReaderH264.mp4IndexBufferSize: 16384
    DEBUG server comment - MediaReaderH264.randomAccessReaderClass: com.wowza.io.DirectRandomAccessReader
    DEBUG server comment - audioDuration:5132.202666666667:24000:123172864
    DEBUG server comment - videoDuration:5132.168708333334:24000:123172049
    DEBUG server comment - duration:5132.202666666667
    INFO server comment - MediaReaderH264Cupertino.indexFile[vod/_definst_/sh.mp4][mp4a.40.2]: AAC Audio info: {MediaCodecIn
    foAudio: codec:AAC, channels:2, frequency:24000, samplesPerFrame:1024, objectType:LC}
    INFO server comment - MediaReaderH264Cupertino.indexFile[vod/_definst_/sh.mp4][avc1.77.31]: H.264 (Video may not be play
    able on older iPhone and iPod touch devices where Baseline/Level 3.0 or lower is required) Video info: {MediaCodecInfoVi
    deo: codec:H264, profile:Main, level:3.1, frameSize:1280x720, displaySize:1280x720, frameRate:23.980000}
    application/vnd.apple.mpegurl:
    #EXTM3U
    #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1505013,CODECS="avc1.77.31, mp4a.40.2",RESOLUTION=1280x720
    playlist.m3u8?wowzasessionid=1498416291
    
    DEBUG server comment - HTTPStreamerAdapterCupertinoStreamer.canHandle[vod/_definst_/sh.mp4/playlist.m3u8]: true
    DEBUG server comment - HTTPStreamerAdapterCupertinoStreamer.service: vod/_definst_/sh.mp4/playlist.m3u8?wowzasessionid=1
    498416291
    INFO server comment - onPlaylist: vod/_definst_/sh.mp4/playlist.m3u8?wowzasessionid=1498416291
    application/vnd.apple.mpegurl:
    #EXTM3U
    #EXT-X-TARGETDURATION:1085
    #EXT-X-MEDIA-SEQUENCE:1
    #EXTINF:22,
    media_1.ts?wowzasessionid=1498416291
    #EXTINF:59,
    media_2.ts?wowzasessionid=1498416291
    #EXTINF:295,
    media_3.ts?wowzasessionid=1498416291
    #EXTINF:1085,
    media_4.ts?wowzasessionid=1498416291
    #EXTINF:35,
    media_5.ts?wowzasessionid=1498416291
    #EXTINF:236,
    media_6.ts?wowzasessionid=1498416291
    #EXTINF:122,
    media_7.ts?wowzasessionid=1498416291
    #EXTINF:621,
    media_8.ts?wowzasessionid=1498416291
    #EXTINF:49,
    media_9.ts?wowzasessionid=1498416291
    #EXTINF:29,
    media_10.ts?wowzasessionid=1498416291
    #EXTINF:107,
    media_11.ts?wowzasessionid=1498416291
    #EXTINF:244,
    media_12.ts?wowzasessionid=1498416291
    #EXTINF:714,
    media_13.ts?wowzasessionid=1498416291
    #EXTINF:11,
    media_14.ts?wowzasessionid=1498416291
    #EXTINF:14,
    media_15.ts?wowzasessionid=1498416291
    #EXTINF:19,
    media_16.ts?wowzasessionid=1498416291
    #EXTINF:16,
    media_17.ts?wowzasessionid=1498416291
    #EXTINF:12,
    media_18.ts?wowzasessionid=1498416291
    #EXTINF:17,
    media_19.ts?wowzasessionid=1498416291
    #EXTINF:52,
    media_20.ts?wowzasessionid=1498416291
    #EXTINF:15,
    media_21.ts?wowzasessionid=1498416291
    #EXTINF:232,
    media_22.ts?wowzasessionid=1498416291
    #EXTINF:140,
    media_23.ts?wowzasessionid=1498416291
    #EXTINF:450,
    media_24.ts?wowzasessionid=1498416291
    #EXTINF:229,
    media_25.ts?wowzasessionid=1498416291
    #EXTINF:112,
    media_26.ts?wowzasessionid=1498416291
    #EXTINF:195,
    media_27.ts?wowzasessionid=1498416291
    #EXT-X-ENDLIST
    
    DEBUG server comment - HTTPStreamerAdapterCupertinoStreamer.canHandle[vod/_definst_/sh.mp4/media_1.ts]: true
    DEBUG server comment - HTTPStreamerAdapterCupertinoStreamer.service: vod/_definst_/sh.mp4/media_1.ts?wowzasessionid=1498
    416291
    INFO server comment - onMediaFile: vod/_definst_/sh.mp4/media_1.ts?wowzasessionid=1498416291
    INFO stream play sh.mp4 -
    INFO server comment - onMediaFile: contentLength:3390768
    DEBUG server comment - HTTPStreamerAdapterCupertinoStreamer.canHandle[vod/_definst_/sh.mp4/media_2.ts]: true
    DEBUG server comment - HTTPStreamerAdapterCupertinoStreamer.service: vod/_definst_/sh.mp4/media_2.ts?wowzasessionid=1498
    416291
    INFO server comment - onMediaFile: vod/_definst_/sh.mp4/media_2.ts?wowzasessionid=1498416291
    INFO server comment - onMediaFile: contentLength:2600416
    It seems like #EXT-X-TARGETDURATION:10 vs #EXT-X-TARGETDURATION:1085 could be the issue...

    This is a serious problem as it is occurring in a live environment.

    Thank you
    Last edited by gkogan; 12-02-2011 at 06:10 PM.

  5. #5

    Default

    First, the file is Main profile so be sure you are playing it on a device that support Main profile.

    Second, there must be huge distances between key frames. That is why the chunk sizes are so sporatic and so large. You should re-encode the files to have a consistent key frame interval that is a factor of the target chunk duration. Such as 2 or 5 seconds.

    Charlie

  6. #6
    Join Date
    Nov 2010
    Posts
    2

    Default

    Thanks Charlie. It plays fine using 2.2.3.

    This file was encoded by one of our vendors, so I can only provide the MediaInfo output if that helps. Please see below.

    Is there any way to force 3.0.x to simulate the behavior of 2.2.3?

    ID                               : 1
    Format                           : AVC
    Format/Info                      : Advanced Video Codec
    Format profile                   : Main@L3.1
    Format settings, CABAC           : Yes
    Format settings, ReFrames        : 2 frames
    Codec ID                         : avc1
    Codec ID/Info                    : Advanced Video Coding
    Duration                         : 1h 25mn
    Bit rate mode                    : Variable
    Bit rate                         : 1 274 Kbps
    Maximum bit rate                 : 1 509 Kbps
    Width                            : 1 280 pixels
    Height                           : 720 pixels
    Display aspect ratio             : 16:9

  7. #7

    Default

    The key frame interval is not going to show up in the media info. The fact that is plays in 2.2.3 does not mean that it should play. Newer versions of Wowza Server now produce playlists that are compliant with the newer versions of the Apple HLS specification. That is most likely why this stream is not playing in newer versions. We cannot go back to the less compliant code.

    Again, it seems the key frame interval is not consistent. To play on iOS devices it is best that the video have a key frame interval that is a factor of target duration. If you re-encode the video with a key frame interval of 2 or 5 seconds it should be fine. You can see here that this segment is very long:

    #EXTINF:1085,
    media_4.ts?wowzasessionid=269234416
    It is 1085 seconds long. That just won't work for iOS devices. I know it is not a great answer but the content needs to be re-encoded with a consistent and reasonable key frame interval.

    Charlie

  8. #8
    Join Date
    Nov 2010
    Posts
    2

    Default

    Thanks Charlie, this definitely makes sense (and it does work with other files). However, the part that does not quite makes sense to me is that the #EXT-X-TARGETDURATION:1085 tag for the 3.0 sample. The next three segments are 22,59 and 295 seconds and only the fourth one is 1085.

    While I am not defending the encoding of this particular file, there may be another issue with the EXT-X-TARGETDURATION calculation. The only significant difference between the playlists is the EXT-X-TARGETDURATION tag, so there may be something else happening which is exacerbated by the improper encoding.

    Thank you,
    Greg

  9. #9

    Default

    Per the specification the #EXT-X-TARGETDURATION is set to the largest segment. This change/fix went in in Wowza Server 3. In Wowza Server 2 the #EXT-X-TARGETDURATION was set to the target chunk duration. The Wowza Server 3 method is the right way to do it. Before making this change streams were not playing properly in iOS 5.

    Charlie

Similar Threads

  1. Replies: 1
    Last Post: 04-02-2014, 09:14 AM
  2. EXT-X-TARGETDURATION value not following setting nor real chunks info
    By tavius in forum Live Streaming and Encoder Discussion
    Replies: 3
    Last Post: 03-25-2013, 10:24 AM
  3. m3u8 without #EXT-X-TARGETDURATION
    By coolcloud in forum General Forum
    Replies: 3
    Last Post: 11-18-2012, 06:00 PM
  4. Replies: 5
    Last Post: 11-16-2011, 10:30 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •