-
-
Notifications
You must be signed in to change notification settings - Fork 147
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
Support for HDR, VP9, AV1 #686
Conversation
Unclear if this should have automatically fixed this or not as is, for the linked FR #685 but I tested this branch with an MKV DV file, and it did not transcode or trigger DV on the TV. |
@Terebi42 It's unclear to me what you are saying here. What does "did not transcode or trigger DV on the TV" mean? |
My TV supports DoVi, but apparently not in MKV containers for webdl (mkv works for bd rips, due to the profile 7?). #685 was a request to remux these on the fly to improve support. (Apparently this is done in the safari client already) |
if you show me where I'd be happy to replicate it. |
Honestly, I'm not sure. Thats based off of a comment someone made in reddit, along with the following screenshot https://www.reddit.com/r/PleX/comments/vs09ki/can_a_client_profile_fix_dovi_mkvs/iezhdci/ But also there is this remuxing util that may have some clues |
So, I guess I need this explained to me. If DOVI is not being transcoded then DOVI is being delivered to the roku. The roku can't tonemap it, the server IS NOT tonemapping it (because there is no transcode), so DOVI is being passed through to your TV because there is no transcode. If this video file is playing and looks remotely correct, then it must be in DOVI because otherwise how it is properly displayed? If nothing is decoding it between the file on your server and the screen, then it is DOVI. Roku isn't magically tonemapping it down and outputting SDR from a DOVI stream, thats not possible. |
relevant exchange from chat: |
For DoVi BDDrip in Mp4 or Mkv, they appear to work universally (profile 7?) For DoVi WebDls (Profile 6?) in MP4, they play correctly, trigger DoVi on the TV and have the right colors. For Dovi WebDLs in mkv they do not trigger DoVi on the TV, and are purple/Green. I am unsure why many setups can play WebDL DoVi from mp4 but not mkv. But this situation is apparently true for many hardware/software setups. Thats why that other tool for remuxing mkv to mp4 I linked exists, and also why places like PTP have rules about uploading in mp4 instead of mkv for DoVi. Also the Trash guide custom formats/profiles for Sonarr/Radarr ignoring DoVi WebDL are due to this issue. Lots of threads on PTP/HDB/etc talking about the issue, which layer/profile DoVi it is, which setups can play MKV vs cant, etc. My request was just to try and have Jellyfin remux DoVi mkv to mp4, which hopefully leads to increased compatibility, and which apparently already works for some people in Safari Jellyfin per that other screenshot I linked. |
Its not a matter of "just remux mkv to mp4 if it contains dovi". Safari also does NOT ""remux dovi mkv to mp4" what it does is remux ALL mkv to mp4 because safari does not support mkv containers. The roku DOES support mkv containers, so without breaking the existing profiles, what you are asking for is very complicated. |
What do you see on your display in this case? Can you take a photo of it? What gives you the impression that it did not "trigger DV on the TV"
|
My tv puts up hdr or Dolby logos when non sdr modes are activated If it's not feasible to selectively remux Dolby vision, could an option to globally remux mkv be added that could be manually selected? |
it would be straightforward to just disable mkv support with a setting, maybe. neil has a knack for solutions to problems like these maybe he will come up with something. |
from chat: |
Well, my TV separately gives logos for DV vs HDR. So either my TV is lying to me when a BD rip triggers DV that its really HDR, or its a more complicated container + DVprofile compatibility combination. |
This pull request has been inactive for 21 days and will be automatically closed in 7 days if there is no further activity. |
This pull request has been closed because it has been inactive for 28 days. You may submit a new pull request if desired. |
This PR actually seems to solve the HDR transcoding issue, so I'm in favour of doing a bit of work on this PR to get it into a state that we can merge it. There are a few minor issues with the device profile logic that I'm going to push changes for, but nothing that changes how this works. I've tried to copy the AV1 support into its own PR (#776) but there have been some reports that this doesn't work, so I would propose that until we can get some confirmation of this from people who have Roku devices that support AVI (which I do not, I'm afraid) I would suggest we add a user preference to allow users to enable "experimental av1 support", and have it off by default. This means we can get it out to a wider audience for testing and feedback. @Terebi42 Since DoVi is not specifically addressed in this PR and you already have an issue open for it (#685) can I suggest we use that to have a further discussion about DoVi and not complicate this PR any further. I have recently got a TV that supports DoVi so should be able test how things are working - although will need to chat with you in more detail about it I have no doubt. |
… videoLevels Also make linter happy
All HEVC content I've tried thus far, both 1080p SDR and 4K HDR10, direct plays without transcoding using PR #686. AV1 starts to play but sticks and buffers endlessly. Mine sat at 33% until I stopped it trying to play back. |
This pull request has been inactive for 21 days and will be automatically closed in 7 days if there is no further activity. |
sorry, I didn't see this comment before. Yes, I'm fine with deferring the dovi bit. |
Not sure if it's on the server side or client side but I still seem to have the video transcoded to h264 when the audio requires transcoding.
By default, audio always causes a transcode but the video shouldn't need transcoded. To test, I hardcoded eac3, 5.1 channel, and hevc main 10 support into the direct play profile and the video plays fine (the TV indicates it's HDR) but obviously no audio (since that codec isn't supported). Without hardcoding those into the direct play profile, I end up getting a transcoded stream with aac 2 channel audio and h264 video. |
Interesting. I'm running this PR and I'm pretty sure I now get correct direct stream functionality where I just get audio transcoding if needed. Previously, an audio transcode would force the video to be transcoded too. My server version is 10.7.7. |
This was big 10.8.5 so possibly related to 10.8.x changes but not sure if it's on the Roku client side (device profiles) or server side (transcoding code) I'll try again with 10.8.7 when I have some time but I didn't see any relevent changes in the changelog |
Sorry, brain typo. I'm on server 10.8.7 not 10.7.7. |
After see this https://github.com/jellyfin/jellyfin/blob/a214ca259838fa7d1a7052b7bd7ba6a16720406f/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs#L5516, I tried moving
|
There seems to be a weird interaction with this block of code https://github.com/jellyfin/jellyfin/blob/master/Jellyfin.Api/Helpers/DynamicHlsHelper.cs#L201 Commenting out that block and using this branch as-is also results in the video file playing without any video transcoding. I'll open an issue in jellyfin/jellyfin |
Cool! If you want, you might want to make mention of it in the Matrix Jellyfin Roku chat just to get eyes on it. |
Just tried this with Neil's latest changes. From my quick testing, everything that worked for me previously (x264, x265, HDR) all worked and direct played as expected. I tried to play an AV1 clip I got from https://www.elecard.com/videos (City Hall 1080p). With the forced direct play option all I got was a black screen which is consistent with when I tried this clip with an earlier version of this PR. The video is playing, but the screen is just black. Not sure why, but more importantly, when I disabled the AV1 direct play option the video was successfully transcoded. The Dashboard reported it was being transcoded into x265 which was cool as well. |
Co-authored-by: 1hitsong <[email protected]>
Co-authored-by: 1hitsong <[email protected]>
Co-authored-by: 1hitsong <[email protected]>
This is starting off a little nasty but i figure we better get started. if anybody has the ability to test av1, please try this PR.
I suspect we also need to set up a valid mp4 transcoding profile in order to allow the directstream hevc functionality that the server is capable of, but i may also not understand what is going on.- we do not. feedback welcome.