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

Thread: nDVR + StreamNameAlias module

  1. #1

    Default nDVR + StreamNameAlias module

    Hi,

    We're testing out the nDVR add-on and came across an issue with the StreamNameAlias module. We currently use the module to dynamically determine the live repeater origin for a stream. We do this by using the resolveStreamAlias() method to return a fully-formed RTMP URL for the stream. This works fine for regular live streaming when using a live repeater origin-edge configuration. But when requesting a DVR stream (using the '?DVR' suffix), wowza appears to ignore the stream alias and displays the following message:

    WARN server comment - DvrStreamStoreBase.retrieveChunkFromRepeater[dvr-edge/_definst_/myStream/myStream.0] : No origin URLs defined for retrieving chunks.
    WARN server comment - HTTPStreamerAdapterCupertinoStreamer.getDvrCupertinoFragments[dvr-edge/_definst_/myStream/myStream.0] : No audio or video record found.  i:8040 a:{DvrManifestChunkEntry ty:8 index:8040 start:15977065 stop:15979016 duration:1951 pt:24288 utc:1347908274063(Sep 17, 2012 6:57:54 PM)} v:{DvrManifestChunkEntry ty:9 index:8040 start:15977077 stop:15979077 duration:2000 pt:24300 utc:1347908274075(Sep 17, 2012 6:57:54 PM)} 
    WARN server comment - HTTPStreamerAdapterCupertinoStreamer.getDvrCupertinoFragments[dvr-edge/_definst_/myStream/myStream.0] : No audio or video record found.  i:8041 a:{DvrManifestChunkEntry ty:8 index:8041 start:15979015 stop:15981104 duration:2089 pt:26238 utc:1347908276006(Sep 17, 2012 6:57:56 PM)} v:{DvrManifestChunkEntry ty:9 index:8041 start:15979077 stop:15981110 duration:2033 pt:26300 utc:1347908276068(Sep 17, 2012 6:57:56 PM)}
    The aforementioned log lines are for the HLS request: http://xxx.com:1935/dvr-edge/myStream/playlist.m3u8?DVR

    When requesting the same stream without ?DVR (http://xxx.com:1935/dvr-edge/myStream/playlist.m3u8), playback is successful, as seen below:

    INFO server comment - Wowza Media Server is started!
    INFO server comment - WowzaAlias starts
    INFO server comment - onAppStart: dvr-edge/_definst_
    INFO application app-start _definst_ dvr-edge/_definst_
    INFO server comment - resolveStreamAlias: rtmp://xxx.com:1935/dvr-origin/myStream
    INFO stream create - -
    INFO server comment - MediaStreamHTTPStreamerRepeaterBuffer.initLiveStreamRepeating: receiverClass: com.wowza.wms.httpstreamer.cupertinostreaming.liverepeater.CupertinoStreamerLiveRepeaterReceiver
    INFO server comment - resolveStreamAlias: rtmp://xxx.com:1935/dvr-origin/myStream
    INFO server comment - LiveMediaStreamReceiver.connect: rtmp://xxx.com:1935/dvr-origin/myStream:rtmp://xxx.com:1935/dvr-origin/_definst_[myStream]
    INFO server comment - CupertinoStreamerLiveRepeaterReceiver.close: dvr-edge/myStream:myStream:cupertinostreamingpacketizer
    INFO server comment - CupertinoStreamerLiveRepeaterReceiver.resetStream: dvr-edge/myStream:cupertinostreamingpacketizer
    INFO server comment - resolveStreamAlias: rtmp://xxx.com:1935/dvr-origin/myStream
    INFO server comment - CupertinoStreamerLiveRepeaterReceiver.initLiveStreamPacketizer: dvr-edge/myStream:myStream:cupertinostreamingpacketizer
    INFO server comment - LiveStreamPacketizerCupertino.init[dvr-edge/myStream]: chunkDurationTarget: 10000
    INFO server comment - LiveStreamPacketizerCupertino.init[dvr-edge/myStream]: chunkDurationTolerance: 500
    INFO server comment - LiveStreamPacketizerCupertino.init[dvr-edge/myStream]: audioGroupCount: 3
    INFO server comment - LiveStreamPacketizerCupertino.init[dvr-edge/myStream]: playlistChunkCount:3
    INFO server comment - MediaStreamMap.getLiveStreamPacketizer: Create live stream packetizer: cupertinostreamingpacketizer:myStream
    INFO server comment - resolveStreamAlias: rtmp://xxx.com:1935/dvr-origin/myStream
    INFO server comment - resolveStreamAlias: rtmp://xxx.com:1935/dvr-origin/myStream
    INFO cupertino connect 1813075085 -
    INFO server comment - resolveStreamAlias: rtmp://xxx.com:1935/dvr-origin/myStream
    INFO server comment - MediaStreamHTTPStreamerRepeaterPlay: startPlay
    INFO stream create myStream -
    INFO stream play myStream -
    We're running Wowza 3.1.2 on both the origin and the edge.

    Thanks

  2. #2

    Default

    Updated to 3.1.2 patch 14 but the issue persists. This could potentially be a showstopper for us. Any plans on releasing a patch fix?

  3. #3
    Join Date
    May 2011
    Posts
    455

    Default

    Can you confirm if you were able to play back through the alias from origin server?

    -Lisa

  4. #4

    Default

    Yes, I was. And I'm able to play back from the edge as well (which pulls from the origin) when I don't use the DVR mode. The issue appears to be with the DvrStreamStoreBase class. Looks like it's ignoring the stream alias and is looking for the origin from the Application.xml property.

  5. #5
    Join Date
    Dec 2007
    Posts
    22,013

    Default

    I will test this. I'm setting it up, I will follow-up tomorrow.

    Richard

  6. #6
    Join Date
    Dec 2007
    Posts
    22,013

    Default

    I see the problem. nDVR is using the url in edge Application.xml /Repeater /OriginURL or /ChunkOriginURL.

    I'll have to confirm, but it seems that what you are trying to do is not supported at present. If so, I'm not sure what the time frame for adding it will be.

    Can you use multiple applications as a work-around for the time being?

    Richard

  7. #7

    Default

    Hi,

    What you are trying to do may not be possible. But before conclusively saying that, I'd like to better understand your use case.

    I understand your problem is using stream name alias on the edge with DVR.
    What are you trying to accomplish by using the alias?

    Can you give me an example of the initial DVR URL from the edge and what you are aliasing it to and what the behavior is versus the expected behavior?

    It may be better to work on this in support@wowza, so its easier to send logs. Send info there and reference this ticket.

    Scott

  8. #8

    Default

    Quote Originally Posted by rrlanham View Post
    I see the problem. nDVR is using the url in edge Application.xml /Repeater /OriginURL or /ChunkOriginURL.

    I'll have to confirm, but it seems that what you are trying to do is not supported at present. If so, I'm not sure what the time frame for adding it will be.

    Can you use multiple applications as a work-around for the time being?

    Richard
    You're right about nDVR using the OriginURL and ChunkOriginURL, while the regular Live uses only OriginURL. As a result, the alias works fine for regular Live content. It's the ChunkOriginURL that appears to be problem.

    Unfortunately, using multiple applications with hard-coded live repeater OriginURLs is what we'd like to move away from since we're working on load balancing ingest into our live system. Since the live origin can fail over between machines, we need to be able to have the edge servers dynamically set the origin server when a request comes in.

  9. #9

    Default

    With latest Wowza version, I am able to set up an origin-edge DVR application and successfully use a stream alias.

    Here's what I did:
    Set up DVR origin and edge applications.
    Streamed 2 streams to the origin: dvrorigin/livestream1 and livestream2.
    Verified I could play both from the edge using DVR.

    Then I added streamName alias module.
    I used the StreamNameAlias module and defined a simple alias in conf/aliasmap.play.txt and conf/aliasmap.stream.txt:
    foo=livestream1
    *=${Stream.Name}
    Then I streamed back from the edge:
    .../dvredge/foo/manifest.f4m?dvr
    and
    .../dvredge/livestream2/manifest.f4m?dvr

    I would verify this is working first without any aliasing.
    Then add the aliasing.

    Perhaps you are doing something slightly different?

    If this doesn't work, I would email support@wowza.com, send your conf and logs from origin as well as edge, as well as information as to how you are doing the aliasing, and what player URL you are using. Reference this thread.

    Scott

  10. #10

    Default

    Quote Originally Posted by ScottKell View Post
    Hi,

    What you are trying to do may not be possible. But before conclusively saying that, I'd like to better understand your use case.

    I understand your problem is using stream name alias on the edge with DVR.
    What are you trying to accomplish by using the alias?

    Can you give me an example of the initial DVR URL from the edge and what you are aliasing it to and what the behavior is versus the expected behavior?

    It may be better to work on this in support@wowza, so its easier to send logs. Send info there and reference this ticket.

    Scott
    Hi Scott, we're using the alias to translate a stream name into a fully formed RTMP URL to the live repeater origin server. This way, the edge can use the alias to determine the live origin to connect to instead of the Repeater/OriginURL property in Application.xml.

    I've provided an example of the request in my first post above but let me elaborate on it. The initial DVR URL from the edge is http://xxx.com:1935/dvr-edge/myStream/playlist.m3u8?DVR. When the edge gets the request, the resolveStreamAlias() method logs the stream name as 'myStream'. At this point, we translate the stream name 'myStream' into the RTMP URL 'rtmp://xxx.com:1935/dvr-origin/myStream'. By doing so, the edge does not need to look up the Repeater/OriginURL property, which is hardcoded. The behavior is as shown above in the logs. The edge ignores the alias and attempts to look for the OriginURL in the XML file. This is only in the case of a DVR request from the edge. When making a regular live request from the edge, the alias is used successfully.

Page 1 of 2 12 LastLast

Similar Threads

  1. StreamNameAlias on wowza 3.5
    By Batkobiker in forum General Forum
    Replies: 3
    Last Post: 12-07-2012, 11:53 AM
  2. StreamnameAlias
    By robertookla in forum General Forum
    Replies: 3
    Last Post: 06-12-2012, 07:22 AM
  3. Using StreamNameAlias module
    By dmahoney in forum Server-side Modules and Code Samples Discussion
    Replies: 5
    Last Post: 05-01-2012, 05:27 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
  •