Video DevOps & Live Streaming

Published by cyang on

Super Bowl LI Football, Super Bowl

Happy Super Bowl Sunday! Wooohoooo!

The Super Bowl is practically a national holiday in the US. Except that instead of an awkward dinner with family where your aunt has a little too much to drink and starts spilling family secrets, you get to hang with your friends and eat what you want. Who’s watching the game on their TV and who’s watching it via a mobile device? Last year over 100 million people watched the Super Bowl. I can’t wait to see the 2017 stats on how many people watch the big game using live video streaming. Video Live Streaming is a MUST now. We REQUIRE it. Isn’t it amazing how quickly our demands evolve with technology?

Super Bowl Fans, Football Fans, Watching TV

Let’s say you are watching the football game from your phone. Maybe you are stuck at the airport, waiting to board because you have to be onsite with a client early Monday morning. Perhaps you are on a ski vacation and catching the game from the lift in between runs. Or worse, you are at the ER waiting for your child to get stitched up from a horseplay encounter with the edge of the coffee table. Who knows but you are relying on a WIFI or mobile network connection for live video. You are watching the kickoff, the plays, the tackles, the score, the commercials, the … and then your screen freezes. Oh my. Temper, temper.

Phone frustration

More and more applications are supporting video content. Why? Emotions. When we get our content delivered via a Live or pre-recorded video, we FEEL the emotions (the energy, the positivity, the hope, the seriousness) of the message. It is a shared experience. We love to get real time new information via the web without having to read it. Video is our preferred media type. No doubt, video is the easiest way to market, sell, learn, provide, document, and deliver riveting content. Your Facebook ads are full videos now and the click rates are through the roof. VLOGs are the rage instead of old-fashioned Blogs.

HLS is here to stay

For many years RTMP (Real Time Messaging Protocol from Adobe) was extremely popular. However, support for it has dropped dramatically. Many CDNs no longer or never supported it. Of the CDNs that do support it, many ingest RTMP and output HLS, HDS or MS Smooth. If you have not started to move away from serving your streaming content from RTMP, NOW is the time to start.

The most popular video-streaming framework is HLS (HTTP Live Streaming) developed by Apple. HLS can distribute both LIVE and on-demand video files. This technology involves an adaptive bit rate. Basically, the client’s network capacity is detected, and the quality of the video is adjusted on the fly. The network capacity depends on such things as being connected to the Wifi or using Cellular data with different level of signals. When network is great, video chunks are sent using the highest bit rate available for the best quality. When network connection is poor, the client will automatically decrease the quality (bitrate) of the video in order to keep showing content.

HLS uses web servers (think Apache, NGinx, IIS) to send both live and pre-recorded content through a variety of streams at different bit rates, adapting to different network bandwidths. To do so, it breaks the media stream up into shorter sequential downloadable file components of their overall streams. Also, the video content can be distributed and cached across CDN’s.

Super Success

How do businesses make sure their application deployments are ready to handle the volume of streaming video? Methodical Performance and Load testing. How is this accomplished?

  • First ensure your CDN is aware of the load test. That is a best practice for any load testing effort when a CDN is involved.
  • Next, we need to emulate a population of users using varying bit rates to represent network connections. It is vitally important to validate that all bitrates are available to stream
  • It is important to have a predefined amount of video segments for all bitrates. This will allow you to scale the amount of data you stream up or down with ease and it makes validating that all data was downloaded much easier.
  • Configure your script to extract the video segments and play them in a loop so that each segment plays sequentially
  • As you raise the concurrency of virtual users you raise the concurrently of the number of video segments being played.
  • Segments that are slow to download indicate that playback is slow or jittery. Segments that are not fully downloaded indicate video that is not playing. Users are experiencing poor video quality.
  • Monitor the infrastructure for bottlenecks and tune for scalability.

Depending on how popular the content is, there could be hundreds, thousands, sometimes millions of curious people jumping on a live stream. Be ready. Contact TPC for a Performance Engineering statement of Work and we can help you ensure you don’t fumble your customers away.

Let’s Work Together

Thank you! Your subscription has been confirmed. You'll hear from us soon.