14 Essential Features for Developing Live Event Streaming Software

webrtc streaming

The best way to experience live events used to be seeing them in person. With the coronavirus still lurking, large gatherings of people is far from the best way of dealing with a pandemic. Even before the virus, not everyone that wanted to attend an event could actually attend it due to limitations caused by… Continue reading 14 Essential Features for Developing Live Event Streaming Software

The best way to experience live events used to be seeing them in person. With the coronavirus still lurking, large gatherings of people is far from the best way of dealing with a pandemic. Even before the virus, not everyone that wanted to attend an event could actually attend it due to limitations caused by venue size, physical location, and financial considerations. Thus, not only for the temporary consideration of covid, but for the future of entertainment as well, it is very important to build a better way of creating those events.

This is why it’s even more important than ever to choose the right live event streaming software. Even the most experienced developers will be tempted to write everything from scratch themselves; this post is for those people too. Ultimately building out every component of a full feature live streaming experience just isn’t practical. Live video is complex, and no single developer possesses all the knowledge to build an application from the ground up. To achieve your goals, you and your team will need to pull together various technologies, whether pure open source, proprietary, or more common, a combination of all of the above. Let’s take a look at some of the key features you should consider in choosing a platform to build an entertainment streaming app:

1) Interactivity

The energy of the crowd as they cheer their favorite sports team or artist heightens the live experience. The collective spirit spreads through the crowd and across to the performers on stage or the athletes on the field. In other words, it’s the interaction between the crowd itself and those they are watching that makes live events so exciting.

There are a few different elements involved in replicating this interactivity. In-app chat rooms will allow fans to communicate with each other, sharing their reactions and mimicking the social aspect of live event attendance. A flexible API will allow you to create a custom chat system or integrate with a third party provider. By extending that API further, you could develop push notifications targeted to match a users’ interests, or an automatic signaling system that lets people know when someone replies to their comments. This will encourage content engagement by accelerating the pace of a conversation bringing the experience closer to how it would be in-person.

In addition to chats, techniques for video manipulation can increase visual interactivity as well. To allow groups of friends to watch games together, you could create conference video calls between everyone. Configuring a series of screens to show a video stream from each fan could emulate a crowd. With this large series of two way connections, the athletes or performers could hear the crowd and respond to them as if they were physically there. As VR continues to advance, friends will be able to gather virtually in the same room simulating the experience of sitting together in the stadium and watching the game. In these cases you will likely want to figure out how to best integrate with 3D technologies like Unreal Engine and Unity.

To further enhance the streaming experience multi-view capabilities could be incorporated. Viewers could switch from a wide angle shot of the field or stage to close-up shots of player reactions or the backup vocalists.This high degree of personalization from selectable camera angels would only be possible with a virtual live streaming platform.

Interactivity depends heavily upon the next two categories; latency and synchronization.

2) Latency

A live stream should be just that: live. That means showing everything as it is happening in real time. If it takes multiple seconds for viewers to see or hear everything they will never feel like a part of the action. You need real-time latency.

This year, broadcasts of The Super Bowl, America’s largest sporting event, experienced latencies of at least 28 seconds (which was the just the fastest time, FYI). 28 seconds is more than enough time for someone at the stadium to text or tweet spoilers to such a widely watched event. It’s certainly nowhere near real-time streaming. Spoilers are one thing, but having multiple seconds of latency essentially ensures you won’t be able to create interactive experiences like sports betting, co-viewing with your friends and more. The Super Bowl, like most major sporting events, leveraged CDNs) Content Delivery Networks) to deliver the experience. CDNs are designed to rely on caching and latency in order to scale. More simply put, they aren’t made for interactivity.

Decreasing latency to an acceptable level requires a fundamental change to back-end architecture by moving away from traditional CDNs and moving towards protocols that were developed specifically for low latency. Unfortunately, most streaming platforms and CDNs are built on older protocols which are too slow due to the fact that they are based on HTTP. Attempts to improve those protocols such as CMAF, Low Latency HLS, Apple Low Latency HLS and even non-HTTP approaches like WebSockets and Media Source Extensions have all fallen short of delivering actual real-time latency.  They deliver a latency measured in seconds which will never be fast enough for interactive experiences that consumers are looking for.

