Open yihaolee85 opened 3 months ago
As ASS subtitles are quite difficult to support natively, it would probably be best to use the device profile to indicate that they need to be burned.
Could you share the steps to do that?
Under settings I can see "Old" "Native" and "Expo" but I'm not exactly sure what they do.
I tried all 3 options but still get the error
They are mostly for testing, but the indicate to the server what codecs are supported by the client. So those are the profiles that will be tweaked going forward. Do you have transcoding turned off or on on the server? @yihaolee85
Transcoding is turned on, I can test later to check if the Jellyfin app is transcoding this same video/ASS combination as well.
Could you share what should be the typical device profile that should be selected?
Update, did some test with the same video/ASS combination:
Chrome browser on desktop: Transcoding as per logs (FFmpeg.Transcode log available as well):
[2024-08-20 09:38:57.065 +08:00] [INF] [53] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "user". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[2024-08-20 09:38:57.666 +08:00] [INF] [60] Jellyfin.Api.Controllers.DynamicHlsController: Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
[2024-08-20 09:38:57.668 +08:00] [INF] [60] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -probesize 1G -ss 00:15:00.000 -noaccurate_seek -init_hw_device vaapi=va:,kernel_driver=i915,driver=iHD -init_hw_device qsv=qs@va -filter_hw_device qs -hwaccel vaapi -hwaccel_output_format vaapi -noautorotate -i file:\"/video/movies/Apocalypse Now (1979) - Redux.mkv\" -noautoscale -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 h264_qsv -preset veryfast -look_ahead 0 -b:v 8463010 -maxrate 8463010 -bufsize 16926020 -g:v:0 72 -keyint_min:v:0 72 -vf \"setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,scale_vaapi=format=nv12:extra_hw_frames=24,hwmap=derive_device=qsv,format=qsv\" -codec:a:0 libfdk_aac -ac 2 -ab 256000 -ar 48000 -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type fmp4 -hls_fmp4_init_filename \"1099854d25a6555f2b643c65602c5c83-1.mp4\" -start_number 300 -hls_segment_filename \"/config/data/transcodes/1099854d25a6555f2b643c65602c5c83%d.mp4\" -hls_playlist_type vod -hls_list_size 0 -y \"/config/data/transcodes/1099854d25a6555f2b643c65602c5c83.m3u8\""
[2024-08-20 09:39:11.748 +08:00] [INF] [43] MediaBrowser.Controller.MediaEncoding.TranscodingJob: Stopping ffmpeg process with q command for "/config/data/transcodes/1099854d25a6555f2b643c65602c5c83.m3u8"
[2024-08-20 09:39:11.978 +08:00] [INF] [43] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: FFmpeg exited with code 0
[2024-08-20 09:39:11.979 +08:00] [INF] [43] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: Deleting partial stream file(s) "/config/data/transcodes/1099854d25a6555f2b643c65602c5c83.m3u8"
[2024-08-20 09:39:13.572 +08:00] [INF] [31] Emby.Server.Implementations.Session.SessionManager: Playback stopped reported by app "Jellyfin Web" "10.9.7" playing "Apocalypse Now". Stopped at "910262" ms
Jellyfin app on iPhone: Transcoding as per logs (FFmpeg.DirectStream log available as well):
[2024-08-20 09:41:55.772 +08:00] [INF] [22] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "user". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[2024-08-20 09:41:56.201 +08:00] [INF] [44] Jellyfin.Api.Controllers.DynamicHlsController: Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
[2024-08-20 09:41:56.202 +08:00] [INF] [44] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -probesize 1G -ss 00:14:46.176 -noaccurate_seek -fflags +genpts -i file:\"/video/movies/Apocalypse Now (1979) - Redux.mkv\" -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 copy -tag:v:0 hvc1 -bsf:v hevc_mp4toannexb -start_at_zero -codec:a:0 libfdk_aac -ac 6 -ab 640000 -ar 48000 -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 6 -hls_segment_type fmp4 -hls_fmp4_init_filename \"ba84f382fad6b849b6d62c15e14760d0-1.mp4\" -start_number 108 -hls_segment_filename \"/config/data/transcodes/ba84f382fad6b849b6d62c15e14760d0%d.mp4\" -hls_playlist_type vod -hls_list_size 0 -y \"/config/data/transcodes/ba84f382fad6b849b6d62c15e14760d0.m3u8\""
[2024-08-20 09:42:12.415 +08:00] [INF] [47] MediaBrowser.Controller.MediaEncoding.TranscodingJob: Stopping ffmpeg process with q command for "/config/data/transcodes/ba84f382fad6b849b6d62c15e14760d0.m3u8"
[2024-08-20 09:42:12.520 +08:00] [INF] [47] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: FFmpeg exited with code 0
[2024-08-20 09:42:12.520 +08:00] [INF] [47] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: Deleting partial stream file(s) "/config/data/transcodes/ba84f382fad6b849b6d62c15e14760d0.m3u8"
[2024-08-20 09:42:14.056 +08:00] [INF] [54] Emby.Server.Implementations.Session.SessionManager: Playback stopped reported by app "Jellyfin Mobile (iOS)" "1.5.0" playing "Apocalypse Now". Stopped at "919391" ms
Swiftfin app on iPhone: Unknown? logs:
[2024-08-20 09:49:56.566 +08:00] [INF] [47] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "user". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[2024-08-20 09:50:14.426 +08:00] [INF] [22] Emby.Server.Implementations.Session.SessionManager: Playback stopped reported by app "Swiftfin iOS" "1.2" playing "Apocalypse Now". Stopped at "9586000" ms
Another 3rd party app: same outcome as Swiftfin logs:
[2024-08-20 10:00:51.353 +08:00] [INF] [51] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "user". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[2024-08-20 10:01:25.532 +08:00] [INF] [43] Emby.Server.Implementations.Session.SessionManager: Playback stopped reported by app "SenPlayer" "4.1.0" playing "Apocalypse Now". Stopped at "9607000" ms
I hope this was helpful
Forgot to add: Streamyfin logs when I tried playing it until it gave an error message:
[2024-08-20 10:06:39.668 +08:00] [INF] [34] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "user". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[2024-08-20 10:06:42.304 +08:00] [INF] [53] Jellyfin.Api.Controllers.DynamicHlsController: Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
[2024-08-20 10:06:42.344 +08:00] [INF] [53] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -probesize 1G -init_hw_device vaapi=va:,kernel_driver=i915,driver=iHD -init_hw_device qsv=qs@va -filter_hw_device qs -hwaccel vaapi -hwaccel_output_format vaapi -noautorotate -i file:\"/video/movies/Apocalypse Now (1979) - Redux.mkv\" -noautoscale -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:0 -codec:v:0 h264_qsv -preset veryfast -look_ahead 0 -b:v 2616000 -maxrate 2616000 -bufsize 5232000 -g:v:0 72 -keyint_min:v:0 72 -filter_complex \"alphasrc=s=960x400:r=23.976025:start='0',format=bgra,subtitles=f='/video/movies/Apocalypse Now (1979) - Redux.mkv':si=8:alpha=1:sub2video=1:fontsdir='/config/cache/attachments/c094ae3094892196bfc45a3542cf3581',hwupload=derive_device=qsv:extra_hw_frames=64[sub];[0:0]setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,scale_vaapi=w=960:h=400:format=nv12:extra_hw_frames=24,hwmap=derive_device=qsv,format=qsv[main];[main][sub]overlay_qsv=eof_action=pass:repeatlast=0:w=960:h=400\" -start_at_zero -codec:a:0 libfdk_aac -ac 2 -ab 256000 -ar 48000 -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type fmp4 -hls_fmp4_init_filename \"8fc747489c4538b936221d255520fb05-1.mp4\" -start_number 0 -hls_segment_filename \"/config/data/transcodes/8fc747489c4538b936221d255520fb05%d.mp4\" -hls_playlist_type vod -hls_list_size 0 -y \"/config/data/transcodes/8fc747489c4538b936221d255520fb05.m3u8\""
There was a FFmpeg.Transcode log that was also created. Let me know if this is needed?
Describe the bug When trying to play video file with subtitles of the type ASS, the player gives an error dialog saying "Cannot play this file". Using the official Jellyfin app and the Swiftfin app, the video plays with the subtitles without any issue.
To Reproduce Steps to reproduce the behavior:
Screenshot attached
Smartphone (please complete the following information):