MPEG-DASH Live Streaming Latency Decrease

Hello,

on behalf of my company i am currently evaluating the capabilites of MPEG-DASH live streaming for a video conferencing application.

My testing environment is a LAN in which a ffmpeg-encoded live stream is sent via rtmp to the Wowza Engine.

The engine is configured to transrate the video into different renditions and to provide the MPD. On the client-side the stream is shown either by Shaka Player or Dash.js hosted by a webserver.

After tuning the parameter of the MPEG-DASH Streaming Packetizer property there is still ~ 6 seconds latency between sender and receiver.

ffmpeg command used:

ffmpeg -f dshow -i video=“webcam name” -vcodec libx264 -g 12 -r 24 -f flv rtmp://server-ip:1935/live/myStream

MPEG-DASH Streaming Packetizer configuration:

mpegdashChunkDurationTarget 500

mpegdashMaxChunkCount 5

mpedashPlaylistChunkCount 5

Custom:

mpegdashMinimumUpdatePeriod 500

Is there any way in the Wowza Streaming Engine to lower the latency below 1 second?

A few people have achieved such low latency by using fragmented transfer of the video segments to the client.

Source: http://biblio.telecom-paristech.fr/cgi-bin/download.cgi?id=14719

Is anything like this possible with Wowza?

Thank you in advance

Hello shark_tec,

I do not believe that 1 second latency has been achieved using Wowza.

In order to achieve lowest possible latency you would want to use RTSP and/or RTMP, you should follow the instructions described here:

https://www.wowza.com/docs/how-to-set-up-low-latency-applications-in-wowza-streaming-engine-for-rtmp-streaming

The HTTP based streaming protocols like MPEG-DASH and Apple HLS are not suitable for low latency streaming because of the nature of these streaming protocols. These are chunk based protocols, which by definition cannot be low latency. Normally, a player will need to download several http chunks (usually 3) before it can begin to play back a live stream. The latency is greatly influenced on how long each chunk is. By default, Wowza Streaming Engine is creating 10s chunks, which would induce a minimum of 30s live latency. It is possible to control the duration of the chunks created by following the instructions described in these forum articles:

https://www.wowza.com/docs/how-to-configure-apple-hls-packetization-cupertinostreaming

https://www.wowza.com/docs/how-to-configure-mpeg-dash-packetization-mpegdashstreaming

Please note that a very short media chunk (1s) can induce other playback issues. For example, it a player needs more than 1s to download a 1s chunk, it will stop the playback because it needs to wait for the chunk to be downloaded before it can play it back.

Regards,

Alex