Page 1 of 2 12 LastLast
Results 1 to 10 of 13

Thread: Setting the dvrInfo windowDuration value in the Manifest file

  1. #1

    Default Setting the dvrInfo windowDuration value in the Manifest file

    Hi,

    We are currently using a dvr window size of 60 minutes, configured in the DVR/WindowDuration property in Application.xml. However, when we download the HDS Manifest file, the dvrInfo windowDuration has the value set to -1.

    <dvrInfo windowDuration="-1"> </dvrInfo>
    Is there a way was can update the Manifest file to set the value to 3600 instead, so it matches the DVR/WindowDuration property?

    Thanks

  2. #2

    Default

    bump

  3. #3
    Join Date
    Jun 2011
    Posts
    1,037

    Default

    Hi,
    The only way we think this can happen is if the windowDuration is not set at all (so an infinite window).
    Please send more info to support@wowza.com
    Include your current Wowza version number and build, plus a zip file containing [install-dir]/conf and [install-dir]/logs
    and a public URL used to playback.
    Please also include a link to this forum thread for reference.

    Daren

  4. #4

    Default

    It turns out that the issue is present only when using a live repeater origin-edge setup. When using a simple DVR setup (as describe in http://www.wowza.com/forums/content.php?300), the window size is correctly reflected when downloading the manifest.f4m file.

    I believe this may be because of the following configuration:

    The DVR/WindowDuration value should remain 0 or be unspecified, as any purging should happen on the origin.
    as described in http://www.wowza.com/forums/content.php?306.

    So the edge is overriding the origin's window duration with its own resulting in the issue. As a result, when (using the OSMF Strobe Media Player) an attempt is made to scrub to a point beyond the beginning on the DVR window (as set on the origin), playback fails because the player thinks the window size is 0 (as set on the edge).

    What are the implications of setting the DVR/WindowDuration value on the edge to match the DVR/WindowDuration value assigned on the origin?

  5. #5
    Join Date
    May 2011
    Posts
    456

    Default

    Thank you for additional information. We are further investigating and will update this post again with more information.

    -Lisa

  6. #6
    Join Date
    Jun 2011
    Posts
    1,037

    Default

    Thanks again for the additional information. We've confirmed this as a bug. There is a fix available in a new patch. I will follow up with you privately regarding you obtaining the patch.

    - Daren

  7. #7

    Default

    Thanks Daren! I'll test it out. Since we're on the topic of dvr window durations, is there a way to dynamically set the duration on the origin on a per stream basis? We have customers who require dvr windows of different lengths based on the type of live event. Having to create a new application for each window duration is not really scalable.

    Thanks

  8. #8
    Join Date
    Jun 2011
    Posts
    1,037

    Default

    Yes, this is possible through the Recording API:
    http://www.wowza.com/forums/content....-Recording-API
    and also look at the comments section.

    There's also a discussion in the forum post here:

    http://www.wowza.com/forums/showthre...ion-per-stream

    Daren

  9. #9

    Default

    Thanks Daren. I went through the discussion and came across the following post:

    http://www.wowza.com/forums/showthre...9618#post89618

    "Currently there is no way to override the window duration via API based on the streamName. The value is set before the stream is attached to the DVR manager, and there is currently no API to set this specifically on a per IDvrStreamStore basis. I'm looking at adding this for the next build as I think its useful."

    Is that still the case? I also looked at the Recording API thread but using a HTTPProvider is not going to work for us since we'd like to set the DVR window duration automatically as soon as an encoder publishes a stream to our wowza instance. I tried implementing ILiveStreamDvrRecorder but I'm not sure what callback to register for it.

  10. #10

    Default

    Quote Originally Posted by vjagannathan View Post
    Thanks Daren. I went through the discussion and came across the following post:

    http://www.wowza.com/forums/showthre...9618#post89618

    "Currently there is no way to override the window duration via API based on the streamName. The value is set before the stream is attached to the DVR manager, and there is currently no API to set this specifically on a per IDvrStreamStore basis. I'm looking at adding this for the next build as I think its useful."

    Is that still the case? I also looked at the Recording API thread but using a HTTPProvider is not going to work for us since we'd like to set the DVR window duration automatically as soon as an encoder publishes a stream to our wowza instance. I tried implementing ILiveStreamDvrRecorder but I'm not sure what callback to register for it.
    If you need to check for a specific stream name, you'll need to do it like the snippet below.

    package com.wowza.wms.plugin.test.dvr.api;
    
    import com.wowza.wms.application.*;
    import com.wowza.wms.dvr.*;
    import com.wowza.wms.dvr.io.IDvrFileSystem;
    import com.wowza.wms.module.ModuleBase;
    import com.wowza.wms.stream.livedvr.IDvrStreamManagerActionNotify;
    
    public class ModuleDvrStreamPropertiesByStreamNameExample extends ModuleBase implements IDvrStreamManagerActionNotify, IDvrStoreListener {
        
        public ModuleDvrStreamPropertiesByStreamNameExample() { /* no-op */ }
    
        public void onAppStart(IApplicationInstance appInstance) {
            appInstance.addDvrStreamManagerListener(this);       
        }
    
        public void onAppStop(IApplicationInstance appInstance) {
            appInstance.removeDvrStreamManagerListener(this);
        }
        
        public void onDvrStreamManagerCreate(IDvrStreamManager dvrManager) {
            // Listen to store creation so we can over-ride window duration on per-stream-store basis
            dvrManager.addDvrStoreListener(this);
        }
    
        public void onDvrStreamManagerInit(IDvrStreamManager dvrManager) { /* no-op */ }
    
        public void onDvrStreamManagerDestroy(IDvrStreamManager dvrManager) {
            dvrManager.removeDvrStoreListener(this);
        }
        
        public void dvrStreamStoreCreate(IDvrStreamStore store) {
            // Individual ones get 
            WMSProperties props = store.getProperties();
            int dur = 500;
            
            String sn = store.getStreamName();
    
            if (sn.startsWith("myStream"))
            	dur = 100000;
     
            System.out.println("sn:"+sn+" winDuration:"+dur);
            // Window duration can be set on a per store basis, before the store is init-ed
            props.put(IDvrConstants.PROPERTY_WINDOW_DURATION, dur);        
        }
    
        public void dvrStreamStoreInit(IDvrStreamStore store) { /* no-op */ }
    
        public void dvrStreamStoreDestroy(IDvrStreamStore store) { /* no-op */ }
    
        public void dvrStreamStorageLoaded(IDvrStreamManager dvrMgr, IDvrStreamStore store) { /* no-op */ }
    
        public void dvrStreamStorageDeleted(IDvrStreamStore store, IDvrFileSystem fileSystem, boolean success) { /* no-op */ }
    
    }

Page 1 of 2 12 LastLast

Similar Threads

  1. nDVR Manifest file StreamType is inconsistent
    By ikiweu8382 in forum Wowza nDVR
    Replies: 3
    Last Post: 05-12-2015, 03:09 AM
  2. nDVR Manifest file StreamType is inconsistent
    By JJobse in forum Wowza nDVR
    Replies: 3
    Last Post: 04-22-2014, 07:01 AM
  3. dvr folder cannot generate manifest.txt file
    By guy1260 in forum AddOn: Wowza nDVR
    Replies: 1
    Last Post: 01-22-2013, 12:10 PM
  4. Manifest File Syntax
    By corwin in forum AddOn: Wowza nDVR
    Replies: 3
    Last Post: 01-15-2012, 09:07 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
  •