Jellyfin Forum
On IOS, the DDP+ (EAC3) audio codec is always transcoded. - Printable Version

+- Jellyfin Forum (https://forum.jellyfin.org)
+-- Forum: Support (https://forum.jellyfin.org/f-support)
+--- Forum: Troubleshooting (https://forum.jellyfin.org/f-troubleshooting)
+--- Thread: On IOS, the DDP+ (EAC3) audio codec is always transcoded. (/t-on-ios-the-ddp-eac3-audio-codec-is-always-transcoded)



On IOS, the DDP+ (EAC3) audio codec is always transcoded. - shoooot - 2024-09-25

As far as I know, even on IOS, the EAC3 codec is supported for native playback on the operating system.

However, for some reason, the EAC3 codec is transcoded to AAC on IOS.

I had the same issue on Android, but changing the client settings from web player to integrated player solved it.

However, IOS does not have the same option.

Can you tell me why the transcoding is happening or how I can prevent it?



Code:
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (eac3 (native) -> aac (libfdk_aac))
Press [q] to stop, [?] for help
[hls @ 0x5eaf5d139780] Opening '/var/cache/jellyfin/transcodes/0fb55de2680ca51ed487762ac6b754c1-1.mp4' for writing
[hls @ 0x5eaf5d139780] Stream HEVC is not hvc1, you should use tag:v hvc1 to set it.
Output #0, hls, to '/var/cache/jellyfin/transcodes/0fb55de2680ca51ed487762ac6b754c1.m3u8':
  Metadata:
    encoder        : Lavf60.3.100
  Stream #0:0: Video: hevc (Main 10) (dvh1 / 0x31687664), yuv420p10le(tv, bt2020nc/bt2020/smpte2084), 3840x1606 [SAR 1:1 DAR 1920:803], q=2-31, 24 fps, 24 tbr, 12288 tbn (default) (original) (forced)
    Side data:
      DOVI configuration record: version: 1.0, profile: 8, level: 6, rpu flag: 1, el flag: 0, bl flag: 1, compatibility id: 1
  Stream #0:1: Audio: aac, 48000 Hz, 5.1, s16, 640 kb/s (default) (original) (forced)
    Metadata:
      encoder        : Lavc60.3.100 libfdk_aac
frame=    0 fps=0.0 q=-1.0 size=      0kB time=-00:00:00.04 bitrate=  -0.0kbits/s speed=N/A   
frame=  119 fps=0.0 q=-1.0 size=N/A time=00:00:00.19 bitrate=N/A speed=0.377x   
[hls @ 0x5eaf5d139780] Opening '/var/cache/jellyfin/transcodes/0fb55de2680ca51ed487762ac6b754c10.mp4' for writing



Code:
[2024-09-25 17:28:33.161 +09:00] [INF] User policy for "user_name". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[2024-09-25 17:28:34.181 +09:00] [INF] Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
[2024-09-25 17:28:34.186 +09:00] [INF] "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -probesize 1G -fflags +genpts  -i file:\"video_path\" -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 copy -tag:v:0 dvh1 -strict -2 -bsf:v hevc_mp4toannexb -start_at_zero -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 6 -hls_segment_type fmp4 -hls_fmp4_init_filename \"0fb55de2680ca51ed487762ac6b754c1-1.mp4\" -start_number 0 -hls_segment_filename \"/var/cache/jellyfin/transcodes/0fb55de2680ca51ed487762ac6b754c1%d.mp4\" -hls_playlist_type vod -hls_list_size 0 -y \"/var/cache/jellyfin/transcodes/0fb55de2680ca51ed487762ac6b754c1.m3u8\""
[2024-09-25 17:29:09.599 +09:00] [WRN] WS "118.235.11.35" error receiving data: "The remote party closed the WebSocket connection without completing the close handshake."
[2024-09-25 17:29:09.613 +09:00] [INF] WS "118.235.11.35" closed
[2024-09-25 17:29:22.465 +09:00] [INF] Stopping ffmpeg process with q command for "/var/cache/jellyfin/transcodes/0fb55de2680ca51ed487762ac6b754c1.m3u8"
[2024-09-25 17:29:22.875 +09:00] [INF] FFmpeg exited with code 0
[2024-09-25 17:29:22.900 +09:00] [INF] Deleting partial stream file(s) "/var/cache/jellyfin/transcodes/0fb55de2680ca51ed487762ac6b754c1.m3u8"
[2024-09-25 17:29:24.634 +09:00] [INF] Playback stopped reported by app "Jellyfin Mobile (iOS)" "1.5.0" playing "movie_name". Stopped at "13941" ms
[2024-09-25 17:29:27.264 +09:00] [INF] User policy for "user_name". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[2024-09-25 17:29:27.708 +09:00] [INF] Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
[2024-09-25 17:29:27.713 +09:00] [INF] "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -probesize 1G -fflags +genpts  -i file:\"video_path\" -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 copy -bsf:v h264_mp4toannexb -start_at_zero -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 6 -hls_segment_type fmp4 -hls_fmp4_init_filename \"c53f5f1e9ce0bbca2914bc3695bb756f-1.mp4\" -start_number 0 -hls_segment_filename \"/var/cache/jellyfin/transcodes/c53f5f1e9ce0bbca2914bc3695bb756f%d.mp4\" -hls_playlist_type vod -hls_list_size 0 -y \"/var/cache/jellyfin/transcodes/c53f5f1e9ce0bbca2914bc3695bb756f.m3u8\""
[2024-09-25 17:29:30.974 +09:00] [INF] Stopping ffmpeg process with q command for "/var/cache/jellyfin/transcodes/c53f5f1e9ce0bbca2914bc3695bb756f.m3u8"
[2024-09-25 17:29:31.083 +09:00] [INF] FFmpeg exited with code 0
[2024-09-25 17:29:31.109 +09:00] [INF] Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
[2024-09-25 17:29:31.111 +09:00] [INF] "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -probesize 1G -ss 00:47:31.348 -noaccurate_seek -fflags +genpts  -i file:\"video_path\" -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 copy -bsf:v h264_mp4toannexb -start_at_zero -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 6 -hls_segment_type fmp4 -hls_fmp4_init_filename \"c53f5f1e9ce0bbca2914bc3695bb756f-1.mp4\" -start_number 475 -hls_segment_filename \"/var/cache/jellyfin/transcodes/c53f5f1e9ce0bbca2914bc3695bb756f%d.mp4\" -hls_playlist_type vod -hls_list_size 0 -y \"/var/cache/jellyfin/transcodes/c53f5f1e9ce0bbca2914bc3695bb756f.m3u8\""
[2024-09-25 17:30:40.407 +09:00] [INF] WS "118.235.11.35" request
[2024-09-25 17:31:33.592 +09:00] [INF] FFmpeg exited with code 0
[2024-09-25 17:39:07.808 +09:00] [INF] Deleting partial stream file(s) "/var/cache/jellyfin/transcodes/c53f5f1e9ce0bbca2914bc3695bb756f.m3u8"
[2024-09-25 17:39:09.479 +09:00] [INF] Playback stopped reported by app "Jellyfin Mobile (iOS)" "1.5.0" playing "episode 6". Stopped at "3419024" ms
[2024-09-25 17:39:17.576 +09:00] [INF] User policy for "user_name". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[2024-09-25 17:39:18.461 +09:00] [INF] Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
[2024-09-25 17:39:18.478 +09:00] [INF] "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -probesize 1G -fflags +genpts  -i file:\"video_path\" -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 copy -bsf:v h264_mp4toannexb -start_at_zero -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 6 -hls_segment_type fmp4 -hls_fmp4_init_filename \"a7103879b1cb241499c562362643e9bf-1.mp4\" -start_number 0 -hls_segment_filename \"/var/cache/jellyfin/transcodes/a7103879b1cb241499c562362643e9bf%d.mp4\" -hls_playlist_type vod -hls_list_size 0 -y \"/var/cache/jellyfin/transcodes/a7103879b1cb241499c562362643e9bf.m3u8\""
[2024-09-25 17:44:05.686 +09:00] [INF] Playback stopped reported by app "Jellyfin Web" "10.9.10" playing "episode 7". Stopped at "3515922" ms



RE: On IOS, the DDP+ (EAC3) audio codec is always transcoded. - gnattu - 2024-09-25

Our iOS app profile does not declare it as supported, if you use safari you will get direct play.

My guess is that our iOS app supports some ridiculously ancient devices than Apple want to support.


RE: On IOS, the DDP+ (EAC3) audio codec is always transcoded. - shoooot - 2024-09-25

(2024-09-25, 10:16 AM)gnattu Wrote: Our iOS app profile does not declare it as supported, if you use safari you will get direct play.

My guess is that our iOS app supports some ridiculously ancient devices than Apple want to support.

If so, which clients are fully supported?

I have encouraged my jellyfin users to install and use a dedicated client whenever possible.

In all cases, if a web browser is the best option, you'll need to explain that again to your users.

Currently I'm using it on WINDOWS, LG TV, ANDROID TV, ANDROID, IOS.


RE: On IOS, the DDP+ (EAC3) audio codec is always transcoded. - shoooot - 2024-09-25

I also noticed that the SMI subtitle format does not load when using the Android integrated player, is this also due to the Android app not being fully supported?

The webplayer does too much transcoding.