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

[Feature Request] Opus Transcoding #427

Open
phip123 opened this issue Apr 10, 2023 · 4 comments
Open

[Feature Request] Opus Transcoding #427

phip123 opened this issue Apr 10, 2023 · 4 comments
Labels
good first issue Good for newcomers

Comments

@phip123
Copy link

phip123 commented Apr 10, 2023

Hi, I have not found much to add a feature that enables server-side transcoding into Opus, actually only found this PR which wants to add support for Vorbis.

Is it somehow possible to enable Opus transcoding in the future or is it planned?
In Symfonium it possible and works pretty flawless with Jellyfin.

Thanks!

@jmshrv
Copy link
Owner

jmshrv commented Apr 10, 2023

It's something that I want to do, but there will be some requirements to get it working perfectly:

  • Being able to stream OPUS on both platforms - Apple only support OPUS in CAF containers because they like to be annoying. From my testing, you can't just throw CAF through the internet as it's being transcoded, which is what the linked PR does for Vorbis/OGG
  • DASH streaming - asking for the transcoded file directly causes issues with audio playback, namely causing seeking to be very inconsistent. Finamp currently uses HLS for transcoding, which works on both platforms and is supported by Jellyfin. The downside of this is that HLS only supports AAC (and MP3, but that's irrelevant since we can just use AAC). Fro, what I've read, DASH should allow us to stream any codec, including OPUS. DASH is not supported on the Jellyfin server, so that'd be something that I'd have to add there.
  • Player backend rewrite - to solve the lack of support on iOS, I want to switch to something like MPV for the player backend. This should solve every issue around playback in Finamp, since MPV is awesome compared to the OS libraries. That's being tracked at Opus/Vorbis/OGG doesn't work on iOS (+ discussion on new player backends) #177.

I've been messing around with transcoded downloads at #215, which has fixed bugs in Jellyfin related to transcoding different formats. In theory, I could add an option to transcode OPUS on Android once the next release of Jellyfin comes out, which is kind of what the linked PR wanted to do.

@phip123
Copy link
Author

phip123 commented Apr 10, 2023

Thanks for the quick reponse and exhaustive explanation!

I hope that this will the fixes will be released sooner than later to pave the way for Opus.

@Chaphasilor Chaphasilor added the good first issue Good for newcomers label May 17, 2024
@texneus
Copy link

texneus commented Jun 15, 2024

Hopefully this issue isn't lost to time. I was wondering why I could download but not stream these alternate formats. The obvious solution is if iOS doesn't want you to stream Ogg or Opus then disable those features in iOS releases. There should not be any reason to hold one platform back because of an arbitrary rule on another.

@jmshrv
Copy link
Owner

jmshrv commented Jun 22, 2024

Downloading transcoded stuff doesn't depend on DASH streaming, although based on discussion in #151, it may not actually be required. It'll be Android (+ Linux, probably Windows?) only, but it's something that could be looked into

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

No branches or pull requests

4 participants