Results 1 to 3 of 3

Thread: switching bitrate streams on server and piping thru current wowza-client connection

  1. #1

    Default switching bitrate streams on server and piping thru current wowza-client connection

    We are setting up an adaptive streaming application that is primarily wowza server-side. On the Wowza side for each client we have 3 streams available, the goal is is to 1) find the current client's bandwidth *2) seamlessly switch between available video / audio streams (hi / med / lo bitrate) as required.

    We are determining if Wowza can redirect packets from an alternative bitrate stream "on the fly" to a subscriber over RTMP.

    For example, when a client first connects over RTMP to Wowza, one of 3 live streams is played. If a routine running in a Wowza module determines that the stream should switch to another quality, we'd like to pipe packets from one of these alternate live streams to the existing stream that the subscriber is playing. We do not want this custom RTMP client that they are building to do any bandwidth checking on its own or switch streams on another play command. Is this possible?

    Is it possible to detect bandwidth wowza server-side by sending stream over socket, detect data consumption, and the server calculates differential on server?

    Does Wowza always send out the SPS and PPS before each keyframe in h264 bit-stream?

    thanks for helping us with this critical information.

    Best Regards


  2. #2
    Join Date
    Dec 2007



    For RTMP clients you can do RTMP Dynamic Streaming. This a set of APIs actually, mostly built around and NetStream.play2(). JW Player has a good implementation of these APIs, and Wowza has integration with JW Player to leverage the server-side smil used for HTTP clients, client-side in JW Player for it to know what bitrate renditions are available and to switch as necessary. Again, this is JW Player's implementation of this API, feature set in Flash. If you are going to build this out your self, there is a lot of work to do and none of our examples are useful as starting place or reference.

    Take a look at the 2nd example in this JW Player 6 article, which shows how to do what I am referring to, leveraging server-side smil client-side. And it does cupertino streaming if opened in a iOS device.

    No, Wowza cannnot by itself detect bandwidth. It is something the client has to initiate and participate in. HTTP clients have bandwidth detection built-in. By the time a HTTP playback client downloads one chunk, it knows the chunks size and how long it took to download = bitrate, etc., continuous bandwidth checking and switching as necessary, derived from what it is already doing. RTMP clients have to send packets back and forth and measure size/time, something that is not happening as part of normal RTMP streaming, as in the HTTP playback client. Flash apps that use RTMP Dynamic streamng do this by continuously monitoring the object. You could use the old BWCheck method for the RTMP client, which gives a one-time, connection-time calculation that you can use to select a rendition. This is already archaic, so I won't even point to it. It is more difficult to use and much less effective. Network conditions can be volatile, the connection-time calculation might not be relevant a few seconds later.

    What you describe is not built-in and sounds novel to me. I don't know how you might make that work, I have a doubt that it can work. But, in any case, each stream has to be key frame aligned for any kind of ABR switching to work. From Wowza's point of view, switching RTMP clients and HTTP clients is not different. Either client requests the switch based on its calculations, Wowza performs the switch. And either way, key frame alignment is necessary for that to work. You can look at PTS and DTS values to debug alignment following this guide:

    Last edited by rrlanham; 05-18-2013 at 05:35 AM.

  3. #3
    Join Date
    Dec 2007


    Here is an Adobe article on using the RTMP Dynamic Streaming APIs


Similar Threads

  1. How to monitor/debug adaptive bitrate switching on Wowza side
    By mtortolano in forum Video On Demand Streaming Discussion
    Replies: 2
    Last Post: 05-14-2013, 06:55 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