More native file format support for the Apple TV 4th gen app

I was awaiting the release of the Plex app for AppleTV to see if it could replace my aging Mac Mini with Plex HT that I use as a media client on my TV. From what I gather from the initial user feedback, the format support for the AppleTV is on the same level as the other iOS Plex applications, in the sense that it doesn’t support formats that aren’t supported by the client device itself. Consequentially they need to be transcoded or remuxed on the server side for the AppleTV client to be able to play them.

I’m aware this method is desirable when you’re using devices like smartphones and tablets, where battery life matters. But for the AppleTV, richer media format support in the client would be much more desirable. Here’s why :

-> The Plex philosophy has always been an easy to use, inexpensive, and It Just Works approach to consuming media on present-day devices;
-> A lot users prefer to run Plex on off the shelf, inexpensive hardware because its in line with the Just Works approach of the software itself;
-> When you need to start transcoding, you’re stuck having to provide either a PC on the client side which isn’t as easy to setup and maintain, or have a beefier and much more expensive and/or harder to manage plex server.

I think having media format support in the AppleTV on par with Plex HT would yield an inexpensive and easy to use but powerful end-to-end media system, lowering the cost and complexity significantly for people looking to get their feet wet with Plex and make things easier for people who are less technical. Basically you could get started with an easy to install Plex Server on an inexpensive NAS box, and an easy to install plex client on your TV using an AppleTV, and you’re set.

How do you suggest Plex should convince Apple to add codecs to the box?

I think. You should have chosen a box that supports more codecs from the get go… I went with a. Shieldtv, but roku 4 also supports mkv and HEVC as far as I know. Also, raspberry pi can run plex media payer…

You don’t have to convince Apple, you integrate the support in the app. ie. take away transcoding from the server to the player, just like the 100’s of dlna apps do.
Also referred in this topic.

@KarlDag said:
How do you suggest Plex should convince Apple to add codecs to the box?
Other software on iOS already does just this : NAStify plays unsupported files on iOS without the need of transcoding them. So there isn’t a technical reason why this wouldn’t be possible.

I think. You should have chosen a box that supports more codecs from the get go… I went with a. Shieldtv, but roku 4 also supports mkv and HEVC as far as I know. Also, raspberry pi can run plex media payer…

Its not just about the box. Its also about having a platform that will have a lot of application support, and a lot more at that than ShieldTV or Roku. A Raspberry Pi is a nice toy but hugely underpowered as a plex client.

I’d suggest someone build a basic list of containers and codecs to support and have people submit feedback via apple.com/feedback/appletv.html and for developers push through bugreport.apple.com that is the most direct way to get your feedback heard.

CaptRamius : This isn’t a request to add support for extra formats and containers in the aTV OS. This is a request to add support for extra formats in the Plex TV app itself.

This is a valid request in my opinion. Just like it would be a valid request when you develop a media player on a PC OS and ask for a format that the platform is unlikely to support to be added to the player’s capabilities.

Doubt Plex would ever want to do that. If other apps can figure it out great for them but Plex has always taken a stance to support what the box supports. Next time buy your product based on the needs of yourself. Apple TV will be limited (and that is okay with most of the buyers). Go shield for the most supported codecs and audio (DTS-HD) and roku 4 for a decent set of codecs (DTS).

To be able to support players on almost any device, Plex leverages the built in player for that device. These players are what control if the media can be played back without transcoding or not. Plex cannot just add codec/container support to these players.

The only way to do this would be for Plex to write (or licence and modify) their own video players. There is no word if this will ever happen but this is what would be needed for what you want.

It surprises me how reluctant some people are with this idea. Luckily the guys from plexconnect are working on an app that may have this support.

@MovieFan.Plex said:
To be able to support players on almost any device, Plex leverages the built in player for that device. These players are what control if the media can be played back without transcoding or not. Plex cannot just add codec/container support to these players.

The only way to do this would be for Plex to write (or licence and modify) their own video players. There is no word if this will ever happen but this is what would be needed for what you want.

Well MovieFan.Plex thats not really true isn’t it. That code is already the in PC client so there really isn’t a reason why it wouldn’t be possible in the other clients. Its a matter of adding code that they already have from the PC version.