When it comes to browser based applications, WebRTC is the only realistic choice capable of delivering sub 500ms of real-time latency. Furthermore, Native apps on mobile devices can achieve the same real time performance with RTSP. Low latency also helps in regards to synchronization.

3) Synchronization

For a fully immersive experience, spoilers need to be avoided. Synchronization will accomplish this, but there’s more to it than that.

Making sure that any data streaming out with the feed remains in sync with the video is very important as well. As an example, game statistics flashed across the screen in  a real-time graphic display should be up to date with the current action on the screen. Otherwise, fans could be confused by an inaccurate score and worry that a score had been called back due to a penalty.

Sports betting is another useful application for synchronization as well. Bets should be placed at the right time in order to prevent any accusations (or instances) of tampering. Any delay opens up the opportunity for someone at the event to place a bet or text another person to place a bet before everyone else can see what happened.

In addition to improving the fan experience, the collection of user data is of great value to the event broadcaster. Tracking things like which camera angle was most watched, or if many people dropped off the feed at a certain time is really useful. That is if–and only if–the synchronization is accurate.

Ensuring that user comments align correctly with on screen action is dependent on proper synchronization as well. Disjointed comments that come in after the events have already happened will disrupt the flow and negatively impact the user experience.

There’s a reason that Amazon Prime purchased NetInsight’s streaming technology. They figured out a clever way to solve synchronization. However, they never did solve for real-time latency or many of the other aspects needed for modern day live event streaming software.

4) Scalability

Under most circumstances, the goal for a live broadcast is to bring in as many viewers as possible. This can only be achieved with proper scalability. Otherwise, users will be unable to watch the stream and obviously have a negative experience.

Despite this fact being rather straightforward, the way to implement scaling is a little more complex.  Supporting a large number of viewers (especially for really popular performers) is only half of the equation. All the fans watching the stream need to have the same experience. That means that all subscribers should see a real-time latency stream with the highest quality possible.

Built on HTTP based server architecture, CDNs certainly provide scalability, but  at the expense of latency. As discussed earlier, this is due to the process of caching data in a variety of physical data centers slowing down the live streaming process.

Avoiding the limitations of CDNs requires a complete redesign of server-side infrastructure. One approach is to leverage cloud-based autoscaling, where servers (compute instances) can be dynamically spun up or down as needed. In order to support a wide distribution of fans from around the world, autoscaling server clusters configured in different geographic regions will ensure access to the broadcast stream. Further expanding on this utility, the use of a cross-cloud hosting solution will enable you to take advantage of the best data center regardless of the hosting provider.

5) Efficiency

Though scalability is certainly important, it needs to be viable as well. Flexibility is a key factor. Smaller than anticipated crowd sizes could be a substantial drain on financial resources if you are running large expensive servers with lots of wasted capacity. Even worse if the event is cancelled. As the name implies, autoscaling monitors the number of connections in real time and spins up servers on-demand to meet the current load.

Similarly, the autoscaling solution will also spin servers down once they are no longer needed. This saves money by further reducing server costs if fans drop off the stream at half-time or intermission.

Software efficiency remains important as well. Maximizing the number of connections per server makes sure that you are squeezing as much as possible out of all available RAM and CPU. Automatic scaling is great, but not if it requires constantly spinning up new servers for a few new subscribers.

Also of importance are client side optimizations such as supporting codecs that feature hardware acceleration. This is a concern as hardware encoders–as opposed to software encoders–are much more efficient at encoding and decoding the data contained in the stream. A good example of this is the more widely supported h.264 over H.265 and VP9.

6) Good Experience

Of course, one of the most important considerations is how everything looks from the fans’ point of view. Is it an enjoyable experience?

