-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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 support for H264 High 10 Profile on Safari #5901
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ESLint doesn't pass. Please fix all ESLint issues.
Apple hardware has always been able to handle High10P, and on older systems you can just use a fake mimetype to trick Safari into playing it in fMP4 as well. Is there a changelog that mentions this? |
The hi10p hardware decoding support should be present back to at least iOS 12 era so we can assume this will work for all modern iOS devices. What I'm not confident with is the macOS support status. There are still Intel Macs that never has hi10p hardware (probably the model with T2 chip could use the decoder in that chip but I'm not sure), and Apple's release note documented that hardware Hi10P was enabled for videotoolbox on macOS >= 14.6 which makes me not quite confident because I don't know if I would:
|
I'm not encouraging this on older systems xD, especially when they have no software fallbacks. |
Just tested with macOS 12 + Safari 15 on Apple M1, the player does not fail but the video is just all black. I think the Safari version check is necessary here. Not sure about Intel Macs as I don't have one right now. |
Good to know. Is HEVC Rext (4:4:4 & 4:2:2) content possible in Safari? |
Yes. Although we have not added support check for that yet. But such videos are still rare. After playing with it a little bit more I think we probably need to add a switch to the playback options because:
|
So let users opt in on Apple devices to avoid such hassle. |
Added a playback setting defaulted to false. This option will only show if the browser is Safari and the user will need to explicitly enable it. |
Quality Gate passedIssues Measures |
Updated to place the hi10p profile before the regular ones to accommodate the changes made in jellyfin/jellyfin#12499 |
Cloudflare Pages deployment
|
Both macOS and iOS Safari have enabled H.264 Hi10P decoding support with some restrictions. For our use case, we need to force all H.264 Hi10P video files to trigger remuxing, as this profile is only supported in fMP4 within HLS. Attempts to direct play the original video will fail.
To support this functionality, the server API needs to be modified to accept HLS-specific codec profiles.
This also added a user-configurable option to let the user to opt-in this feature, as the precise feature detection is impossible.
Changes
Issues
Depends on Server change jellyfin/jellyfin#12420