Live streaming: node-media-server + Dash.js configured for real-time low latency Live streaming: node-media-server + Dash.js configured for real-time low latency node.js node.js

Live streaming: node-media-server + Dash.js configured for real-time low latency


HLS and MPEG DASH are not particularly low latency as standard and the figures you are getting are not unusual.

Some examples from a publicly available DASH forum document (linked below) include:

enter image description here

enter image description here

Given the resources of some of these organisations, the results you have achieved are not bad!

There is quite a focus in the streaming industry at this time on enabling lower latency, the target being to come as close as possible to traditional broadcast latency.

One key component of the latency in chunked Adaptive Bit Rate (ABR, see this answer for more info: https://stackoverflow.com/a/42365034/334402 ) is the need for the player to receive and decode one or more segments of the video before it can display it. Traditionally the player had to receive the entire segment before it could start to decode and display it. The diagram from the first linked open source reference below illustrates this:

enter image description here

Low latency DASH and HLS leverage CMAF, 'Common Media Application Format' which breaks the segments, which might be 6 seconds long for example, into smaller 'chunks' within each segment. These chunks are designed to allow the player to decode and start playing them before it has received the full segment.

Other sources of latency in a typical live stream will be any transcoding from one format to another and any delay in a streaming server receiving the feed, from the webcam in your case, and encoding and packaging it for streaming.

There is quite a lot of good information available on low latency streaming at this time both from standards bodies and open source discussions which I think will really help you appreciate the issues (all links current at time of writing). From open source and standards discussions:

and from vendors:

Note - a common use case often quoted in the broadcast world is the case where someone watching a live event like a game may hear their neighbours celebrating a goal or touchdown before they see it themselves, because their feed has higher latency than their neighbours. While this is a driver for low latency, this is really a synchronisation issue which would require other solutions if a 'perfectly' synchronised solution was the goal.

As you can see low latency streaming is not a simple challenge and it may be that you want to consider other approaches depending on the details of your use case, including how many subscribers you have, whether some loss of quality if a fair trade off for lower latency etc. As mentioned by @user1390208 in the comments, a more real time focused video communication technology like WebRTC may be a better match for the solution you are targeting.

If you want to provide a service that provides life streaming and also a recording, you may want to consider using a real time protocol for the live streaming view and HLS/DASH streaming for anyone looking back through recordings where latency may not be important but quality may be more key.


Have worked on similar tasks - to get as much close to real-time as possible.During research found that DASH is not quite the fastest way to achieve real-time translation. With some major tune-ups on the partner's mediaserver-side and FFmpeg we could get a 6 seconds delay. That's quite enough for us with the user-viewing part of a system. But for translation moderators and admins we want to be more real-time.But there is another solution and we use it. Websockets/WebRTC.We mostly use the Wowza streaming engine as an enterprise solution and with some tune-ups, we have achieved a 2-second WebRTC delay.

But in case of NMS there is a way to get websocket-flv streaming too just out of the box.Just for testing, with the use of their player solution at their github site, I've achieved just 4-4.5 seconds of delay right now.sample imageMaybe this information will be useful.