Delivering flawless streams, regardless of the challenges in network conditions

Eyevinn Technology
4 min readFeb 27, 2024

In the era of digital streaming, ensuring your video content delivers a seamless and robust viewing experience is paramount. The Eyevinn Chaos Stream Proxy is a groundbreaking open-source tool that aids developers and QA engineers in simulating various network conditions to test the resilience and performance of streaming services. This article will guide you through using the Eyevinn Chaos Stream Proxy (https://eyevinn.osaas.io/dashboard/service/eyevinn-chaos-stream-proxy) within the Eyevinn Open Source Cloud.

The Chaos Stream Proxy is designed to act as a middleman between the client and the streaming server, enabling the introduction of network impairments like latency, jitter, and packet loss. This simulation allows teams to evaluate and optimize streaming performance under diverse network environments, ensuring viewers enjoy high-quality content regardless of their internet conditions.

Create a chaos stream proxy instance

Open your web browser and go to https://www.osaas.io and login using your credentials. Once logged in, locate the “Subscriptions” item in the menu on the left-hand side of your screen and click on it. This will take you to the page where you can manage and explore available services.

On the Subscriptions page, look for the card labeled “Chaos Stream Proxy”. Next to the service title, there’s a drop-down menu symbolized by three dots. Click on this menu to reveal more options and select “create chaos-stream-proxy”. Enter a meaningful name for your chaos stream proxy instance.

Once your proxy is successfully started, find the proxy’s drop-down menu (again, symbolized by three dots). Click on it and select “Copy URL” to copy the proxy URL to your clipboard, e.g. https://demo-magnus.eyevinn-chaos-stream-proxy.auto.prod.osaas.io (remember this for later steps)

Simulate a 404 scenario

To specify the configurations for a particular corruption, you will need to add a stringified JSON object as a query parameter to the proxied URL. Each corruption has a unique configuration JSON object template. Each object can be used to target one specific segment for corruption. e.g.

https://<chaos-proxy>/api/v2/manifests/hls/proxy-master.m3u8?url=<some_url>&some_corruption=[{i:0},{i:1},{i:2}, … ,{i:N}

All configuration options can be found in:

https://github.com/Eyevinn/chaos-stream-proxy

To simulate a scenario where all video segments return a 404 error, you’ll need to configure the Chaos Stream Proxy rules accordingly. This setup is invaluable for testing how your player handles segment retrieval failures, ensuring graceful degradation or recovery in real-world streaming scenarios.

Status code corruptions:

In this example we will use a test stream with the following URL:

https://lab.cdn.eyevinn.technology/stswetvplus-promo-2023-5GBm231Mkz.mov/manifest.m3u8

Using the created Chaos Stream proxy with the above test stream and the configuration to return 404 on all video segments you get the following configuration:

https://demo-magnus.eyevinn-chaos-stream-proxy.auto.prod.osaas.io/api/v2/manifests/hls/proxy-master.m3u8?url=https://lab.cdn.eyevinn.technology/stswetvplus-promo-2023-5GBm231Mkz.mov/manifest.m3u8&statusCode=[{i:*,code:404}]

This will return an HLS manifest where all segments will return with a 404 response code.

Observe the result

To apply these conditions, configure your video player or streaming application to route its requests through the Chaos Stream Proxy. This typically involves setting the proxy as an intermediary for all streaming requests.

With the proxy running and configured to return 404 errors for segment requests, observe how your streaming application reacts. Does it attempt to retry the failed segments? Does it display an error message to the user? This test helps you understand and improve the resilience of your streaming service.

Conclusion

The Eyevinn Chaos Stream Proxy is an invaluable tool for any team looking to enhance the reliability and quality of their streaming service. By simulating real-world network conditions, developers can pinpoint and address potential issues before they impact end-users. Running this tool within the Eyevinn Open Source Cloud offers a scalable and efficient approach to testing and improving video streaming technologies, ensuring a top-notch viewing experience for all.

Remember, the key to a successful streaming service is not just in creating compelling content but also in delivering it flawlessly, regardless of the challenges in network conditions. The Eyevinn Chaos Stream Proxy is your ally in achieving this goal.

Magnus Svensson is a Media Solution Specialist and partner at Eyevinn Technology. Eyevinn Technology is the leading independent consulting company specializing in video technology and media distribution.

Eyevinn Technology is the world leading independent specialists in video technology, video development, and sustainable streaming. Proud organizer of the yearly Nordic conference Streaming Tech Sweden.

--

--

Eyevinn Technology

We are consultants sharing the passion for the technology for a media consumer of the future.