Getting started with the Web Player on PlayStation 4

A basic example for getting the Web Player running on a PlayStation 4.

Introduction

The Bitmovin Web SDK has been engineered to support a wide variety of platforms. And from v8.124.0 we are adding PlayStation 4 as the compatible platform. After reading this guide you will both know known limitations of the player on PlayStation and be able to successfully run an application which is capable of playing back your streams on the PS4 through the Bitmovin Player.

You can find a list of all the other supported platforms on device and cross-browser in support.

Platform overview

Bitdash player has been tested and ready to work using PlayStation4 module. The platform uses a WebKit-based browser engine that Sony actively maintains and keeps up-to-date.
It supports the Media Source Extensions (MSE) and the Encrypted Media Extensions (EME) Web APIs that allow features like Adaptive Streaming with DASH and HLS, and playback of DRM-protected content.

For more information on how to run it on PlayStation4, please reach out to Sony through the PlayStation® Partners network.

Player setup

If you are new to using the Bitmovin Player Web SDK, the Web SDK - Getting Started Guide is the best place to start.

To ensure the player is working as expected on PlayStation4, you will need to add playstation4 module, which contains several platform-specific fixes that contribute to the stability of the player and its performance on the device.

Here's how you can import the Bitmovin Player and the additional PS4 module in your HTML page:

<!-- Bitmovin Player -->
<script type="text/javascript" src="https://cdn.bitmovin.com/player/web/8/bitmovinplayer.js"></script>

<!-- PlayStation 4 Module -->
<script type="text/javascript" src="https://cdn.bitmovin.com/player/web/8/modules/bitmovinplayer-playstation4.js"></script>

The PS4 module then needs to be added to the player. Here's how you can achieve this:

// Adding the Playstation 4 module
bitmovin.player.Player.addModule(bitmovin.player.playstation4.default);

// Creating the Bitmovin Player
var player = new bitmovin.player.Player(container, playerConfig);

Note: the playstation4 module is only available on v8.103.0 and subsequent versions of the Player. It is recommended to always use the latest available version.

Playing DRM content

To the date of writing this guide, on PlayStation 4 we support playback of DRM-protected content using PlayReady only. In order to successfully get PlayReady streams to work, the following settings need to be provided through the SourceConfig options:

Example of platform-specific config for PlayReady:

var source = {
  dash: 'someurl.mpd',
  hls: 'someurl.m3u8',
  title: 'Some Nice Title',
  drm: {
    playready: {
      utf8message: true,
      plaintextChallenge: true,
      headers: {
        'Content-Type': 'text/xml',
      },
      // Only required if the license is persistent
      mediaKeySystemConfig: {
        sessionTypes: ['persistent-license'],
      },
    },
  },
};

// Passing the DRM-protected source to the player
player.load(source);

Known limitations

On PlayStation 4, we are able to guarantee most of the Bitmovin Player features. There are however a few features that are unsupported. Here, are the most important ones:

  • Client-side advertising with Google IMA is not supported (however, you can achieve the same features through the Bitmovin Advertising module, which works as expected).
  • Tweaking the playback rate during adaptive streaming playback via the player.setPlaybackSpeed API is disabled internally (it is treated as a no-op) because it can lead to unpredictable behaviours.
  • CMAF Low Latency is currently not supported