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

Add remuxing support for VP9 #11489

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from
Draft

Add remuxing support for VP9 #11489

wants to merge 1 commit into from

Conversation

gnattu
Copy link
Member

@gnattu gnattu commented May 5, 2024

Changes

Add VP9 as a valid HLS format to enable remuxing. This is useful when audio processing is required, but the VP9 video can be passed as-is to avoid unnecessary video transcoding.

No VP9 encoder is enabled and should not be enabled. AV1 and HEVC should be preferred over VP9 if video transcoding is required.

Issues

@gnattu gnattu added the enhancement Improving an existing function, or small fixes label May 5, 2024
@nyanmisaka
Copy link
Member

How does it perform on HLS.js and Safari?

@gnattu
Copy link
Member Author

gnattu commented May 5, 2024

How does it perform on HLS.js and Safari?

HLS.js on both Firefox and Chrome works with fmp4 container.

Firefox can play with TS container as well, but Chrome cannot.

Safari is a little bit tricky. Only iOS Safari understands VP9 over HLS with the native HLS player through fmp4 container, and the desktop Safari does not play.

@nyanmisaka
Copy link
Member

How does it perform on HLS.js and Safari?

HLS.js on both Firefox and Chrome works with fmp4 container.

Firefox can play with TS container as well, but Chrome cannot.

Safari is a little bit tricky. Only iOS Safari understands VP9 over HLS with the native HLS player through fmp4 container, and the desktop Safari does not play.

Safari 17 has added AV1 over fMP4 support, it's hard to understand why VP9 has been left behind on desktop Safari. Maybe there's some kind of experimental option that's not enabled by default yet?

@gnattu
Copy link
Member Author

gnattu commented May 5, 2024

Safari 17 has added AV1 over fMP4 support, it's hard to understand why VP9 has been left behind on desktop Safari. Maybe there's some kind of experimental option that's not enabled by default yet?

No, not experimental option. It is more likely intentional or not bother to add it. iOS Safari supports this for years if I remembered it correctly, and macOS Safari just never supported this. HLS.js works on desktop Safari though.

Apple just don't want you to use VP9 and they are making this more or less only for Google's YouTube. They did not even announce publicly when VP9 is available in their SoC and only quietly added the support in iOS 14 update, unlike AV1 that they publicly announced the availability when it is added. The VP9 support policy for Apple is probably "not an issue as long as YouTube does not break".

@nyanmisaka
Copy link
Member

Safari 17 has added AV1 over fMP4 support, it's hard to understand why VP9 has been left behind on desktop Safari. Maybe there's some kind of experimental option that's not enabled by default yet?

No, not experimental option. It is more likely intentional or not bother to add it. iOS Safari supports this for years if I remembered it correctly, and macOS Safari just never supported this. HLS.js works on desktop Safari though.

Apple just don't want you to use VP9 and they are making this more or less only for Google's YouTube. They did not even announce publicly when VP9 is available in their SoC and only quietly added the support in iOS 14 update, unlike AV1 that they publicly announced the availability when it is added. The VP9 support policy for Apple is probably "not an issue as long as YouTube does not break".

This makes sense. Youtube should have enabled its own fMP4/Dash player for desktop Safari through MSE, but this is still not supported on iOS due to power saving considerations.

@jellyfin-bot jellyfin-bot added the merge conflict Merge conflicts should be resolved before a merge label May 15, 2024
@jellyfin-bot
Copy link
Contributor

This pull request has merge conflicts. Please resolve the conflicts so the PR can be successfully reviewed and merged.

Add VP9 as a valid HLS format to enable remuxing. This is useful when audio processing is required, but the VP9 video can be passed as-is to avoid unnecessary video transcoding.

No VP9 encoder is enabled and should not be enabled. AV1 and HEVC should be preferred over VP9 if video transcoding is required.

Signed-off-by: gnattu <gnattuoc@me.com>
@jellyfin-bot jellyfin-bot removed the merge conflict Merge conflicts should be resolved before a merge label May 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Improving an existing function, or small fixes
Projects
Status: In progress
Development

Successfully merging this pull request may close these issues.

None yet

3 participants