• SEARCH
  • DOWNLOADS
  • MY ACCOUNT
  • Buy (0)
  • CONTACT
  • Free Trial
Wowza Logo
  • PRODUCTS
  • DEVELOPER
  • SOLUTIONS
  • PRICING
  • RESOURCES
  • SUPPORT
  • My Account
  • Buy (0)
  • SEARCH
  • Ask a question
  • Forums
    • Wowza ClearCaster Pro
    • Wowza Streaming Engine
    • Wowza Streaming Cloud
    • Wowza Player
    • Wowza GoCoder SDK
    • Wowza Developer Dojo
    • Topics
    • Questions
    • Articles
    • Users
    • Badges
  • Sign in
  • Community Home /
  • Wowza Streaming Engine /
  • Live Streaming and Encoders /
avatar image
Question by beltran berrocal · Oct 01, 2015 at 05:38 PM · live streaming and encoders

Clarification on HLS/DASH config. properties in order to reduce lag of Live stream

Hello,

I have a problem with lag/delay

on HLS is almost 60 sec and

while on DASH I've managed to reduce it to 10 seconds.

I'm streaming from Android with GoCoder (or other Android sources) and always using 1 second key frame interval (which I understand is the minimum since it expects an int)

As suggested on these forum posts



  • How to configure Apple HLS packetization (cupertinostreaming)
  • How To reduce delay in HLS
  • HLS From Live Camera

    I've tried reducing these HLS settings

    cupertinoChunkDurationTarget	to 1000 ms
    cupertinoMaxChunkCount	        to 3  (default 10)
    cupertinoPlaylistChunkCount	to 1  (default 3)


    but didn't succed in reducing the lag. I only got a choppier and more unreliable experience on a native <video> tag.

    The log shows that in spite of these settings I still have a 10 second duration of the chunk (If I'm understanding well what this means)

    LiveStreamPacketizerSanJose.endChunkTS[live/_definst_/guide.stream]: Add chunk: id:3 a/v/k:435/181/12 duration:10084


    1- Are there other parameters to set in order to reduce the lag in HLS Live streams? We are aiming at maximum 5-10 seconds

    What about the "HTTP Streamers Cupertino Settings"

    I tried also with the mpeg dash version (with the bitdash player)

    and changed just the

    mpegdashChunkDurationTarget to 1000 ms (instead of the 10.000 default)


    This managed to reduce the lag to 10 seconds, instead of 60

    I left the

    mpegdashMaxChunkCount default 5
    mpegdashPlaylistChunkCount default 5


    As changing them created choppy unreliable experiences

    2- Are there other parameters to set in order to reduce the lag in DASH Live streams?

    3- Am I understanding these properties right?

    lag = mpegdashChunkDurationTarget * mpegdashMaxChunkCount
                    = 1000 ms * 5 = 5000ms = 5 seconds
     


    3.1 - I should see a 5 second lag, instead of a 10 second lag, right?

    I know we should take into account other possible lag sources that pile up, but how is it possible that, in the same conditions, if I switch to an RTSP to a flash video player the lag drops down to 3 seconds??

    4 - Are MPEG DASH & HLS so much slower? (like 3 times at best?)

    5 - what does mpegdashPlaylistChunkCount or cupertinoPlaylistChunkCount actually do?

    Thanks in advance for the help and clarifications
  • Comment

    People who like this

    0 Show 0
    10 |600 characters needed characters left characters exceeded
    ▼
    • Viewable by all users
    • Viewable by moderators
    • Viewable by moderators and the original poster
    • Advanced visibility
    Viewable by all users

    2 Replies

    · Add your reply
    • Sort: 
    avatar image

    Answer by Paul Shields · Oct 27, 2015 at 01:11 PM

    Hi,

    Unfortunately with HTTP streams that are chunk based there is always going to be more latency than say with RTMP or RTSP. Having very small chunk duration targets is the way to go, but if you go too small then you may get choppy playback. Ensure that the keyframe is a factor of chunk duration target (which if set to 1 is obviously the case). The articles you linked to are really the best source for describing the various properties, and it really is a matter of experimenting with both the encoder and the chunk settings until you find a stable mix, but don't expect to get close to RTMP or RTSP latencies. This delay is not just at the Wowza level but also at the player level as the spec requires a minimum number of chunks before it begins the stream. The HLS RFC is a good place to start if you wish to understand the internals of chunk based HTTP streaming delivery.

    Paul
    Comment

    People who like this

    0 Show 1 · Share
    10 |600 characters needed characters left characters exceeded
    ▼
    • Viewable by all users
    • Viewable by moderators
    • Viewable by moderators and the original poster
    • Advanced visibility
    Viewable by all users
    avatar image beltran berrocal · Nov 06, 2015 at 06:41 PM 0
    Share
    Thanks Paul for the clarification.

    I'm guessing MPEG Dash has the same problem as HLS and it is "chunk" based, right?

    If this is the case, neither HLS nor MPEG Dash will ever get the speeds of an RTMP, right?

    ... and people say "flash is dead" :) ...
    avatar image

    Answer by Daren Johnson · Nov 12, 2015 at 11:27 PM

    Hi,

    They are not real-time protocols for sure, and were not designed to be. RTMP and RTSP protocols are real-time by name and by design.

    Daren
    Comment

    People who like this

    0 Show 0 · Share
    10 |600 characters needed characters left characters exceeded
    ▼
    • Viewable by all users
    • Viewable by moderators
    • Viewable by moderators and the original poster
    • Advanced visibility
    Viewable by all users

    Your answer

    Hint: You can notify a user about this post by typing @username

    Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

    Follow this Question

    Answers Answers and Comments

    1 Person is following this question.

    avatar image

    Related Questions

    Problem with network camera(RTSP) live Smooth Streaming 1 Answer

    Big Buck Bunny (sample.mp4) Great Encoder ... how did they encode it? 3 Answers

    RTMP Relay 1 Answer

    How can I block rtsp traffic?? 1 Answer

    Forwarding a stream to another server 1 Answer

    Hot Topics
    • Streaming Protocols
    • Wowza SDKs
    • AWS Hosting
    • Deployment Options
    • Load Balancing
    • Content Security
    Product Sign-in
    • Wowza Streaming Cloud
    • Wowza Player
    Under the Hood
    • Developer Tools
    • Wowza System Status
    • Test Players
    • Developer IDE
    Partners
    • Partners Overview
    • Find a Reseller
    • Channel Partner Program
    • OEM Program
    • Wowza Reseller Portal
    Company
    • About Us
    • Blog
    • News
    • Events
    • Careers
    • Customers
    • Contact Us
    Stay Connected
    Sign Up for Our Blog
    Select a Language
    • English
      • English
      • Español
      • 日本語
      • 한국어
      • हिन्दी भाषा
      • 中文
      • русский язык

    © 2005–2019 Wowza Media Systems, LLC. All rights reserved.   Terms | Privacy | Trademarks | Legal


    Enterprise
    Social Q&A

    • Anonymous
    • Sign in
    • Create
    • Ask a question
    • Create an article
    • Forums
    • Wowza ClearCaster Pro
    • Wowza Streaming Engine
    • Wowza Streaming Cloud
    • Wowza Player
    • Wowza GoCoder SDK
    • Wowza Developer Dojo
    • Explore
    • Topics
    • Questions
    • Articles
    • Users
    • Badges