Product Updates

An Engineer’s POV on Developing the Bitmovin Player for PlayStation 5

- Bitmovin
- Bitmovin

TL;DR – Just the essential bits

  • The Bitmovin Player now officially supports PlayStation 5. Although from an engineer’s perspective, the process wasn’t entirely straightforward and required much attention as there were many moving pieces. 
  • For anyone to develop their application or service for PlayStation 5, they will need to go through an approval process with Sony to become an official partner to gain access to the proprietary dev environment. Added note here is that they are very professional and extremely helpful when going through the partner/development process.
  • After gaining access, we, the Bitmovin team, discovered a few issues on the PS5 platform, such as no support for Playready license acknowledgment, low latency streaming, audio-only playback, tweaking the playback speed rate, and Google IMA support.
  • To save time on player development, streaming services can use Bitmovin’s Player, as it is already an approved vendor and comes with a full feature set that helps ensure a quality playback experience for viewers.

—-

Let’s get started

Has PlayStation 5 come up in your engineering & development meetings as a device your streaming service wants to support? Recently, PS5 has taken center stage as Sony pushes more into the media and entertainment space with its dedicated entertainment section on the game console. Along with that, its vast user base of just over 14 million is too big to ignore and has become a necessity for every streaming service to take into account in their roadmaps for device support. However, building an application for PS5, especially one around streaming, isn’t a cakewalk. Our team learned firsthand as they’ve now added PlayStation 5 to the Bitmovin Player’s official coverage – (read more on it in an interview with our Product Manager, Jacob Arends).

From the engineer’s point of view (that’s where I come in!), the project was a definite learning experience. To showcase how the process was, I will go into what my team and I had to do when we started developing the Bitmovin Player for PS5, what issues other developers might experience when trying to support playback on it, and why commercial players are most likely your best bet to getting started (hint: they save you from pulling your hair out and save you a ton of time).

How Bitmovin’s dev team deployed coverage for PS5

I want to start this section by stating that becoming a Sony PlayStation media partner is pretty straightforward, and even though development can be challenging at times, the Sony Partnership team and developers were extremely helpful throughout the development process. When we first started exploring the PlayStation platform, we laid out the items we knew we’d have to focus on and came up with a list of over 40 hard-line items, each having many subtasks. Additionally, we knew many player features that we support on smart TV and game console devices, such as LG, Samsung, Roku, and XBOX, would overlap. To get going with the development, however, we couldn’t just buy a PS5, as to develop for it, you need to become a part of their PlayStation Partners and, once approved, purchase the DevKit that will give you access to dev environments within the PS5 space. 

- Bitmovin

As that was in the works, we evaluated Sony’s browser engine on the platform, WebKit. It includes the necessary media source extensions (MSE) and encrypted media extensions (EME) for media playback for HLS and DASH streams. Still, in order to get access to them, we needed permission to use Sony’s MediaSDK. Due to this, we knew it would fit our Web SDK feature parameters and work within our existing testing structure that contains over 1000 test cases (with more added every deployment) around timeshifts, adaptive bitrate, subtitles, DRM, and more. The benefit from our perspective here is that these tests run multiple times a day to ensure functional video playback across every platform or device we support, helping us avoid updates that may affect a viewer’s experience.

With the initial analysis done, we set out to evaluate the development environment within the PS5 system. Now, I can’t go step by step in the detail as Sony has gated the process to only be available for approved partners, but I’ll try. To make applications or items available within PS5, there is a requirement to obtain access to MediaSDK. As I mentioned above, this was an essential piece we needed to get permission for, as it would then allow us to use the SDK manager, which is Sony’s proprietary library containing all of the packages and tools for player development. After those steps, of course, starting up the DevKit isn’t as easy as just turning on a PS5, and to get into the environment, we needed to: 

  • Set up our internet network, 
  • Connect the DevKit PS5 to it 
  • Setup workstation, 
  • Update the DevKit SDK 
  • Activate the Devkit
  • Create and launch the Media SDK application 
  • And finally, setup the device for internal automated testing

From there, we were able to go into each of the attributes needed for successful video playback on the PS5 device and complete development over the course of 4-5 months, making the Bitmovin Player available for use along with all of its features within the Web SDK parameters.

Issues you might experience during the development phase for PS5

As we developed for PS5, we ran into a few issues that we have defined below, as playback may be affected depending on your workflow and your streaming use cases. The issues include:

  • Playback of audio-only streams is not supported on the PS5 device, and if an audio file is longer than the video, it will stall the playback experience.
  • Client-side advertising with Google IMA is not supported (however, client-side ads are supported when using Bitmovin’s Advertising Module, a feature of the Bitmovin Player).
  • Tweaking the playback rate during an adaptive bitrate stream via the player.setPlaybackSpeed API is disabled internally (it is treated as a no-op) because it can lead to unpredictable behaviors.
  • CMAF Low Latency is not supported because the platform lacks both support for Chunked-CMAF and playbackRate adjustments.
  • PlayStation5 does not support the PlayReady License Acknowledgement feature. Therefore, if this feature is enabled on the licensing server, the call to MediaKeySession.update() will fail.

We have also created a getting started guide for the PlayStation 5 on our Bitmovin docs, which covers how to get the Bitmovin Player up and running.

Why commercial players are the best for video playback on PlayStation

I know I might be biased here, as I work for Bitmovin, but hear me out – At the moment, commercial players are a development team’s best friend when it comes to supporting video playback on PlayStation 5. From open source to commercial video players, there are many options on the market. When it comes to streaming video on this device, however, there aren’t many open-source options currently out there; if there are, it will take additional implementation to make them work.

Additionally, the Bitmovin Player can help save months of development time as we’ve already done the hard work of ensuring everything performs well (read more in our developer community). We focus on ensuring our Player and its features are supported and tested daily on every platform or device with every new release. From a development standpoint, this is a clear no-brainer for any engineer that has a deadline to meet and wants to deploy more features to improve the viewing experience for their audiences.

It was a fun experience

All in all, if PlayStation 5 is on your team’s roadmap, check out the Bitmovin Player to start with, as you and your team will save time and vital resources during development. In addition, once deployed, it will give you and your team the time to work on core features for your service and focus on what sets you apart in the market.

Adis Talic is a Software Engineer at Bitmovin and is a part of the Web Player engineering team helping expand and maintain support for existing and new devices and Player Features.

Read more by Adis

Related Posts

Join the conversation