The Challenges of Deploying Real-Time Streaming Platforms

The Challenges of Deploying Real-Time Streaming Platforms
Damian Wasserman SuVeng Oquendo

Have you heard the saying, “Whatever you do, do it right”? Doing things right isn’t always easy, but it’s always worth the effort.

This is especially true regarding state-of-the-art technology like streaming services. Providing the ability for users to access a platform and watch any video in real time requires a lot of work, something I know from my own experience. While this is well-known, only a few understand how just many resources and how much time it takes to launch a fast, responsive, scalable, and highly regarded streaming platform.

MagellanTV is a streaming platform with all those features. Today it offers more than 3,000 documentaries, series, and playlists, and has received hundreds of positive reviews. At BEON, we are proud to say that we work hard to make MagellanTV a platform of the highest quality. But the journey to get to this point, despite our extensive technical experience, was not free of obstacles.

User demand and software complexity

Streaming service users are accustomed to consuming content almost instantly. In a world where we risk losing customers if they have to wait to watch a video or play a song, the ability to provide  content that is easy to search, play, and watch on different platforms is becoming increasingly important. 

To understand this challenge clearly, look at it this way: if we wanted to play a 4K video file that weighs several GB, we would need to wait to download (buffer) for at least a few seconds or minutes. This process would repeat every time we tried to play something new, or even when we wanted to jump (seek) from one point to another. This process would leave the user sitting in front of the TV for long periods and exhaust their patience. 

Broadly speaking, the solution is to convert the same video to a lower resolution so it can be played as soon as possible, then enable the file to switch to a higher resolution once the buffer is secured.  This process delivers better video quality as long as the bandwidth allows it. But meeting this demand becomes trickier when you must provide the same speed, scalability, and data consistency across many platforms with unique requirements, complexities, and know-hows, each presenting a different adventure for developers. 

When the MagellanTV team contacted us, they had already established their services with a wide range of platforms, including web, iOS, Android, Fire TV, Roku, and smart TVs such as those made by Samsung, Vizio, Vewd, and LG. The service also featured integrations with subscription systems in each market, such as iTunes and Google Play. At the same time, it was experiencing systemic failures typical of rapid business growth, causing a high volume of customer support requests. The team needed to incorporate versatile software development professionals to manage and take the ecosystem to the next level. 

On top of all this, another factor posed an obstacle to launch the project successfully: the complexity of streaming architecture.

The architecture of a streaming platform consists of several processes to make video quality the best possible and the response time as short as it can be. This architecture starts when source videos and metadata enter the cloud storage. These files are usually very high-resolution (4K) videos and their encodings. Moving a streaming service library (3000+ files) can consume many resources. Then there is an encoding process responsible for making copies at different quality levels and bitrates, dividing them into small parts (“segments”). The manifests are then generated depending on the protocol (HLS or MPEG-DASH).

These manifests declare the “streams” — the different resolutions available — and the appropriate bandwidth to play each one. The player receives the manifest as input and decides which stream to play and when to switch from one stream to another based on available bandwidth and buffered seconds.

For the encoding process, you can use platforms like JW Player or Bitmovin, depending on the video quality. Many other companies offer this end-to-end service, such as AWS MediaConvert for encoding and MediaPackage for manifest management.

The more technologies that are involved, the higher the complexity of development. And the architecture of a streaming platform is incredibly vast. While working with MagellanTV, we kept this in mind more than ever.

The key to overcoming challenges

To meet all these challenges, each member of our technical team delved into the platform’s fields and tools. They took time to know them better, debug them, and keep up with all the requirements that arise as technology advances. But why did we take our knowledge to new frontiers if everyone already had their place and area of expertise? 

Because, with everyone knowing each part of this vast ecosystem like the palm of their hand, they were able to take on challenges from any area, work in unity, communicate assertively, and solve problems much faster. Everyone was able to contribute based on technical knowledge and critical thinking. Creating and maintaining a multidisciplinary team was the key to addressing the challenges and implementing new initiatives to improve the product and technologies we use. 

As a result of all this exploration, we found it necessary to rebuild the Android app, merging the codebase with Fire TV. This process improved the quality and consistency of the product by preventing it from working separately. Just as importantly, we identified, diagnosed, and resolved all bugs that affected the user experience.

As a result of our efforts, MagellanTV quickly gained traction and became the fast, responsive, scalable, and highly regarded streaming platform we were striving to create. The day we saw MagellanTV on the front page of the news, we celebrated as a team. We were quite happy with the results.

This story reveals a crucial truth: it’s impossible to develop a platform like this with a team of expert developers. By working in-depth with the MagellanTV platform, we saw that the key to building a successful streaming service is a team of exceptional and interdisciplinary developers (though these teams are scarcer than pure gold).

It’s hard, yet not impossible to assemble such a team. Today, there are many engineers capable of taking projects of this type. But how can you get them? There are several ways. You can place an ad in your local newspaper, use social media, or have your employees spread the word. However, going to a professional talent provider has proven to be much more effective. No matter what kind of developer (or team of developers) you’re looking for, you’ll be able to find the talent you need in no time. Among other things, a talent provider’s resources should be:

Skilled: Years of experience have ceased to have the importance they once did. Now, technical interviews and problem-solving challenges allow candidates to demonstrate their abilities. That’s why it’s in your best interest for the provider to have a proven process for attracting professionals with the needed technical skills, even if they lack experience.

Communicative: New problems will arise throughout development — that’s a fact. You want someone who can speak frankly to you and your co-workers when facing a problem and not keep their mouth shut until someone else asks.

Creative: The ability to be creative is what drives innovation in software development. You need someone who understands new concepts quickly and has no problem expressing their ideas. Coming from a different environment or culture than you and your team is a huge plus. A broader perspective is ideal for software development.

Proactive: Teamwork can be hard, messy, and complicated — yet, it’s the best way to work. A great developer will know how to work with a team and apply their talent where it can have the greatest impact. You’ll benefit from finding team members who aren’t just able to fulfill their role, but who also boost others’ work.

How to successfully develop a real-time streaming platform

As we’ve seen, anyone who wants to launch a streaming service must consider many factors, work in many areas, and put a lot of effort into finding developers that fit their needs. 

That’s why outsourcing has become the go-to solution for companies developing an architecture service as complex as this one. Regardless of the type of software professional you’re looking for, an outsourcing company will have the talent you need. At BEON, we provide engineers of the highest quality through a refined recruitment process. You can drop us a line, and we will meet your requirements in days.