jellyfin / jellyfin-kodi

Jellyfin Plugin for Kodi
https://jellyfin.org
GNU General Public License v3.0
860 stars 113 forks source link

Subtitles are no longer burned #947

Open jacroe opened 5 days ago

jacroe commented 5 days ago

My Jellyfin server is 10.10.3 via LinuxServer's Docker image. This is occurring on Jellyfin for Kodi versions 1.0.4, 1.0.5, and 1.0.6.

When "Force transcode" and "Allow burned subtitles" are enabled and an external SRT is selected, the streamed video does not have the subtitles burned into them. Looking at the Kodi logs, the to-be-streamed URL that's generated looks similar to:

http://machine:8096/videos/2c7767db-a49d-0eaa-cfc5-240597a0167c/hls1/main/0.ts?DeviceId=Unknown%20Device%20id&MediaSourceId=2c7767dba49d0eaacfc5240597a0167c&VideoCodec=hevc,h264,mpeg4&AudioCodec=copy&AudioSampleRate=48000&MaxFramerate=60&PlaySessionId=XXX&api_key=XXX&TranscodingMaxAudioChannels=6&RequireAvc=false&EnableAudioVbrEncoding=true&Tag=76db094b0ce66b8c64cf50b689118315&vp9-level=-99&vp9-videobitdepth=8&vp9-profile=profile0&vp9-audiochannels=2&hevc-profile=main,main10&h264-videobitdepth=8&TranscodeReasons=DirectPlayError&AudioStreamIndex=2&SubtitleStreamIndex=0&VideoBitrate=8744000&AudioBitrate=256000&maxWidth=1360&maxHeight=768&runtimeTicks=0&actualSegmentLengthTicks=30000000

And the FFMPEG command generated on the Jellyfin server looks like:

/usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -probesize 1G -f matroska,webm -init_hw_device cuda=cu:0 -filter_hw_device cu -hwaccel cuda -hwaccel_output_format cuda -noautorotate -hwaccel_flags +unsafe_output -threads 1 -i file:"/data/youtube/video.mkv" -noautoscale -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -codec:v:0 hevc_nvenc -tag:v:0 hvc1 -preset p1 -b:v 5803164 -maxrate 5803164 -bufsize 11606328 -profile:v:0 main -g:v:0 180 -keyint_min:v:0 180 -vf "setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,scale_cuda=w=1360:h=764:format=yuv420p" -start_at_zero -codec:a:0 copy -strict -2 -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type mpegts -start_number 0 -hls_segment_filename "/config/data/transcodes/ac32445dd15792a9065aee934e1a670a%d.ts" -hls_playlist_type vod -hls_list_size 0 -y "/config/data/transcodes/ac32445dd15792a9065aee934e1a670a.m3u8"

Playing the same video via the Jellyfin web UI, the subtitles get burned in without issue. Looking at the generated URL, I noticed that SubtitleMethod=Encode was one of the URL parameters missing. If I append it to the end of the above URL and open it in VLC, I get a short video that has the subtitles burned in. And the new FFMPEG command generated looks like:

/usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -probesize 1G -f matroska,webm -init_hw_device cuda=cu:0 -filter_hw_device cu -hwaccel cuda -hwaccel_output_format cuda -noautorotate -hwaccel_flags +unsafe_output -threads 1 -i file:"/data/youtube/video.mkv" -noautoscale -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:0 -codec:v:0 hevc_nvenc -tag:v:0 hvc1 -preset p1 -b:v 5803164 -maxrate 5803164 -bufsize 11606328 -profile:v:0 main -g:v:0 180 -keyint_min:v:0 180 -filter_complex "alphasrc=s=1360x764:r=10:start='0',format=yuva420p,subtitles=f='/data/youtube/video.eng.srt':charenc=utf-8:alpha=1:sub2video=1:fontsdir='/config/cache/attachments/2c7767dba49d0eaacfc5240597a0167c',hwupload=derive_device=cuda[sub];[0:0]setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,scale_cuda=w=1360:h=764:format=yuv420p[main];[main][sub]overlay_cuda=eof_action=pass:repeatlast=0" -start_at_zero -codec:a:0 copy -strict -2 -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type mpegts -start_number 0 -hls_segment_filename "/config/data/transcodes/6f9e7778c781a775d9d02640523fce85%d.ts" -hls_playlist_type vod -hls_list_size 0 -y "/config/data/transcodes/6f9e7778c781a775d9d02640523fce85.m3u8"

If I can provide any more details, please let me know.

mjmclaughlin92 commented 1 day ago

It looks like this is happening for me too with embedded PGS subtitles - definitely let me know if there's any other info I can try to send on over or anything too!