Opus transcode... and then whats best at Plexamp/Android client?

Server Version#: 1.41.3.9314
Player Version#: 4.11.5

I’m setting up fully mobile based playback using Plexamp. I get the benefit of Opus transcode (and it does sound great) for reduced bandwidth to Plexamp and I could use some more insight as I build out the hardware (DAC, BT, etc.) portion for the client.

It is with FLAC 16 and 24bit that I have the questions on what to expect, and then decide which options/solutions make sense for me. I assume PMS uses Opus 48KHz, correct? What bit depth, or is it 32bit transcode?

Then, deciding on BT/USB DAC,/headphone out options… what comes out of Plexamp? Does Plexamp decode the stream, send audio to the OS, or route the Opus stream to the OS, where does a USB DAC fit in all this… what’s gonna be cleanest/simplest best preservation of audio at the Android mobile client?

TIA!

This one would have to be for a dev to say how it works in the background.

Depends on the device. From what I understand Plex Server will do the transcoding and then send the stream. Whether it routes through the OS or not depends on the device.

This is a tricky one as there is no clear answer yet. It depends on the dongle DAC you use and your ears. If you are looking for straight up numbers to see bits differences I don’t know if that info is available.

I have used a simple usb-c to headphone dongle Apples one is really good for 10 to 20 bucks. I have also used an ifi go blu. Which is bluetooth, I get LDAC when I do that. Cleanest simplest might be a matter of taste and preference. I like the ifi go blu cause I don’t have to deal with the headphone cable getting caught on things.

Yeah, it’s a lot of unknowns with PMS and Plexamp the devs are gonna have to clarify… and if they say they won’t because it’s proprietary, well, I’m good with that too. I can just fall back on doing Good enough testing myself. Some info, even vague or veiled would help.

As to ears/amps etc and perception, I hadn’t wanted to even go there in the forum. My range of use cases is wide, in car stereo, IEMs, amp/speakers, so I’m definitely being pragmatic and not chasing an imperceptible theoretical Nirviana!

Oh so your use case is for normal everyday life? :grinning:

This has been discussed a few times here and other places but it appears, Android devices limit to 48Khz regardless of what Dongle DAC you use because of Android and the way the audio goes through the operating system. There are some apps like usb audio player pro that go around this and allow higher res out to a DAC.

I know I have seen in the Forums that the Plexamp devs are aware of this and it has been discussed.

Plex uses OPUS. Opus-codec.org

I dont fully understand how OPUS does what it does but from the website it appears OPUS does it better than the rest. An OPUS stream of 128kbps will be enough to produce CD quality levels of perceived sound in the majority of normal systems/iems/desktop speakers.

Even just if the Opus transcoding is 16 or 32 bit, that’d be a nice to know. Mods, devs?

The bit depth is kinda pointless in a lossy codec.

Sort of, but mostly no. With Opus (and MP3) the source dynamic range is encoded and maintained, limited by the source bit depth. I’m asking, what this thread is about, is what PMS uses to create the Opus stream, which informs what’s to be expected when it’s received and decoded at the client. This goes to what client-end solutions appriate is specific situations. To make the best choices it’s just sensible to be thinking about trade-offs, do I go cheap or better DAC, leave my mobile data plan as-is or is it worth increasing, or skip Plex streaming at all in favor of a portable USB stick or monster sdcard, and in what listening environment .

I’m just trying to find out what PMS is transcoding…

  • 48KHz wide-band is an easy assumption, so expecting Opus transcode of 48/16 for 16 bit source files is easy to assume, as is 44/16 if that’s the source. Are these assumptions correct?
  • When transcoding a 24bit file, is PMS transcoding Opus with the 48/24, or is it truncating them to 16 bit?
  • Or is all this handled by ffmpeg defaults and Plex is just handling the input and routing the output of ffmpeg?

These are fundamental questions.

With no answers, I’ve given up on this.

I remembered that there was a thread that talked about this a while back. See this post Plexamp: Support for Hi-Res Music and read through that thread there was some good discussion.

But based on post 37 from elan. Plex uses 32-bit floating point.

1 Like

as far as I know, a transcode of a 24-bit file would likely maintain the 24 bits from the source before being decoded into 32 bits for our pipeline, but i’m also absolutely sure you wouldn’t be able to hear the difference if it were truncated to 16 bits.

1 Like

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.