Plexamp v4.12.4 on Galaxy A34 Android 15 / OneUI 7
Docker server running Version 1.42.2.10156 of plex server.
When trying to play tracks with plexamp, some tracks just try to load, then skip to the next track without playing. Specifically, it seems to be any track using a 96Khz / 24bit album in a .m4a format.
expected beavhior: The server should transcode it to something that would play on my phone.
Playing the same file using symfonium or the web player on the same device seems to work.
Logs from plexamp attached.
On the server, I do notice something weird in the logs, where I get the error “[Req#b029] Could not convert “state” (“error”) to the correct type” I also see the log spammed with something akin to the following:
Audio Stream: 89710, Subtitle Steam: -1
Selecting best audio stream, for part id 14234 (language: )
We're going to try to auto-select a subtitle for account 1
Selected a foreign audio track:
Audio Stream: 89711, Subtitle Steam: -1
Selecting best audio stream, for part id 14235 (language: )
We're going to try to auto-select a subtitle for account 1
Selected a foreign audio track:
Oh damn! Thanks for the quick response A lot of my library is in this format, and if possible I’d like to keep it that way for now. Is there an alternative approach I might be able to take, other than just sticking with symfonium or the web player?
Tried converting them to .flac, works on mobile now
Weird it works in symfonium and the webplayer then - anyways, Im going to make some scripts to convert them. Thanks for the tip
For anyone in the same problem, here is my current script that takes dir as its first argument and uses ffmpeg to convert:
#!/usr/bin/env bash
# Converts all .m4a (with FLAC audio) in a directory tree into .flac and removes the originals.
dir="${1:-.}"
find "$dir" -type f -name '*.m4a' -exec bash -c '
for f; do
out="${f%.m4a}.flac"
echo "Converting: $f"
if ffmpeg -y -i "$f" -c:a copy -map_metadata 0 "$out"; then
rm -- "$f"
echo "âś” Removed original: $f"
else
echo "âś– Failed to convert: $f" >&2
fi
done
' _ {} +
As a sidenote, if the plexamp is unable to play a file format, like if the underlying OS can’t play it, wouldnt the correct behavior from plexamp still be to ask the server to transcode it?
ffmpeg can decode it, so it’s not crazy, not sure what those other players use under the hood (e.g. Chrome uses ffmpeg i think???)
It’s not a terrible idea; generally speaking it checks for codecs it supports and assumes (usually correctly) that if it can’t play, there must be something wrong with the format (which, technically, there is).