The Bitmovin video developer report has been a survey we’ve released every year for the past 5 years and with each one, we’ve seen device fragmentation become a hot topic as the number of video devices that developers tell us they are building for increases. 2021 was no different as you can see from the image below, where we saw developers highlight over 23 different devices they were looking to deploy their streams on.
One, if not the main, driver of this is due to the number of viewers that use these platforms and devices. From a recent study done by Parksassociates that Bitmovin participated in, data shows that households have access to and use more than 4 different devices to watch streaming video. This study is specifically done with data from the US, but from our experience with our clients, we’ve seen this to be true across each region.
How Device fragmentation is a major challenge for developers
It would be simple for every streaming service and its developers if every household used the same 4 devices for playback, but that will never be the case due to upgrades in versions and competitiveness on the market. Instead, the landscape is fragmented with Smart TVs (ex. Samsung, LG & Hisense), Connected TV devices (ex. Apple TV, Roku & Chromecast), mobile devices, and game consoles. This is also affected by viewers around the world since when they purchase these devices, they tend to keep them for longer periods of time, which in turn expands the device versions that will be under the responsibility of developers to continue to support as they add newer models to the mix. Additionally, there is no standardization across devices which doesn’t benefit development teams as this means they have to take care of multiple players, operating systems and code sets.
Teams have a few choices at their disposal to tackle this issue which are:
- Deploying the native player on each device
- Grouping together players through 1 open source option
- Deploying a commercial player that can be used across all devices
Deploying a native player such as AVPlayer for iOS, ExoPlayer for Android or AVPlay for Samsung TVs is good as you know the player will work for that specific format, however, this also creates issues by each player having a different structure and not presenting a unified experience. Additionally, developers will need to build their integrations and features on top of the native players, such as ad integrations and the UI which will take more time to complete. The second option is to group together players through an open source option for specific platforms and the best example of this is a player like ShakaPlayer, which gives devs the ability to use the same player in multiple areas for their streaming service. The third and easiest option for support and monitoring is to deploy a unified player that goes across all devices using a similar framework so teams can do more and cover more devices. The first two options can cause challenges for developers because both the developer experience and playback capabilities can vary significantly between each player technology while the third option is good all around but comes at a cost as it’s not open source like the others.
Developing for Quality Playback and Multiple Formats
To provide a high-quality playback experience on all major devices where viewers are watching today, you’ll need to have and build up expertise for each native player and understand the different capabilities each SDK brings to the table. A good example of this is offline streaming, a premium feature that can increase revenue as Paramount+ has done, but is a different development experience across iOS and Android due to the development environment and APIs being different. In our experience at Bitmovin, this complexity multiplies when you consider edge cases, which in the case of a feature such as offline download can include expiring tokens and wifi-only downloading. Even though this example is just around playback on Mobile, it can easily be expanded to use cases across the device spectrum of each device and the overall effect it has on the developer experience.
If you’re a team of 5 or fewer, this could be overwhelming and you may need to make tradeoffs in the number of devices you can support, or the feature set you aim to build for each platform. Of course, there are some extremely skilled small teams out there supporting many devices, but this is not the norm in the industry. From what we have seen over the years, this rings true as smaller groups tend to have issues developing for and maintaining multiple feature sets and the quality of experience across many devices as they are spread too thin. Larger teams tend to have different issues but of a similar scope where they can maintain support for many devices but then it takes time away from other projects such as the design & UX of your app or service.
What is a unified developer experience?
The developer experience is something I touched on previously but it would be good to define that further and why it’s important for the teams of streaming services. In regards to the player specifically, many of the options out there are free or have a cost associated and come with some direction but there is always a limitation on documentation or having a question that often takes time to get answered by the open source community or commercial team. Some of the items that we always get asked for at Bitmovin and have found essential for small to large development teams as they directly help and make their lives easier include:
- Getting started guides
- API documentation
- Code samples
- Clear road map & regular release notes
- Walkthrough solution wizards
The main thing across all of these items is consistency which in turn will make it simpler and faster to deploy across all devices as it reduces context switching time and ensures each device is as maintainable as any other, empowering a unified developer experience.
How Testing affects quality and the developer experience
Testing is also a major piece to concentrate on when defining the support structure for each device playback is offered and this can either be taken care of by the development team or offloaded to a QA function. This is an item that can directly affect developers when supporting and deploying on devices, as well as viewers and their quality of experience. Depending on what your team decided to support, getting access to every device where viewers are watching today can be a real challenge, particularly if you follow most streaming services and support Smart TVs back to 2016/17. Aside from trawling refurb or auction sites to obtain older devices, defining use cases and testing on them can be difficult. Manual testing is extremely time-consuming and one that a lot of teams try to avoid but we’ve seen it’s commonly used to cover the vast range of Smart TVs.
Alternatives include device farms where you can get time-limited access to a device but you must then build your own test cases and process the results. This is where we’ve seen test automation tailored for video, with pre-populated use cases that can be tested on physical devices is the most efficient approach and even made it a feature of our Player called Stream Lab. it is the first automated stream testing solution that helps you guarantee quality playback functionality. To learn more about it and what we’re doing to help streaming services with testing, check out our Bitmovin Stream Lab blog.
As we’ve seen from the data, viewer expectations are increasing with households using a greater variety of devices to watch video. For development teams, building and maintaining support for a wide range of devices can be a challenge because developer experiences are different on each device type. Having access to a unified developer experience can save a lot of time and increase the number of devices which can be supported by small teams. For larger teams, this frees up time for other projects such as improving the user or viewer experience
If you’d like to see how Bitmovin is enabling development teams to support and stream on the most devices on market, sign up for a free trial to check out Bitmovin’s unified developer experience.