@bakman1 said:
It surprises me how reluctant some people are with this idea. Luckily the guys from plexconnect are working on an app that may have this support.

Very true, bakman1. It’s like saying “we don’t want it to work the best way it can, we just want it to work the most lazy way it can.” With this kind of mentality we would never have had FLAC, or DivX, or even MP3. Because none of those formats were supported in any OS when they initially came out.

At least Its good to hear that some people see the sanity of this approach and are working towards a solution. I’m more than happy to spend a few quid on having a wider range of format support for the Apple TV and I think a lot of other plex users would benefit from this functionality too.

@bakman1 said:
It surprises me how reluctant some people are with this idea. Luckily the guys from plexconnect are working on an app that may have this support.

Were just saying is unlikely to happen because plex uses the built in player. You can choose to think it will if you want.

Only way I see this happening is with a 3rd party solution, like kodi+plexbmc, which will probably require jailbreak.

Why would it require a jailbreak? Look at the dnla apps, they work using ffmpeg. Pms is using ffmpeg. In other words, you move the heavy lifting from the server to the client and this is all possible without any issue. People see dark clouds while the sun is shining.

@nefer said:

@anon18523487 said:
The only way to do this would be for Plex to write (or licence and modify) their own video players. There is no word if this will ever happen but this is what would be needed for what you want.

Well MovieFan.Plex thats not really true isn’t it. That code is already the in PC client so there really isn’t a reason why it wouldn’t be possible in the other clients. Its a matter of adding code that they already have from the PC version.
You cannot just copy the code from the PC version to a mobile device, they do not run the same OS so their coding is not the same. If it was that easy, we could have PMS for mobile devices too.

Think of Plex as a car manufacturer. They can design and build the inside and outside of the car, but don’t have the expertise to create an engine, so they buy a pre-built engine and throw it into their car. Plex can tweak the engines slightly but the overall performance is restricted by the engine. Plex would need to learn to design and build an engine to provide better performance.

For the PC version, PHT, the engine (video player) was created by the XBMC team and Plex borrowed it. That player has the ability to support all sorts of codecs. For PMP, Plex used a new engine (open source video player) but to get it working they hired one of the top developers from that project.

To provide this same functionality for mobile devices, Plex would need to design their own engines for Android, iOS, and Windows Phone. This may happen at some point, but for now, they rely on the borrowed engine.

@MovieFan.Plex said:
You cannot just copy the code from the PC version to a mobile device, they do not run the same OS so their coding is not the same. If it was that easy, we could have PMS for mobile devices too.

Its entirely possible to use C code in an iOS app. it would need a bit of retooling yes, but wouldn’t be THAT hard to do (proof in point, NAStify already does the very same thing)

Think of Plex as a car manufacturer. They can design and build the inside and outside of the car, but don’t have the expertise to create an engine, so they buy a pre-built engine and throw it into their car.

Your analogy doesn’t really hold because at the moment they don’t really choose an engine on mobile platforms, they use whatever the platform provides. Also, you seem to give the Plex team less credit than they deserve by stating that they’re not smart enough to tool another engine into their solution. I think they can, and I also think they should.

Plex can tweak the engines slightly but the overall performance is restricted by the engine. Plex would need to learn to design and build an engine to provide better performance.

No they wouldn’t. They’d just need to integrate an engine they already use in another model.

For the PC version, PHT, the engine (video player) was created by the XBMC team and Plex borrowed it. That player has the ability to support all sorts of codecs. For PMP, Plex used a new engine (open source video player) but to get it working they hired one of the top developers from that project.

Yes they can even choose between two different engines. (three if you also count ffmpeg)

To provide this same functionality for mobile devices, Plex would need to design their own engines for Android, iOS, and Windows Phone. This may happen at some point, but for now, they rely on the borrowed engine.

There’s zero need to create an engine from scratch. Just throw in one of the already existing engines and make it work instead of complaining about it.

I think this would be a great benefit to Plex if they could control the player portion. I just don’t think you see how much work is needed to accomplish this. Who knows. Now that a lot of the apps share a common base code, which should make it easier to maintain, they may have more time to dedicate to write/modify/adopt custom players for their clients.

