I just want to know if an audio downmixing option will ever exist inside the Android TV app.
Downmixing audio at client side is not the most logical thing to do for Plex. Indeed, transcoding is supposed to be handled by a server which provides video and audio that client can read.
Though, an audio downmix option on Android TV app is really what I need (I guess I’m not the only one is this situation) to make everything about Plex perfect.
My configuration is as follows:
Plex Media Server installed on a dedicated server which runs Ubuntu 16.04. I have the lastest version of PMS which is 1.3.4.3285.
My client is a Shield TV running lastest version of Plex for Android TV.
My sound system is 2.0 and cannot decode DTS, DD, DTS-HD, etc. My TV cannot decode them either. Then, all my movies are transcoded for the audio part, which is fine. It becomes more annoying when adding subtitles (which is almost always for me) or playing HEVC, as in those cases, video is also transcoded (and very CPU intensive for HEVC to H264). One bug in the subtitles management: subtitle sizes are very different between subtitles inserted inside video by server or the one played by the client directly. If I put subtitles size to large on the app, sub are huge when transcoded and hardly readable when not transcoded.
Plex uses ExoPlayer on Android which makes you dependent on what ExoPlayer can or cannot do. But if I understand correctly, ExoPlayer V2.0, recently released, has implemented an ffmpeg wrapper which could be used to downmix audio.
Is it something that Plex Team is working on?
Many other Plex clients have this option, so I guess it’s not only useful to me…
Implementing this option on Android TV would really be great considering the huge lack of audio codecs available on this platform.
Hoping someone will read this in the Plex Android Team!
I just want to know if an audio downmixing option will ever exist inside the Android TV app.
Downmixing audio at client side is not the most logical thing to do for Plex. Indeed, transcoding is supposed to be handled by a server which provides video and audio that client can read.
Though, an audio downmix option on Android TV app is really what I need (I guess I’m not the only one is this situation) to make everything about Plex perfect.
My configuration is as follows:
Plex Media Server installed on a dedicated server which runs Ubuntu 16.04. I have the lastest version of PMS which is 1.3.4.3285.
My client is a Shield TV running lastest version of Plex for Android TV.
My sound system is 2.0 and cannot decode DTS, DD, DTS-HD, etc. My TV cannot decode them either. Then, all my movies are transcoded for the audio part, which is fine. It becomes more annoying when adding subtitles (which is almost always for me) or playing HEVC, as in those cases, video is also transcoded (and very CPU intensive for HEVC to H264). One bug in the subtitles management: subtitle sizes are very different between subtitles inserted inside video by server or the one played by the client directly. If I put subtitles size to large on the app, sub are huge when transcoded and hardly readable when not transcoded.
Plex uses ExoPlayer on Android which makes you dependent on what ExoPlayer can or cannot do. But if I understand correctly, ExoPlayer V2.0, recently released, has implemented an ffmpeg wrapper which could be used to downmix audio.
Is it something that Plex Team is working on?
Many other Plex clients have this option, so I guess it’s not only useful to me…
Implementing this option on Android TV would really be great considering the huge lack of audio codecs available on this platform.
Hoping someone will read this in the Plex Android Team!
We don’t even have straight LPCM if audio passthrough is disabled. I wouldn’t count on it.
ExoPlayer 2.0 is coming to the app eventually but they’ve said they have a lot of work to do before that happens.
Also I think to keep everything legal the client side would have to have a license to decode DTS, or DD. I could be mistaken though but I usually see talk about license issues when talking about audio transcoding vs passthough since with passthough the server, and client don’t touch the audio.
@ohiomedic said:
Also I think to keep everything legal the client side would have to have a license to decode DTS, or DD. I could be mistaken though but I usually see talk about license issues when talking about audio transcoding vs passthough since with passthough the server, and client don’t touch the audio.
I saw many comments on different forums about that. I guess there are some license issues. Though, I don’t get how it could be okay to decode DD/DTS on some platforms (this audio downmix option exists on many plex clients) but illegal on others - except if the OS bring those licenses. But then how is it possible for a standalone app such as PMP to decode them…
@ohiomedic said:
Also I think to keep everything legal the client side would have to have a license to decode DTS, or DD. I could be mistaken though but I usually see talk about license issues when talking about audio transcoding vs passthough since with passthough the server, and client don’t touch the audio.
Pretty sure that Nvidia already paid for those licences on the SHIELD TV at least so I assume Plex can take advantage of that but I’m honestly just guessing here.
Implementing client-side audio downmixing is very tricky, mostly because the only way we could downmix audio is to have access to the audio decoder’s so we can filter the audio and rebuild them with the new speaker configuration. As of now we have no plans for audio downmixing on Android, but it might be something we can look into a later date!
@Lugdum said:
Plex uses ExoPlayer on Android which makes you dependent on what ExoPlayer can or cannot do. But if I understand correctly, ExoPlayer V2.0, recently released, has implemented an ffmpeg wrapper which could be used to downmix audio.
ExoPlayer v2 wouldn’t help the issue you are describing, mostly because the audio codecs you would want to downmix require a license fee to be used. This is something that Android device manufacturers pay for and include.
@Lugdum said:
I saw many comments on different forums about that. I guess there are some license issues. Though, I don’t get how it could be okay to decode DD/DTS on some platforms (this audio downmix option exists on many plex clients) but illegal on others - except if the OS bring those licenses. But then how is it possible for a standalone app such as PMP to decode them…
The OS does indeed bring the decoders for other platforms, except for PMP. Since PMP is open sourced and released under the GPL, we can include more codecs without requiring licensing. For instance, there is a GPL version of the AC3 decoder, so we can include this in PMP without worrying about licensing.
What you have done isn’t illegal as your not releasing or sharing the binaries to allow others to run AC3 / DTS with ExoPlayer. The issue is that the Plex for Android application is closed source, so we couldn’t use GPL binaries like you have done as we would need to release the source code for the app.
For Plex on Android to do the same, we would need to license the decoders and implement support ourselves (we couldn’t use the existing FFmpeg + ExoPlayer implementation as that would break the license). As you can imagine this makes things very complicated! This is made even harder by license vendors preferring to sell OEM licenses to device manufacturers rather than software licenses to application engineers!
Audio downmixing might be something we can look into for the future on Android, but for now it’s definitely a pipe dream, personally I would love to see this and upmixing in Plex for Android!
@sixones said:
What you have done isn’t illegal as your not releasing or sharing the binaries to allow others to run AC3 / DTS with ExoPlayer. The issue is that the Plex for Android application is closed source, so we couldn’t use GPL binaries like you have done as we would need to release the source code for the app.
For Plex on Android to do the same, we would need to license the decoders and implement support ourselves (we couldn’t use the existing FFmpeg + ExoPlayer implementation as that would break the license). As you can imagine this makes things very complicated! This is made even harder by license vendors preferring to sell OEM licenses to device manufacturers rather than software licenses to application engineers!
Audio downmixing might be something we can look into for the future on Android, but for now it’s definitely a pipe dream, personally I would love to see this and upmixing in Plex for Android!
What about just a straight decode to LPCM for all codecs? Is this covered by licensing issues as well?
@sixones said:
Audio downmixing might be something we can look into for the future on Android, but for now it’s definitely a pipe dream, personally I would love to see this and upmixing in Plex for Android!
@sixones said:
Audio downmixing might be something we can look into for the future on Android, but for now it’s definitely a pipe dream, personally I would love to see this and upmixing in Plex for Android!
Downmixing is still in the pipeline buts it’s not in development right now. Downmixing on Android wouldn’t really solve some of the issues mentioned here, your device would need to be able to decode the format and then downmixing could be applied.
@danjames92 said:
@sixones said:
What you have done isn’t illegal as your not releasing or sharing the binaries to allow others to run AC3 / DTS with ExoPlayer. The issue is that the Plex for Android application is closed source, so we couldn’t use GPL binaries like you have done as we would need to release the source code for the app.
For Plex on Android to do the same, we would need to license the decoders and implement support ourselves (we couldn’t use the existing FFmpeg + ExoPlayer implementation as that would break the license). As you can imagine this makes things very complicated! This is made even harder by license vendors preferring to sell OEM licenses to device manufacturers rather than software licenses to application engineers!
Audio downmixing might be something we can look into for the future on Android, but for now it’s definitely a pipe dream, personally I would love to see this and upmixing in Plex for Android!
What about just a straight decode to LPCM for all codecs? Is this covered by licensing issues as well?
Indeed it is, any form of decoding is subject to licensing whilst we are supporting more and more formats via software decoding we can’t do this for everything just yet.
@sixones said:
Downmixing is still in the pipeline buts it’s not in development right now. Downmixing on Android wouldn’t really solve some of the issues mentioned here, your device would need to be able to decode the format and then downmixing could be applied.
@danjames92 said:
@sixones said:
What you have done isn’t illegal as your not releasing or sharing the binaries to allow others to run AC3 / DTS with ExoPlayer. The issue is that the Plex for Android application is closed source, so we couldn’t use GPL binaries like you have done as we would need to release the source code for the app.
For Plex on Android to do the same, we would need to license the decoders and implement support ourselves (we couldn’t use the existing FFmpeg + ExoPlayer implementation as that would break the license). As you can imagine this makes things very complicated! This is made even harder by license vendors preferring to sell OEM licenses to device manufacturers rather than software licenses to application engineers!
Audio downmixing might be something we can look into for the future on Android, but for now it’s definitely a pipe dream, personally I would love to see this and upmixing in Plex for Android!
What about just a straight decode to LPCM for all codecs? Is this covered by licensing issues as well?
Indeed it is, any form of decoding is subject to licensing whilst we are supporting more and more formats via software decoding we can’t do this for everything just yet.
Well hopefully those DTS / DOLBY jerks give you a reasonable licence terms to be able to make it happen. Decode to LPCM and then downmix wouldn’t require any specific codec to be supported AFAIK so that would be ideal.
Can I ask, if not too cheeky, what are the primary objectives for the Plex for Android TV client right now? Still focusing on the ExoPlayer 2.x transition?
IMO, yes, would be nice to have licensed decoders for the corner cases where transcoding on the server proves problematic, however, the Shield itself should really come bundled with licenses, obtained by NVIDIA (or Google), to handle all current formats, accessible by any/all apps installed on the platform. That’s the “right” way anyway.
@danjames92 said:
Decode to LPCM and then downmix wouldn’t require any specific codec to be supported AFAIK so that would be ideal.
Assuming you can decode to PCM on the client that would work, sending PCM over a network would be very painful! It’s large in it’s uncompressed form and isn’t meant for running over a network.
@danjames92 said:
Can I ask, if not too cheeky, what are the primary objectives for the Plex for Android TV client right now? Still focusing on the ExoPlayer 2.x transition?
Mostly it’s still focusing on the transition to the new player, should be available in the beta very soon! The new player is going to set the path for a lot of new things in the player world, including a new UI for Android TV and mobile and many many other features (downmixing being one of them!).
@TVPlexHD said:
IMO, yes, would be nice to have licensed decoders for the corner cases where transcoding on the server proves problematic, however, the Shield itself should really come bundled with licenses, obtained by NVIDIA (or Google), to handle all current formats, accessible by any/all apps installed on the platform. That’s the “right” way anyway.
It would be awesome if we could, unfortunately though most codec developers sell to hardware manufacturers and not software vendors. They can probably make a lot more money by targeting the hardware manufacturers!