jmshrv / finamp

A Jellyfin music client for mobile
Mozilla Public License 2.0
1.67k stars 117 forks source link

Opus/Vorbis/OGG doesn't work on iOS (+ discussion on new player backends) #177

Open Ember-ruby opened 2 years ago

Ember-ruby commented 2 years ago

iphone 8, ios 13

Maxplosion commented 2 years ago

logs from finamp? does it work in on other clients and if yes which? jellyfin server logs? are you transcoding? see a pattern here...?

Ember-ruby commented 2 years ago

Finamp logs: https://paste.gg/p/anonymous/c238f1a4142447909d5abae177e9166e Finamp audio logs: https://paste.gg/p/anonymous/4ab3e8c877bb41bdbcdb6dd737de7c0e Jellyfin logs: https://paste.gg/p/anonymous/3c221e7311fe4066a5346fe36e81b27a

It works on Jellyfin web client and ios client, i don't have and android phone to try Finamp on

not transcoding, audio plays if i turn it on

jmshrv commented 2 years ago

What codec is your audio? OPUS and Vorbis aren't supported yet on iOS as iOS doesn't natively support those formats (it's dumb I know)

MikePadge commented 2 years ago

@UnicornsOnLSD thanks for your work on this app, I love it

I'm not super familiar with Flutter, but this might be a solution https://github.com/EPNW/opus_flutter/tree/master/opus_flutter

jmshrv commented 2 years ago

That's a really interesting looking package, I'll do some testing with it :)

Ember-ruby commented 2 years ago

What codec is your audio? OPUS and Vorbis aren't supported yet on iOS as iOS doesn't natively support those formats (it's dumb I know)

Not even transcoding it?? Also I’m kinda having this issue again, but now it only shows songs I’ve hearted on jellyfin web/iOS app, and yeah nothing opus is playing, annoying given that the vast majority of my music is opus

jmshrv commented 2 years ago

Transcoding should work since Jellyfin will then serve it as AAC, which is supported. As I said, this is an iOS issue so it isn't likely to get fixed in the future. I believe the libopus package that was sent here was for when you want to encode Opus audio in your app, so it won't be useful here.

As for only showing favourite content, you can disable the favourite view by clicking on the star in the top right.

jmshrv commented 1 year ago

Just noting here a comment I left on a duplicate issue - https://github.com/UnicornsOnLSD/finamp/issues/236#issuecomment-1174953175

As said there, it would be interesting to see if it would be possible to use just_audio_mpv. In theory it should be possible, but there has been a lot of discussion in just_audio regarding whether or not bundling MPV in apps is legal. I'd assume that the MPV guys aren't too bothered based on mpv-android

The developer of just_audio gave a very good explanation on why MPV may not be possible in this comment - https://github.com/ryanheise/just_audio/issues/178#issuecomment-696021649

proline commented 1 year ago

Apparently you can implement this by yourself I don't know it is complicated. http://iosdeveloperzone.com/2012/08/07/precompiled-ogg-vorbis-libraries-for-ios/ The post is a little bit old. It could be a solution but if I understand you need to implement your own player.

jmshrv commented 1 year ago

Yeah the libraries would only let me encode/decode those files directly, you can't plug them into Apple's player.

fuomag9 commented 1 year ago

Maybe https://github.com/leinelissen/jellyfin-audio-player can be used for how to implement this? It's MIT and they have implemented opus playback

jmshrv commented 1 year ago

On iOS? It looks like they have the same issue - https://github.com/leinelissen/jellyfin-audio-player/issues/97

I've looked further into MPV, it'll probably be possible as it's LGPL2 (some bits are GPL only but we can safely ignore them). The concerns around legality come from GPL3's Tivoization-prevention stuff.

fuomag9 commented 1 year ago

On iOS? It looks like they have the same issue - leinelissen/jellyfin-audio-player#97

I've looked further into MPV, it'll probably be possible as it's LGPL2 (some bits are GPL only but we can safely ignore them). The concerns around legality come from GPL3's Tivoization-prevention stuff.

In my case I can successfully play opus files (maybe it's transcoding?) With finamp I couldn't even with transcoding enabled in the app

jmshrv commented 1 year ago

With finamp I couldn't even with transcoding enabled in the app

You're probably running into #269, which was fixed a while ago (but causes more issues in the form of #414 lol). It's not in a release yet thankfully.

fuomag9 commented 1 year ago

With finamp I couldn't even with transcoding enabled in the app

You're probably running into #269, which was fixed a while ago (but causes more issues in the form of #414 lol). It's not in a release yet thankfully.

Is that fixed in the AppStore version? I tried again but still couldn’t play music :(

jmshrv commented 1 year ago

It's not out yet, hopefully it will be soon. As I said, it breaks direct play at the moment so its probably a good thing that I was slow to publish it lol

Chaphasilor commented 1 month ago

@fuomag9 it should be out now. You can also try out the beta version which has support for transcoded downloads! :)

gummykage commented 2 weeks ago

Is it normal for OGG files to crackle and skip a bit while transcoding is on?