@MovieFan.Plex - Smart TV app, Xbox app, PS4 app, Android app, iOS app, all different base code.

What do you think the aim behind this project is ? Lets be lazy developers or make the best media center on this planet ? It takes effort to be the latter and that has never been an issue for a developer as those are the challenges you want to conquer.

And besides all code to make it happen has already been written.

@bakman1 said:
@anon18523487 - Smart TV app, Xbox app, PS4 app
These actually share the base code, which is HTML based. Throw in there PMP and the New Amazon Fire TV.
Android app, iOS app, all different base code.
These are different but are well established so it is possible they can work on a player for these.
What do you think the aim behind this project is ? Lets be lazy developers or make the best media center on this planet ? It takes effort to be the latter and that has never been an issue for a developer as those are the challenges you want to conquer.
The original aim of PMS was to have the server take all the load so the client apps could run on low power devices. Desktop devices were the only devices that could handle the grunt work and that is why PHT (and PMC before it) had their own player that could do the decoding. It’s only in the last couple of years that devices have become powerful enough to handle the load themselves. So i can see a shift to have clients start decoding the video which will then allow for the other new trend of having low-power servers (i.e. NAS), but it still takes work.
And besides all code to make it happen has already been written.
Not sure what you mean by this. ??

I mean this

+1, good idea.

Generally been opposed to trying to do software decoding of additional formats on iOS devices, but as OP correctly states, other devices have been mobile devices, with battery constraints. The new Apple TV has no such issue, and a fairly powerful CPU.

I read an interview with someone from Plex where it was stated that the initial ATV app was done using the built in player due to time constraints, rather than the custom Plex player that powers iOS playback.

Meanwhile MobileVLCKit continues to exist, providing codec support in software for iOS devices. This may not be immediately compatible with the ATV, and if Plex relies on this, that’ll be another reason why it’s not been implemented… yet.

I imagine the rationale behind a lot of clients not playing anything not natively supported through hardware in the platform is due to them largely having small CPUs or power constraints. Given the ATV has none of these things, adding support for additional formats through a custom player would be a nice thing to see!

+1. Liked. Not a high priority, as this is already covered through server-side transcoding and users purchasing an ATV4 should already be aware of the limitations, but removing some would be nice.

EDIT: Whoops, looks like this is a dupe of https://forums.plex.tv/discussion/193381/feature-request-integrate-ffmpeg-in-ios-tvos-clients-natively

@MovieFan.Plex said:
The original aim of PMS was to have the server take all the load so the client apps could run on low power devices. Desktop devices were the only devices that could handle the grunt work and that is why PHT (and PMC before it) had their own player that could do the decoding. It’s only in the last couple of years that devices have become powerful enough to handle the load themselves. So i can see a shift to have clients start decoding the video which will then allow for the other new trend of having low-power servers (i.e. NAS), but it still takes work.

The original aim of Plex Media Server was to provide a rich content server that would be an easy to set up and use for both media and its metadata and have it available on multiple client devices at the same time. In the beginning there was no transcoding on the server because the only client that was able to connect to it was the XBMC-derived client which only ran on a Mac (and later a PC). The server side got ported over from computers to NAS boxes pretty quickly because for a server application that indexes and serves media it obviously makes a lot of sense to run it on the same box as the content lives, and that is for many people a low power (as in power consumption) device, i.e. a NAS.

It was only later, with early-generation smartphones really starting to become popular and Plex making clients for them, that transcoding was added to provide playback on these devices and NAS boxes became less ideal to run PMS on because of them not being powerful enough to do the transcoding. Transcoding has always been a bandaid. You don’t have to be a genius to understand that having to translate your content more than once on the fly before you’re able to view it will be sub-optimal in terms of quality and performance compared to just being able to play the file. Now with CPU cycles being more abundant in low-power client devices again (such as the apple tv) we can hopefully move back more in the direction of using low-power devices on both the server and the client side. Nobody really benefits from having to install a big and loud electricity hungry device in their home to be able to distribute their media content anyway.