Open jongames opened 1 year ago
Now, another issue which may be related: setting a bitrate limit on the roku client leads to the 4K HDR file being converted to 4K SDR for no reason (but the file does play successfully). It should remain in HDR.
> [2023-06-15 00:00:37.461 -04:00] [INF] User policy for "". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
> [2023-06-15 00:00:37.461 -04:00] [INF] StreamBuilder.BuildVideoItem( Profile="Anonymous Profile", Path="/media/movies/(2018) - 4K HDR.mkv", AudioStreamIndex=1, SubtitleStreamIndex=-1 ) => ( PlayMethod=Transcode, TranscodeReason=AudioCodecNotSupported, VideoBitrateNotSupported ) "media:/videos/350fe1db-cc23ceb4cb5b/master.m3u8?MediaSourceId=5f9854be675e1f29&VideoCodec=hevc,h264,hevc&AudioCodec=aac,ac3&AudioStreamIndex=1&VideoBitrate=30000000&AudioBitrate=640000&MaxFramerate=23.976025&api_key=<token>&SubtitleMethod=Encode&TranscodingMaxAudioChannels=6&RequireAvc=false&Tag=07238fc4aa&SegmentContainer=ts&MinSegments=1&BreakOnNonKeyFrames=True&hevc-level=153&hevc-videobitdepth=10&hevc-profile=main10&hevc-rangetype=SDR,HDR10,HLG,DOVI&TranscodeReasons=AudioCodecNotSupported,%20VideoBitrateNotSupported"
> [2023-06-15 00:00:38.560 -04:00] [INF] Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
> [2023-06-15 00:00:38.560 -04:00] [INF] "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -ss 00:00:09.000 -init_hw_device vaapi=va:,driver=iHD,kernel_driver=i915 -init_hw_device qsv=qs@va -init_hw_device opencl=ocl@va -filter_hw_device qs -hwaccel qsv -hwaccel_output_format qsv -c:v hevc_qsv -autorotate 0 -i file:\"/media/movies/(2018) - 4K HDR.mkv\" -autoscale 0 -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 hevc_qsv -tag:v:0 hvc1 -low_power 1 -preset 7 -b:v 30000000 -maxrate 30000000 -bufsize 60000000 -profile:v:0 main -level 50 -g:v:0 72 -keyint_min:v:0 72 -vf \"setparams=color_primaries=bt2020:color_trc=smpte2084:colorspace=bt2020nc,scale_qsv=w=2560:h=1440,hwmap=derive_device=opencl,tonemap_opencl=format=nv12:p=bt709:t=bt709:m=bt709:tonemap=bt2390:peak=100:desat=0,hwmap=derive_device=qsv:reverse=1:extra_hw_frames=16,format=qsv\" -codec:a:0 libfdk_aac -ac 6 -ab 640000 -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type mpegts -start_number 3 -hls_segment_filename \"/var/lib/jellyfin/transcodes/367e50bb74%d.ts\" -hls_playlist_type vod -hls_list_size 0 -y \"/var/lib/jellyfin/transcodes/367ebb74.m3u8\""
Suspect I'm having a similar issue. I've disabled transcoding for the moment (for various reasons), but I have several videos that play through the roku media player app, but not on jellyfin - all of them have encodings that fall slightly outside of the strict compatibility list here
Errors like this...
[2024-03-15 08:52:32.411 +00:00] [INF] StreamBuilder.BuildVideoItem( Profile="Official Roku Client", Path="\\media.lan\Videos\test.mp4", AudioStreamIndex=1, SubtitleStreamIndex=-2 ) => ( PlayMethod=Transcode, TranscodeReason=VideoProfileNotSupported ) "media:/videos/4c318053-b6de-3e37-2397-ed8ed3e3e51d/stream?MediaSourceId=4c318053b6de3e372397ed8ed3e3e51d&AudioStreamIndex=1&SubtitleStreamIndex=-2&api_key=<token>&SubtitleMethod=Encode&RequireAvc=false&Tag=7d13fc5db512c26e7de84248a0221aa7&TranscodeReasons=VideoProfileNotSupported"
To clarify, I suspect the device is capable of playing the files, but because the docs say it's not, jellyfin isn't even trying.
This one uses Constrained Baseline
(expected to be main or high)
Stream #0:0[0x1](und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1920x960 [SAR 1:1 DAR 2:1], 2588 kb/s, 23.98 fps, 23.98 tbr, 90k tbn (default)
This one isn't using bt.709
colorspace and level 4.0
(not sure which is the reason for not playing)
Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1794x1080 [SAR 1:1 DAR 299:180], 1636 kb/s, 23.96 fps, 23.98 tbr, 90k tbn (default)
any updates to this
any updates to this
The issue is still present. There has been improvement though, before it would not even try to play but now it starts playing and still crashes out of the app. This is on version 2.0 build 7 of the Roku Jellyfin app.
It starts trying to play the 4K HDR MKV and then crashes after a bit maybe 10-15 seconds. If you use a bitrate limit then it plays fine but it downgrades the quality to SDR for some reason which defeats the point of trying to play HDR...
Software Versions
Describe the bug
Most of my 4K HDR video files fail to play on my roku tv through the jellyfin roku app. (they worked before on Emby but I don't remember if they ever worked on Jellyfin) Putting the same file on an external USB HDD and plugging it into the Roku TV works perfectly fine. If I force transcoding of the 4K HDR by lowing the bitrate limit, it then will play on the roku tv. My internet connection can handle the bitrate so that is not the issue, there is some issue with how the jellyfin client is telling the roku to play the file or maybe how the jellyfin client is asking the server to request the file and it is giving a wrong format.
The issue seems to be related to HDR because if I downgrade the HDR to SDR (for some reason adding subtitles disables HDR and forces it to transcode), then it plays in 4K SDR just fine.
Logs
I do not know how to get error logs for the roku app. The server logs / ffmpeg logs do not show any errors but snippets are pasted below:
HDR w/ transcoding audio (fails)
The same video as before but HDR to SDR due to subtitles (video plays without issue other than lacking HDR...)
A different file with AC3 audio that is supported by my roku tv: HDR DirectPlay with no transcoding (works)
Connection Information