Skip to content
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

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

Open
Ember-ruby opened this issue Jan 15, 2022 · 22 comments
Open

Comments

@Ember-ruby
Copy link

iphone 8, ios 13

@Maxplosion
Copy link

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
Copy link
Author

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
Copy link
Owner

jmshrv commented Jan 15, 2022

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
Copy link

@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
Copy link
Owner

jmshrv commented May 1, 2022

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

@Ember-ruby
Copy link
Author

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
Copy link
Owner

jmshrv commented May 30, 2022

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 jmshrv changed the title Music is playing but there is no audio Opus/Vorbis/OGG doesn't work on iOS Jun 6, 2022
@jmshrv
Copy link
Owner

jmshrv commented Jul 5, 2022

Just noting here a comment I left on a duplicate issue - #236 (comment)

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 - ryanheise/just_audio#178 (comment)

@proline
Copy link

proline commented Jul 5, 2022

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
Copy link
Owner

jmshrv commented Jul 5, 2022

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

@fuomag9
Copy link

fuomag9 commented Mar 14, 2023

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
Copy link
Owner

jmshrv commented Mar 14, 2023

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.

@fuomag9
Copy link

fuomag9 commented Mar 14, 2023

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
Copy link
Owner

jmshrv commented Mar 15, 2023

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
Copy link

fuomag9 commented Mar 15, 2023

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
Copy link
Owner

jmshrv commented Mar 15, 2023

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
Copy link
Collaborator

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

@gummykage
Copy link

gummykage commented Jun 14, 2024

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

@Chaphasilor
Copy link
Collaborator

I honestly don't know, but probably not. I guess this is on iOS? Does it also happen if you download them as a transcoded version?

@felix920506
Copy link

@gummykage I noticed the same issue and reported in #600

@willisplummer
Copy link

I'm running into this issue as well on ios

@felix920506
Copy link

felix920506 commented Dec 14, 2024

Idk if anyone has tried this, but I got finamp to direct play opus on macos, installed as an ios app
I am on macos14.5 running finamp beta from testflight.

Update:
Just to be sure, I tried with an actual iOS client, in this case iOS 18.1.1 and it is direct playing without issues

I was told by someone that this is limited to mono or stereo audio, but I have not verified this myself.

Steps are as follows:

  1. If you already have the audio in opus codec, remux them to mp4 containers:
    ffmpeg -i something.opus -vn -c:a copy something.mp4
    Or from webm container: ffmpeg -i something.webm -vn -c:a copy something.mp4

Alternatively, you can transcode other codecs to opus if desired, not recommended if source is lossy:
ffmpeg -i something.flac -vn -c:a libopus something.mp4

  1. Rename the file to have .m4a extension. For example, something.mp4 -> something.m4a. Straight rename is enough, no need to remux/transcode.

  2. Place the resulting .m4a files on Jellyfin and rescan

  3. Profit

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants