Customers now watch online video every day, everywhere and on every device. Mobile and tablet internet usage exceeded desktop for first time worldwide in October 2016. By 2017, online video accounts for 74% of all online traffic. The question about video streaming is now: How will I deliver good quality video for everyone in every possible situations? The solution is ABR, the Adaptive Bitrate Streaming.
What is Adaptive Bitrate Streaming?
Let’s imagine you just made a video and want to share it on the internet. You want to share the best version you have. So, you just post a beautiful 1920x1080px video. People watch it at home on their desktop, on the train through a tablet or in the subway on the phone. They watch it in the city or in the countryside. Now you can guess the problem: is your video being read smoothly for every watchers? No, because it is not adaptive.
Let’s imagine you just made a video and want to share it on the internet. You want to share adapted version to everyone. So, you just post a beautiful 1920x1080px video AND a 1280x720px AND a 854x480px AND a 426x240px. People can now choose the one they watch depending on they are on their desktop, their tablet or their phone. Maybe can you suspect another problem? What if the internet connection slowdowns while reading?
Let’s imagine you just made this video, share it with different quality AND you allow to switch from one quality to the other. I can now watch your video on my tablet and move from the city to the countryside by train, I will never wait for buffering time and always see the video in the best quality I can load. That’s Adaptive Bitrate Streaming.
How to do Adaptive Bitrate Streaming?
You want your customers to watch your videos with the best quality they can get. Therefore, you choose to use Adaptive Bitrate Streaming. Different technologies are available to do that. Here are the main three:
- MPEG-DASH: Dynamic Adaptive Streaming over HTTP (DASH) became an International Standard in November 2011.
- HLS: Apple HTTP Live Streaming is an HTTP-based media streaming communications protocol implemented by Apple as part of QuickTime X and iOS.
- SMOOTH: Microsoft Smooth Streaming is an IIS Media Services extension that enables adaptive streaming of media to clients over HTTP.
Those three technology are based on the same concept. The media is encoded in multiple versions with different bit rates. Each version is uniformly segmented into small parts. A manifest lists all available versions and their segments. The client can now choose a version and load the firsts segments. Depending on the download speed, the client can also load the next segment from the upper or lower version.
How to trust my server with a highly variable technology?
You now deliver videos with Adaptive Bitrate Streaming. As usual, you want to test your server infrastructure. You know that a site that loads in 3 seconds experiences a 50% higher bounce rate than a site that loads in 1 second. Therefore, you want to be sure you will not be overflowed by the requests. Your problem with the Adaptive Bitrate Streaming is how to test it? You need to simulate a reader for each format, each version and even more, a reader which can move from a version to another at any time. It requires time, skills and money; you do not know how to handle it.
Here is where we get in the game. Our VideoStreaming Plugin for Apache Jmeter is made for you. You produce VOD or Live streaming with MEG-DASH, HLS or SMOOTH. UbikLoadPack VideoStreaming Plugin offers an out-of-the-box solution to test it.
You can do your tests in 4 steps only
- Add the sampler to your test plan
- You may first start JMeter with the plugin. Documentation is provided with the plugin. Then, you just have to create a test plan and add an ULP Video Streaming Sampler.
- Inform the video URL and optional settings
- Next, you fill in the video URL. You can also inform additional options:
- Play options
- Timeout options
- Set up the advanced settings for ABR
- When selecting the adaptive bitrate option in the network options, a new element will be added under the sampler. It allows you to configure a precise bit rate for a precise number of chunks to play.
- You may click on the “Add” button. Then, new text fields will appear. On the first one, you fill in the bit rate you want. A list of the available bit rates can help you on the right side of the frame. On the second one, you fill in how many chunks will use this parameter. During the test, the different bit rate parameters will be applied to the number of chunks filled in from the top to the bottom of the list.
- Advanced settings also means advanced metrics. On the bottom of the main frame, a list of sample_variable are proposed to add to the user.properties file before running the test. Those new variables will return the percentage of chunks read in the given bit rate.
- Analyze the results
- That’s it. You can run your test plan and analyze the results.
Full explanation are available here.
- Ubik Load Pack is a JMeter based solution for complex protocols.
- Follow us on Twitter and StackOverflow.
- Follow Apache JMeter on Twitter
- Reporting feature in JMeter 17 January 2019
- Shift left your performance tests with JMeter and Maven 15 January 2019
- Running a Video Streaming Performance Test with Blazemeter and UbikLoadPack 14 January 2019