Play on devices including Apple TV, control your Chromecast with built-in cast controls on your Android phone, continue watching when a CDN becomes unavailable, synchronize slides with HLS streams and more!
The release of the Bitmovin Player v7.1 is yet another big step forward in usability. We have reworked the handling of remote players and in the process added support for Apple AirPlay. The UI has been further improved and optimized for mobile devices, we have made sure your DASH stream can still play even if a CDN becomes faulty or unavailable.
Version 7.0 of the Bitmovin Adaptive Streaming Player introduced a new, fresh UI. We started from scratch and even made it available as open source project on GitHub for full customization options. That version of the UI was already fully responsive and works well for all different screen sizes. However, we felt that there is still need for a dedicated UI on mobile devices. One example for instance is that the volume slider doesn’t make too much sense on mobile because the hardware volume buttons are used most of the time. Another improvement is that we have re-arranged the interface to better utilize the limited space available on a mobile screen. To this end, some elements, such as the fullscreen and settings buttons have been moved to the top right corner and the settings menu has been re-designed and re-positioned to increase usability on touch screens.
AirPlay & Picture in Picture
Chromecast has already been supported by our player for quite some time, but in the Apple eco system AirPlay is more common so adding AirPlay support was a logical step. This enables your customers to enjoy streams on devices such as the latest Apple TV. Unfortunately the options provided by Apple for AirPlay are not yet as mature as those available with Chromecast, so there are some limitations: It can only be initiated via Safari on macOS but not on iOS and doesn’t provide much feedback. As a consequence, no playback events are fired during the AirPlay session.
Another handy feature is the support for Apple’s Picture-in-Picture mode in Safari. It enables you to pop the video out of the browser to continue watching while working in other windows, for example surfing the web in other browser tabs or switching over to other applications.
In lots of use cases it is necessary to synchronize external data to the playback position of a stream, both for VoD and live. For example, synchronizing slides to the stream of a presentation so users always see the slide the speaker is talking about while still seeing a video of the whole presentation. Another use case is to synchronize a live stream to it’s electronic program guide (EPG) next to or overlaid on top of the video. This can be achieved with two methods in HLS streams: The timing information can be injected directly into the MPEG-2 transport stream (TS) segments using ID3 tags. This is a bit more complex than the alternative, especially if this information should be added later. The advantage is that this is independent from the manifest file and can also be used for many other types of timed metadata information, such as required tracking information for server side ad insertion. (Download the Server-Side Ad Insertion Datasheet) This method has been supported by our player for some time and also works on iOS devices. The second option is to add timing information using the #EXT-X-PROGRAM-DATE-TIME tag in the HLS playlist. This is easier to manipulate on the server as well as easier to parse at the client. There is, however, one big drawback: Safari’s native HLS implementation does not provide access to this information. With player version 7.1 we have found a way to support this while still leveraging Safari’s HLS implementation. This means it now also works across all devices.
Default Media Control Protocol for Chromecast
Historically we have used a custom, proprietary protocol for the communication between the web player and a Chromecast session. Consequently, default cast clients, such as Chrome, Android phones or the Google Home app, could not control the playback of an existing session at all. Only senders which implemented our protocol were able to do so. With the new v7.1 release, the player is using the default media control protocol making the integration with Android apps much easier, faster and, as a result, cheaper. It also increases the usability and overall user experience as the control works with all the default cast clients customers are already used to.
One of the main advantages of this change is that Google requires compatibility with the default media control protocol for testing, certificating and promoting Chromecast apps. As we already worked on the Chromecast implementation, we added the possibility to provide the player a URL to a CSS file, which is then be used for skinning the Chromecast player.
We have also made our new developer analytics compatible with Chromecast so if you are using our analytics on your webpage, it will automatically work out-of-the-box with our default cast receiver app on the Chromecast as well.
CDN Switching for DASH
Although content delivery networks (CDNs) have a huge uptime, they can still fail as we saw last month. If AWS S3 can fail, so can other global services. To have a solution which still allows your users to watch content and deliver your ad revenue, multiple BaseURL attributes can be provided in DASH manifests, i.e. each CDN is added as a base location. In case the Bitmovin player cannot receive the segments from one location, it will now automatically fail over and try other CDNs.
The features outlined above are the main features of this new player version, but it doesn’t list everything we added in this version. There are a lot more features and fixes, like supporting HTTP redirects, the option to set an initial start time for the player, the configuration of the vertical start position for VR/360 streams and many more. A complete list can be found in the release notes.
We already have lots of interesting features in our pipeline for our next player releases, like handling HLS backup streams or a comprehensive VR/360 API to fully customize your VR/360 experience and we have just launched native SDKs for Android and iOS.
Last but not least, we are continuing to develop and improve a number of innovations such as multi codec streaming and quality aware streaming which will allow you to further improve quality for users and cut down on your CDN bill.
All the best,
Daniel and the Bitmovin Team.