Results 1 to 10 of 10

Thread: Generate keyframe when stream is played?

  1. Default Generate keyframe when stream is played?

    I'm working on an origin / edge system that involves both Wowza and FMS origins. I find that when a stream is played from FMS, FMS will generate a keyframe and send that as the first frame.

    I'm finding that when pulling from my wowza origins, the same does not hold true. Is there a configuration setting or API method that will cause Wowza to generate a keyframe as FMS does?

  2. #2

    Default

    Wowza always send a key frame as the first frame. It will never send anything else as the first frame. Not sure how you are looking at it but we work the same way.

    Charlie

  3. Default

    The way I've been testing is as follows:

    1. Start pulling the stream using MediaCasterStreamMap.acquire(). The stream is using a 10 second keyframe interval for the purposes of the test.
    2. Start a thread that tests for a keyframe using getLastKeyframe(), sleeping for 20ms between tests
    3. logging a message when getLastkeyFrame returns an AMFPacket, rather than null

    When pulling from FMS, getLastKeyFrame always returns an AMFPacket within 1000ms (which includes the time it takes for the mediacaster to get hooked up to FMS), but when pulling from Wowza, it can take upwards of 12000ms.

    So, am I correct in assuming that Wowza just doesn't send any video data over the stream until a keyframe is available on the source stream, where FMS will generate a keyframe even if there isn't one immediately available on the source?

  4. #4

    Default

    FMS is most likely going back in time to grab the key frame from an internal buffer. This will add latency to the stream. When using the live stream repeater Wowza Media Server does not do this. We do not go back in time to grab a previous key frame. We intead wait for the next key frame. This is so we do not inject latency into the origin/edge connection. We do go back in time if the connection is not origin/edge and this is based on the player NetConnection.bufferTime.

    Charlie

  5. Default

    Thanks for the clarification Charlie.

    I take it there's nothing exposed in the IMediaCasterNetConnection interface that would allow me to send a value on the repeater connection to get Wowza to include a bufferTime property in the request?

  6. #6
    Join Date
    Sep 2011
    Posts
    1,934

    Default

    Hi
    Yes that's correct, there's nothing exposed in the IMediaCasterNetConnection interface that would allow me to send a value on the repeater connection to get Wowza to include a bufferTime property in the request

    Jason

  7. Default

    Thanks Jason.

    Let's look at this from the opposite direction. Do you see any clear path on the origin side to force the origin to start sending video data from the last buffered keyframe when the client is a live stream repeater?

  8. #8
    Join Date
    Sep 2011
    Posts
    1,934

    Default

    Hi
    No I'm afraid this is not possible at the moment.

    Jason

  9. #9
    Join Date
    Dec 2007
    Posts
    21,962

    Default

    Jay,

    Take a look at this article:

    http://www.wowza.com/forums/content.php?79#reduceDelay

    Richard

  10. #10
    Join Date
    Dec 2007
    Posts
    21,962

    Default

    Jay,

    Note that this might help, not 100% certain however

    Richard

Posting Permissions

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