-
Notifications
You must be signed in to change notification settings - Fork 133
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Possibility for direct play ALAC on Android? #681
Comments
Android itself doesn't support ALAC - Finamp uses ExoPlayer to play music, which largely binds us to what Android supports. We might be able to integrate with this ffmpeg decoder module, but off the top of my head, Finamp probably isn't compatible with ffmpeg's licensing. I've discussed alternate player backends at #177, but I don't have the time to make that happen right now. |
@AverageHelper in addition to what James said, your second suggestion sounds doable. On iOS for example OPUS can't be played directly, and some other users have requested automatic/smart transcoding as well. So a list of known incompatible codecs/containers per platform seems doable. We first need to get that information though, it's not something Finamp requests for regular playback yet. But I'm working on a feature where I'll need similar information, so I think this could be happening at the end of April. Until then, you could try downloading your ALAC media to your device as OPUS, Finamp will currently always prefer downloaded media over remote media. So your FLAC would stream without transcoding, and your ALAC could be played from the device :) |
Alternatively, you could reencode your library to FLAC, which is supported basically everywhere. I understand that it'd be a bit of a pain if you've got loads of ALAC stuff though :) |
Re-encoding is the eventual plan. Fortunately, I got most of my ALAC tracks from Bandcamp, back before I knew the difference between that and FLAC, so I can re-download those from source pretty easily over time. Meantime, I just wanna listen to my music, lol |
Possibly related to #225, but on the latest stable version as well as the beta (0.9.5) on Android, ALAC-encoded m4a files won't play without transcoding. As of 0.9.5, the tracks "play", in that the UI shows the current track and progress moves along, but no sound appears. After a few seconds, the app seems to give up, automatically skipping to the next track in the queue. Enabling transcoding enables playback for these tracks. (Good thing the beta permits transcoding downloads now!) FLAC works natively, as expected, but it seems those get transcoded anyway when transcoding is enabled. 😞
I don't know much about audio pipelines, but I tried on Plex just now, and ALAC plays direct as well as FLAC, apparently without transcoding (unless Plex is lying to me, which I guess I can't check for sure without the source code, lol). Other Android Jellyfin clients (I tried all the FOSS ones on this list) seem to play ALAC as well, but none of the other apps would let me disable transcoding or tell me if they are transcoding those tracks, so I don't know for sure if transcoding ALAC is just An Android Thing™ with Jellyfin.
Is there any way to enable direct ALAC play on Android, or does that require some proprietary component that we don't have access to here? (Notably, Plex is closed-source, so I wouldn't put it past them to include that kind of thing there.)
Alternatively, could some way be added, if it doesn't already exist, to conditionally transcode media? Or for the app to detect media it cannot play and have that transcoded?
I've started preferring FLAC for new music purchases, but most of my library is ALAC at the moment. I suppose I'll have to convert those to FLAC eventually, but in the meantime, some way for the app to play FLAC direct while transcoding things like ALAC that it cannot play natively?
The text was updated successfully, but these errors were encountered: