There are so many ways viewers can access video content. From smartphones and tablets to smart TVs and gaming consoles, the possible combinations of devices, operating systems, and browsers are endless.
As a media publisher, the optimal way to maximize your reach is to ensure cross-platform media compatibility. This requires building a tech stack with maximum compatibility.
In this guide, we’ll discuss the ins and outs of cross-platform media distribution for broadcasters. We’ll start by covering the basics before we dive into the step-by-step process for building a tech stack with cross-platform support.
The basics of cross-platform media distribution
Creating a universal experience is key for professional broadcasters. It’s essential to ensure that users can access your stream, regardless of the device or operating system they use.
Over the past years, we’ve seen most services move from standard browser support to mobile. Today, it’s clear the horizon is expanding towards smart TVs. The reason is simple: if you don’t deliver content to the big screen, a lot of potential is being untapped.
Developing apps for streaming on smart TVs will get you in front of users who prefer big-screen viewing. However, this requires more advanced technology than streaming to browsers or mobile apps. Although it’s a more serious undertaking, many broadcasters find it valuable because it allows them to offer a better viewer experience, as it accommodates the preferences of a larger audience.
How to implement cross-platform media distribution
Now that you understand the importance of creating a cross-platform viewer experience, let’s break down what you need to do to bring this operation to life.
1. Understand the platforms
The first step to creating a streaming experience with cross-platform support is to understand the platforms you’ll need to distribute to.
Web browsers on desktop devices are relatively standardized, reducing the complexity of supporting them. Mobile devices have mostly settled on two operating systems, Android and iOS, making those platforms easy to access.
However, smart TV and connected devices are where things get more complicated. The list of operating systems (OSs) and differences between versions of the same OS is extensive. The most prevalent smart TV and connected device operating systems include:
- Tizen
- tvOS
- Android TV
- Firefox OS
- Opera TV
- Vidaa U
- Roku
- FireOS
- Google Cast
- PlayStation
- Xbox
While some grouping is possible based on the underlying technologies, there are many layers, so it’s essential to tackle this efficiently.
An easy way to approach this problem is through a technology-based schema. For example, platforms such as Tizen, webOS, Firefox OS, Opera TV, Vidaa U, Google Cast, PlayStation, and Xbox all run on HTML5. Operating systems such as Android TV and Fire OS also share a standard technology because their underlying architecture is the same, allowing for development in Java across both platforms.
Taking this approach (and even reusing HTML5 for desktop reach and Java for Android mobile reach) makes a lot of sense. In practice, you can simplify this into four families of platforms: web (HTML5) based, Android/Fire TV-based, iOS/tvOS-based, and Roku. As a result, many technology providers use the same split.
2. Map out the UI/UX
When approaching the problem from a form factor perspective, we see a similar yet different mix. Depending on the form factor, screen size, and input methods, different UI/UX approaches are needed. While these also need to be generalised, following a solid design approach, ensuring your UI works seamlessly with any form of input is a crucial element.
For example, we have seen plenty of instances where customers think it is unnecessary to support mouse and keyboard input on a smart TV. As a result, their LG webOS applications were rejected because they did not support LG’s “Magic Remote,” which allows you to use a mouse pointer by moving your remote. This is a painful mistake to fix, often resulting in significant costs for rework and delays to the timeline.
As a general rule, it is best to use a similar UI/UX approach across all technologies, expressed through the same UIs across different screen sizes and support for all possible input devices, even when it may not seem evident at first.
3. Create a budget
Now that you have a clearer understanding of your needs, it’s time to create a budget for your cross-platform streaming initiatives. This sort of project can be very costly, so it’s essential to understand what you’re committing to before you get started.
To create your budget, map out your exact needs. Here are some things to consider:
- How many platforms you want to deploy your streams on
- What technologies you need to develop your app
- Labor costs for development, testing, and maintenance/updates (either in-house or outsourced)
Since this technology evolves quickly, you’ll need resources to keep your apps relevant and follow the mandatory updates to keep things working as the platforms evolve.
4. Develop your app
Now, it’s time to develop your app. Two approaches can be used: developing for a specific native platform or leveraging cross-platform frameworks.
Developing for a specific native platform is one. Often, this is complemented by the use of native libraries, such as Dolby’s Android/Fire TV SDK for video playback or ExoPlayer for the Android device family.
Reusing common business logic across technology families is practically impossible since native players are often specific to one platform. This requires techniques for interacting with each API and tuning to its quirks, which often results in a complete redevelopment of the application. That’s why broadcasters often end up with four or even more parallel applications, multiplying the required development efforts.
Cross-platform frameworks started popping up to eliminate the need for recurring redevelopment from scratch. Frameworks such as React Native, Flutter, Xamarin, and Unity attempt to achieve the same thing: reducing the amount of specific code, with a preference for standard code that can be used across ecosystems. This often allows for one development of the core business logic that can be deployed everywhere.
Since platform-specific handling is often still needed, frameworks use “bridges”, to link up with platform-specific logic. For example, developers may need to access particular sensors, remote controls, or playback capabilities. Even for UI, this approach allows broadcasters to easily deliver a consistent experience across platforms, no matter the technology underneath.
Pros and cons of native development vs. cross-platform frameworks
Of course, there are pros and cons for each approach. For starters, finding developers for the native approach is often easier compared to those specialized in specific frameworks.
Furthermore, picking the wrong framework can result in a rough ride in the future. Most historically used JavaScript frameworks died out as the browser world standardized and quirks began to disappear. The same could happen with cross-platform frameworks, as development in a single language across platforms becomes possible.
Cross-platform frameworks also pose a significant danger. When specific bridges need to be built, they also need to be maintained. This can become a lot of work when the number of bridges increases, leading to an overhead that is bigger than the gain achieved by sharing business logic.
In a world where things mostly revolve around time to market, making the wrong choice can be devastating. Choosing a good cross-platform framework makes sense in many cases, but it’s essential to have good integrations with the different (or single) player vendors you use across the platforms.
Especially for UI, going cross-platform is a good idea to ensure consistency and simplify handling different input devices. Leveraging high levels of code reuse can allow you to go fast and squeeze the time you need until you can launch new features.
5. Test the workflow and UX
Once your application has been developed, it needs to be tested. Testing cross-platform media players is tedious. To test correctly, you need access to devices for every platform being targeted.
The tricky thing is that, especially for smart TVs, there are many differences between model groups. For example, Samsung has about four different groups every year. If you want to support Samsung TVs from four years ago, you will need 16 devices to test the various combinations. Similarly, LG has several different series of models.
As you expand to more vendors and form factors, this number only goes up. It’s not usually worth using a simulator because they behave significantly differently when it comes to decoding behavior, performance, and DRM capabilities, making it a non-option for testing premium video apps.
Although it’s a heavy lift, testing is a must. The PR nightmare of accidentally breaking functionality across a device family could be huge. Luckily, there are ways to automate testing across multiple devices. It’s not always easy, but it’s possible.
Dolby OptiView Player can run any test on any environment, ranging from standard browsers to Android and iOS apps, and all the way to any connected device or smart TV platform. With a rich array of devices connected to this system, we can run our list of test scenarios at any time across all these devices in parallel. It has significantly reduced the time spent testing.
6. Plan for evolution
As we mentioned, evolution is a constant in the streaming space since each platform is fighting its way to the top. Viewers have a vast range of options to consume content, so as a media publisher, you’re fighting a similar fight. You’ll need to keep coming up with new ways to attract users, such as announcing new content regularly and rolling out advanced features and capabilities.
In parallel, there are the ever-evolving underlying platforms. Many mobile devices receive major software updates every year, usually around summer. Smart TVs and other connected devices often follow the same interval, usually shifted so that they coincide with new hardware releases at the start of the year.
Browsers advance at a far more rapid pace. About every six weeks, most common web browsers receive a “major” version update. It’s essential to remember the impact this has on streaming services. While not all users might upgrade immediately, some do. Upgrading your service to remain compatible with every platform upgrade can be intensive, and the effort involved is not to be underestimated.
With these rapid changes, you should have an ongoing budget for updating your streaming workflows to keep up with the changes on various platforms.
Final thoughts
Supporting cross-platform distribution is an excellent way to broaden your audience and grow your streaming business.
Choosing the right partner when developing video apps can be game-changing. If you’re looking for a cross-platform media player to support your streaming initiatives, Dolby is here to help. The Dolby OptiView Player is a robust solution for creating powerful user experiences on any device.
Contact us to learn more about how our player can help you pull together your streaming tech stack for cross-platform media delivery.