Supporting a full range of resolution sizes from 4K down to 240p (and eventually all the way up to 8K), is essential for a good live event broadcast. However, all the fans connecting to the stream might not have the best internet connection. Ensuring that the stream still flows smoothly over poor connectivity will maintain a positive user experience.

Three features work together to provide the best possible experience: transcoding, NACK, and ABR.

WebRTC (already recommended for real-time latency) provides quality assurances as well. Itself. Unlike slower protocols, WebRTC responds to stream conditions in real-time. As such, REMB messages sent over RTCP (an element of WebRTC used for sending flow control messages) allow the edge node to deliver just the right size stream for every network situation.

WebRTC also features NACK, which is a method of resending critical packets. A bad network connection will likely result in the client dropping packets. Rather than trying to resend each and every one of the packets, NACK identifies the ones that are most important and resends those. This prevents the network from getting further clogged with redundant requests. This will help keep the stream flowing and looking good even under poor network conditions.

Adaptive Bitrate (ABR) allows the client to request a lower bitrate that is more appropriate to the connectivity they are experiencing at that moment. That will ensure a smooth connection despite poor connectivity. Transcoding splits the stream into a variety of quality ladders (For example: high, medium, and low) so that users who can support the highest quality can subscribe to it, while users with poorer connections can still watch.

7) Forward Thinking Platform

Live event streaming software used to build your application should factor in future requirements you may need as well. The software should change as the technology evolves.

For the most recent example of shifting technology, we can examine Flash. Once a dominant piece of technology, Flash will no longer be supported at the end of 2020. HLS is next in line for discontinuation when it comes to live streaming.

Those that follow the live streaming industry foresaw the inevitable phasing out of Flash, and recognized that the best codec to replace it would be the latest web-standard WebRTC. With the support of Google, Apple, Opera, and Mozilla, it will remain up to date and functional for the foreseeable future.

Ensuring that your platform functions well is obviously a very high priority. Considering the changing nature of technology, it’s also important that the software platform you have built your application on will continue to function well. As shown by Flash, once dominant technologies are subject to age out of use which means it will take a good amount of foresight to be able to plan around that to avoid any disruptions.

WebRTC is a good technology for today, but be careful not to be locked into a single protocol. It makes sense to pay attention to new emerging technologies like Google’s QUIC as possible replacements. Luckily the WebRTC standards bodies are already bracing future protocols with QUIC being at the top of that list.

8) Multi-Platform Support

In addition to supporting a geographic distribution of users, you must support the various devices they will use. You need to allow users to watch your broadcast how they would prefer to watch it. Between different laptops with different browsers, smartphones, as well as tablets, fans will want to watch the event numerous ways. Part of attracting a broad audience comes from fully supporting them.

WebRTC has a major advantage in that it can run directly in all the major browsers (without a plugin). This includes Safari, Chrome, Edge, and Firefox. Mobile browsers are supported by WebRTC as well, but there are more effective options available. A mobile SDK is the best option to ensure consistent performance. With the ongoing development of VR, support for IoT devices such as headsets is important as well.

For those with older devices, failover support to RTMP and HLS ensures compatibility.

Of course, we must consider how your application can broadcast streams as well. The ability to switch camera angles was discussed earlier. That’s all well and good, but you must have other cameras to switch to. You could use drones for example to capture video from a different viewpoint.

9) Customization

Your live event streaming software must be customizable in order to be effective. Collecting information on viewing habits, multi-view cameras, security considerations, not to mention controlling your own back-end infrastructure (more on that below) all depend upon a flexible software platform.

Additionally, custom features are the best way to make your app stand out. Access to on-demand data such as player statistics and integrated heartbeat monitors, will further increase fan engagement.

Furthermore, there is also the idea of adding VR integrations with third party software and hardware support. As this is still an evolving technology, customization is very important so it can be flexible enough to adapt to future requirements. The live event streaming software must be able to handle the large amount of data that VR applications require.

Of course, depending upon your business model, there is also the consideration of ad insertions.

