UbikLoadPack Streaming Solution features for Video & Audio Performance

on 11 June 2021 Apple HTTP Live Streaming, DEVOPS, ECOMMERCE, HLS, JMETER, LL-HLS, LOAD_TESTING, Microsoft-Smooth, MPEG-DASH, OTT, PERFORMANCE, PRODUCTIVITY, VIDEO and Tags: , , , , , , , , with 0 comments
Video_streaming

UbikLoadPack Streaming Solution features

In this blog, we will give you a clear view of what are the features of UbikLoadPack streaming solution.

 

You are:

  • an OTT service provider
  • a streaming infrastructure hoster
  • a software company delivering video streaming solutions
  • a media company delivering live event
  • a CDN provider
  • an Origin provider

 

You want to answer questions like:

  • How much simultaneous players can my infrastructure handle without problem ? (remember of the famous lag issues faced in Australia during last world football cup)
  • Are my customers facing lag ?
  • Is my live streaming delivered with an acceptable delay to my users ?
  • Should I upgrade my infrastructure for next live streaming event ?

 

UbikLoadPack video streaming plugin is the solution you’re looking for. We have been on the market since 2015 and are today a leader in performance testing Video Streaming servers delivering HLS, LL-HLS, DASH, LOW-LATENCY DASH, SMOOTH or HDS streams.

 

Let’s discover the features of UbikLoadPack Streaming Solution 

 

Playing simulation Features:

In the table below we present the features of the plugin related to realistic player simulation:

Stream Format

Feature

Note

HLS, DASH, SMOOTH LIVE / EVENT  
HLS, DASH, SMOOTH, HDS VOD  
DASH In Low-Latency Service Offering, player simulator will adjust speed to avoid pause and latency using Service Description min and max Playback Rate
HLS LL-HLS (Low Latency HLS)

Support for:

  • Partial Segments
  • Delta update
  • Preload (By default we support 404, 410 errors for Preload hint not published. There is a property “preload_hint_not_published_response_code” to support other error code)
  • Blocking Reload (Supports adjusting metrics using the blocking duration given by the server in a header. Use property “possible_header_names” to set the possible header names.)
HLS, DASH, SMOOTH, HDS VOD/LIVE: Partial playing Play a part expressed in seconds of the Video (Live, VOD)
HLS, DASH, SMOOTH VOD: Resume playing from a point in time Ability to continue reading a video where it was interrupted by an error.
This simulates realistically how a user would interact with VOD.
HLS, DASH, SMOOTH VOD: Start from an offset Ability to start reading a VOD stream at a particular second.
This simulates users who want to view a particular moment in a video.
HLS, DASH, SMOOTH Live: Play close to live edge

This allows to simulate players which:

  • always follow live edge skipping part of the video (this can be useful for gambling for example)
  • go to live edge on start, then may be late on reading if servers/application start generating lag
HLS, DASH, SMOOTH Audio track selection This simulates a user selecting a particular audio language for a stream instead of the default one
HLS, DASH, SMOOTH Subtitles track selection This simulates a user selecting a particular language for subtitles
HLS Alternate Video selection/playing The player will download/play only the override media (audio or video).
Adding alternate media to a primary playlist allows a provider to specify one of a set of variant playlists as an override of the main presentation.
HLS, DASH Playlist filtering by Codec This allows to simulate users with players supporting different set of codecs. Just fill the codec name, and matching playlist will be used
HLS, DASH Byte-range support The player simulator will emit byte-range requests for such streams
HLS, DASH, SMOOTH Init segment support The player simulator will handle Out Of The Box requests for Init segments
DASH UTCTiming support The player simulator will handle Out Of The Box
and emit related HTTP requests if needed to compute the reference time for manifest which can be one of:

  • urn:mpeg:dash:utc:http-xsdate:2014
  • urn:mpeg:dash:utc:http-iso:2014
  • urn:mpeg:dash:utc:http-ntp:2014
  • urn:mpeg:dash:utc:ntp:2014
  • urn:mpeg:dash:utc:http-head:2014
  • urn:mpeg:dash:utc:direct:2014
HLS Session Data Download This feature allows downloading the JSON file containing session data if not inlined in manifest

Ability to parameterize values:

When doing testing or performance testing, it is critical to have a wide range of data to avoid cache effect and too optimistic results.

To make tests portable across environments, it is also important to be able to variabilize any environment specific value.

Hopefully, the plugin is integrated with JMeter and follows same approach to parameterize any value.

In order to parameterize, you can use:

Variables:

Every Virtual User has its own set of values that can be loaded from a CSV (using CSV DataSet), there are suitable for things like:

  • Manifest URL specific to a set of users
  • Bandwidth specific to a set of users
  • Custom headers

A variable used in test plan looks like this:

${varName}

See:

Properties

Parameterizing is also possible through properties. Properties are shared across all threads (aka Virtual Users). They are kind of global variables suitable for things like:

  • Path to files
  • Host names
  • Number of Threads
  • Test duration
  • Rampup of test

A property used in test plan looks like this:

${__P(propName)}

It can be passed from command line through:

-JpropName=valueOfPropName

See:

Network features:

In this paragraph, you ‘ll see that UbikLoadPack streaming solution plugin allows you to customize network configuration for test.

Bandwidth selection

Based on network bandwidth the plugin will automatically select the corresponding playlist allowing you to simulate different levels of customer bandwidth and having metrics on their user experience.

IP Spoofing

This feature of UbikLoadPack solution allows you to use multiple network interfaces of the machine performing the test.

This is useful when you have a powerful machine that is able to simulate thousand of Virtual Users and you want to check that an IP Based load balancer in your architecture is correctly doing its job.

It is also useful when each network interface is limited in terms of bandwidth, you can then use it to perform tests reaching up to “Number of Network Interface * Bandwidth limit of Network Interface”

Timeouts

UbikLoadPack allows you to adjust several network options of your test:

  • Connect timeout of each HTTP request, if the HTTP connected takes more than the configured timeout to be established, the request will be marked as Failing in timeout
  • Read timeout of each HTTP request, if the HTTP response takes more than the configured timeout to arrive, the request will be marked as Failing in timeout

Reporting features:

HTTP requests related metrics:

The plugin will also provide following metrics for each HTTP request:

  • Response time
  • Response Status
  • Response message
  • Error rate
  • Sent/received bytes

Each request will be suffixed by its type:

  • Audio/Video Chunk
  • Audio/Video Manifest
  • Subtitles
  • Audio/Video Init Segment
  • SessionData

Video Streaming UX related metrics

Besides it will provide Video related metrics giving precious information on User Experience:

  • Lag time
  • Buffer fill
  • Lag ratio with buffer fill
  • Lag ratio without buffer fill
  • Speed Rate for Dash (as specified by Low Latency Dash)
  • Offset to Live Edge (number of segments behind live giving information on potential delay to live edge)

Integration with JMeter:

Ubik Load Pack Streaming Solution features

Moreover, the plugin integrates smoothly with Apache JMeter. Apache JMeter is the famous and leading solution for performance tests. So this allows you to use all features of JMeter. For example by adding authentication before accessing video.

Among most useful features:

About UbikLoadPack :

Ubik Load Pack Streaming Solution features