Blog

EvoStream Media Server Latency Overview

The latency of a video is the amount of delay that is incurred from reality to visible video playback.  For example, you are watching yourself on a security camera feed.  You wave your hand.  The latency of the video is how long it takes for you to see yourself wave that hand in the video.

Many factors contribute to the latency of a video:

  • The time it takes to create the video in the first place and encode it
  • The time it takes the video to be put onto the network (TCP and IP network buffers)
  • The time it takes the video to be read, translated, and put back on the network for consumption (EvoStream Media Server role)
  • The time it takes to receive the video, potentially buffer it, decode it and display it to the screen (the player)

Each of these latency factors may be influenced to have either higher or lower latency.  Some items that may influence each latency factor include:

  • The amount of loss on the network
  • The frame-rate of the video
  • The configured receive or send buffer

EvoStream has run extensive tests to identify the latency not only of the EvoStream Media Server but also of common video sources and players.  Understanding the latency of all of these components is critical to the design of any low-latency live-streaming platform.

Latency Results

Through testing the various combinations of stream sources and players EvoStream has been able to identify the typical (average) latencies of the various tools.  For all of the various players and stream sources EvoStream has used the default settings and configurations.  This has been done to reflect the most common user experience while also reducing the number of variables at play in these latency tests. The only exception is Flowplayer, where the inbound buffer was set to zero (0).

The latency results, by component, are as follows:

Component Added Time (Seconds)
Media Server
EvoStream Media Server 0.1
Sources
Axis Security Camera 0.44
Open Broadcaster (OBS) 1.4
Wirecast 3.1
Players
Flowplayer (0 buffer) 0.2
JWPlayer 2.1
VLC playing RTSP 0.73
VLC playing RTMP 9.47
Android (MX Player) 3.45
EvoStream HTML 5 Player 0.8

There are a few values that immediately come into focus in the above chart:

  • The extremely low amout of time added to the workflow by the EvoStream Media Server. The EMS processes a single frame at a time allowing it to remain highly efficient in its processing.
  • VLC, when playing an RTMP stream, uses an enormous buffer, resulting in huge delays in both the playback of the stream and the initial startup of playback.
  • The stock android player buffers RTSP and so creates a large amount of latency.
  • The source of the stream matters and can greatly effect the overall latency of a workflow.

These results can also be viewed by comparing the calculated total latency of a streaming workflow with the actual observed latency of such a work flow.  This comparison can be found on the next page.

Source Source Latency EMS Latency Player Player Latency Total Calculated Avg Latency Observed Latency Delta of Observed to Calculated
Axis Camera 0.44 0.1 Flowplayer (0 buffer) 0.2 0.74 0.32 -0.42
OBS 1.4 0.1 Flowplayer (0 buffer) 0.2 1.7 1.53 -0.17
Wirecast 3.1 0.1 Flowplayer (0 buffer) 0.2 3.4 3.76 0.36
Axis Camera 0.44 0.1 JWPlayer 2.1 2.64 2.25 -0.39
OBS 1.4 0.1 JWPlayer 2.1 3.6 3.26 -0.34
Wirecast 3.1 0.1 JWPlayer 2.1 5.3 5.5 0.2
Axis Camera 0.44 0.1 VLC – RTSP 0.73 1.27 1.13 -0.14
OBS 1.4 0.1 VLC – RTSP 0.73 2.23 2.15 -0.08
Wirecast 3.1 0.1 VLC – RTSP 0.73 3.93 3.87 -0.06
Axis Camera 0.44 0.1 VLC – RTMP 9.47 10.01 10.39 0.38
OBS 1.4 0.1 VLC – RTMP 9.47 10.97 11.24 0.27
Wirecast 3.1 0.1 VLC – RTMP 9.47 12.67 12.26 -0.41
Axis Camera 0.44 0.1 Android (MX Player) 3.45 3.99 4.1 0.11
OBS 1.4 0.1 Android (MX Player) 3.45 4.95 5.07 0.12
Wirecast 3.1 0.1 Android (MX Player) 3.45 6.65 6.39 -0.26
Axis Camera 0.44 0.1 EvoStream HTML 5 0.8 1.34 1.25 -0.09
OBS 1.4 0.1 EvoStream HTML 5 0.8 2.3 2.47 0.17
Wirecast 3.1 0.1 EvoStream HTML 5 0.8 4 3.72 -0.28

*All times in seconds.

Test Parameters

The tests were performed with the following settings:

Axis Camera OBS Wirecast
GOP Size 32 Auto 240
BitRate (kb/s) Variable 1000 2025
Width 1280 1366 1280
Height 720 768 720
Frame rate Variable 30 30

Flowplayer buffer = 0

EMS maxRtmpOutBuffer = 524288

Raw Test Results

The following are the raw results from the various work flow tests.

Inbound Outbound Visual Playback Latency
Protocol Source Protocol Player Test #1 Test #2 Test #3 Average
RTSP Axis Cam Live RTMP Flowplayer (0 buffer) 0.298 0.339 0.314 0.32
RTMP OBS RTMP Flowplayer (0 buffer) 1.263 1.546 1.778 1.53
RTMP Wirecast RTMP Flowplayer (0 buffer) 3.746 3.78 3.744 3.76
RTSP Axis Cam Live RTMP JWPlayer 2.179 2.246 2.328 2.25
RTMP OBS RTMP JWPlayer 3.275 3.228 3.276 3.26
RTMP Wirecast RTMP JWPlayer 5.381 5.522 5.585 5.50
RTSP Axis Cam Live RTMP VLC 10.452 10.341 10.39 10.39
RTMP OBS RTMP VLC 11.328 11.263 11.139 11.24
RTMP Wirecast RTMP VLC 12.534 12.067 12.182 12.26
RTSP Axis Cam Live RTSP Android (MX Player) 4 3.8 4.5 4.10
RTMP OBS RTSP Android (MX Player) 4.82 5.194 5.195 5.07
RTMP Wirecast RTSP Android (MX Player) 6.969 5.428 6.772 6.39
RTSP Axis Cam Live RTSP FFPlay 1.856 2.648 2.21 2.24
RTMP OBS RTSP FFPlay 2.346 1.54 1.455 1.78
RTMP Wirecast RTSP FFPlay 4.118 6.458 7.112 5.90
RTSP Axis Cam Live RTSP VLC 1.106 1.143 1.153 1.13
RTMP OBS RTSP VLC 2.2 2.105 2.159 2.15
RTMP Wirecast RTSP VLC 4.445 3.697 3.459 3.87

This table is the results of testing direct playback from the Axis Security Camera.

Inbound Outbound Visual Playback Latency
Protocol Source Protocol Player Test #1 Test #2 Test #3 Average
RTSP Axis Cam Live RTSP VLC 1.123 1.171 1.17 1.15
RTSP Axis Cam Live RTSP FFPlay 0.374 0.608 0.844 0.61
RTSP Axis Cam Live RTSP Android (MX Player) 4.446 4.351 4.4 4.40

Copyright © 2016 EvoStream Corporation all rights reserved.

All product names and brands are property of their respective owners. All company, product and service names used are for identification purposes only. Use of these names, and brands does not imply endorsement.

Written by

The author didnt add any Information to his profile yet

Leave a Reply