We’re introducing a great upgrade in terms of video playback experience to our iOS and Apple TV apps! Up until now, we relied on Apple’s AVPlayer for video playback. That was a simple solution, but very limited in many aspects. However, now we’ve added support for mpv: the same higher-quality video player we have in Plex Media Player, that will result in sharper video output and improved subtitle support.

The new player is still experimental, and we do plan to make it available to everyone, but for now it’s available to Plex Pass holders as an early-access preview. You can turn it on and off at any time in Settings -> Advanced.

What’s changed?

With this new video player, the apps will be able to play many more video formats without transcoding. This also includes a new custom video player UI in the Apple TV app that adds support for seek thumbnails, proper audio & subtitle switching during playback, and some other things we’ll add in the near future. We also gained more control over our playback stack.

Basically, with these changes, the apps will try to use the new video player based on mpv when possible, with a few exceptions:

News and Web Shows

In all these circumstances the app will use the old player. We’re working as we speak to reduce that list of exceptions.

There are two other exceptions where Apple’s AVPlayer is needed: when using AirPlay and Picture in Picture (on devices which support it). In those scenarios, when enabling those features the app will switch to the old player (meaning, it could require transcoding).

Finally, due to some performance and compatibility issues we found, for now the new player will be available only for devices with iOS 11 and newer.

It’s also worth mentioning that this doesn’t affect Sync right now. That means, your media will still be transcoded to the same format in order to be compatible with the old player.

What are those supported formats?

Right now, the new player can direct play the following formats:

Supported containers: mkv, mov, mp4, mpegts, mpeg, mpegvideo, avi, flv, ogg

Supported audio codecs: aac, aac_latm, ac3, alac, flac, dca, vorbis, opus, eac3, mp1, mp2, mp3

Supported video codecs: h264, hevc, vp8, vp9, h263, mpeg1video, mpeg2video, mpeg4, vc1 (in iPhone 7 and newer, iPad Pro from 2017 and newer, and in Apple TV 4K)

Supported subtitle codecs: ass, dvb_subtitle, vobsub, eia_608, pgs, microdvd, movtext, ssa, srt

What’s in development?

We’re actively working on:

Improving performance.

Adding support for HDR playback.

Adding support for tone mapping when playing HDR videos in SDR displays.

Improved controls/gestures in the Apple TV video player.

Increasing device compatibility.

What do you need tested?

Basically everything video-playback-related needs testing to help ensure the broadest coverage. Go ahead and throw your old, obscure, early-90s home movie or your super-high-bitrate GoPro footage at the player and see how it does.

Oh noes, something doesn’t play right! How do I report it?

Providing detailed info when you encounter a playback issue will help us investigate (and resolve!) the issue quickly, so things improve for everyone.

Test whether you see the same playback problem with the old player (see the information on switching back below)

Reproduce the playback issue with the NEW player

Grab logs from your app (iOS App Logs or Apple TV App Logs)

Save the “XML file” for the library item you tried to play (XML File Information)

If possible, create a small sample file (Generating Sample Files) of the video causing the issue, verify that the sample still causes the issue, and then upload that sample to somewhere such as Dropbox or Google Drive

Report your issue in our iOS or Apple TV forums with details about what exactly you experienced. Be sure to attach your logs and “XML file” and link to the sample file. If you’re testing a beta build, please use the iOS Beta or Apple TV Beta forums instead.

Do I really have to do all that?

We know it sounds like a lot, but it’s not as bad as it might first seem. It’s super important to get this information to allow us to investigate and resolve the issues, though. We all want the issue fixed and working, right?

With this new foundation we’ll have the ability to improve our format support and will be considering things like this for future improvements. For now, please let us know if you encounter any formats where the new player provides a worse experience that the old player.

TL;DR: A brand new video player with lots of improvements and new formats supported. Enjoy and report issues in the forums!