10) Recordings

Fans may want to record an important game to watch later, or keep it for prosperity. Even if it is deleted in anger later, recordings are a very useful feature to include. Furthermore, you could expand this to include in game replays or other personal recording options. As mentioned earlier, this is where synchronization plays a major role in making sure that the time sequencing correctly matches up.

Once you’ve generated the recordings, you will likely need to make them available for video on demand playback. This is where a CDN actually is still really helpful; getting your files into a good distribution provider like Fastly will ensure scalability and performance for you VOD portion of your app.

11) Flexible Off-Site Production

Moving towards a more flexible workflow was an ongoing trend that has been further accelerated by COVID. Shifting over to partially or fully of-site production spaces can be challenging. It is hard to communicate when you can’t be in the same control room with all your coworkers. Facilitating a natural and effective working environment needs real-time latency and cloud-based hosting. That ensures free flowing conversation and responsive editing with dynamically updated data elements. In other worlds, your team should be able to clearly comment on a particular scene or switch to a new camera angle at the right time.

There are additional benefits to using home-base production facilities. By processing video flows from the field, you don’t need to shell out for costly, latency-burdened satellite uplinks and driving production vans out to the physical location of the event.  This is a new level of versatility with faster turnaround times and significant cost savings.

Remote collaboration enables the development of extra features, interactive applications, and new types of content, most of which are already covered in this post. This is due to the fact that effective off-site production will capture the raw A/V feeds, including on-site announcers’ commentary.

12) Security

Protection from hackers and other forms of illegal streaming is a big issue for live event streaming. An effective tool for tracking down the source of a pirated stream is forensic watermarking. Watermarking–like many other parts of live streaming–depends upon latency considering how important it is to respond quickly.

Stream encryption is an essential way to prevent hackers from illegally accessing your streams. Encryption is the process by which information is encoded into a format that makes it unrecognizable until it is decoded with a key. In this way, information can be securely sent over the open internet from a client to a server. Once it reaches the server it must be decrypted in order to be rerouted to other pipelines so it can eventually be read and understood.

WebRTC since it automatically encrypts all streams. However, there is another element to stream security. What about unauthorized users accessing the stream illegally? Red5 Pro’s round trip authentication system enables stream authentication before gaining access to the streams. This ability to customize how access is given to users, enables fully secure access.

13) Portability

How and where you choose to host your live event platform is an important choice. A convenient choice is using a Platform as a Service (Paas). However, that decision can have dire consequences if you end up in a service trap. As Platform as a Service (PaaS) providers make decisions, you may need to move your application onto one that better supports your needs.

Like any other business, PaaS providers are subject to different business considerations. Changing market trends, a buyout from another company or just internal decisions can trigger changes. You would have little to no control over how those decisions are made which could be a big problem. Those changes could be dropping a region where many fans live, or a drastic change in their pricing. Getting locked into working with a company that doesn’t work well for you is a real issue if you don’t have the resources to rebuild your entire application.

A hosting agnostic solution with a flexible API is the best option to address this concern. This will enable you to have the freedom to port your application over to another hosting provider. The risk of being permanently fixed to a single provider is alleviated by a solution with multi-platform support. Furthermore, the aforementioned mobile SDKs should be portable as well to avoid needing to tear everything down and build it all up again.

14) Technical Support

Although this seems counterintuitive, even well built platforms might need some technical support every once in a while. This is especially true for customizable platforms which may require additional guidance to ensure that you can maximize the effectiveness of those customization options. online ticketing systems, advanced support contracts, chat channels, and can all be leveraged to make sure that all your needs are met.

Covid has greatly affected our daily lives and accelerated efforts already in progress regarding live streaming. This is especially true for sports, theatre and music venues struggling to safely open up and increase their viewership. The above features will greatly aid in building a live streaming application that could effectively bring us “back” to these events and in some ways even accentuate them.

Interested in building your own live event streaming platform? Let us show you what Red5 Pro can do by sending an email to info@red5.net or schedule a call.