• Login
  • Register
  • Login Register
    Login
    Username/Email:
    Password:
    Or login with a social network below
  • Forum
  • Website
  • GitHub
  • Status
  • Translation
  • Features
  • Team
  • Rules
  • Help
  • Feeds
User Links
  • Login
  • Register
  • Login Register
    Login
    Username/Email:
    Password:
    Or login with a social network below

    Useful Links Forum Website GitHub Status Translation Features Team Rules Help Feeds
    Jellyfin Forum Support Troubleshooting SOLVED: Why transcoding HVEC on iOS app?

     
    • 0 Vote(s) - 0 Average

    SOLVED: Why transcoding HVEC on iOS app?

    How to avoid transcoding / should it take this long?
    Neat-Initiative-6965
    Offline

    Junior Member

    Posts: 3
    Threads: 1
    Joined: 2025 Mar
    Reputation: 0
    Country:Belgium
    #1
    2025-03-22, 08:04 PM
    Hi, I'm new to Jellyfin and media hosting in general. 

    One of the first videos I downloaded is a 20GB 4K HVEC file.  I experience very slow buffering playing it through the Jellyfin iOS app (iPhone 11). From the dashboard, I gather the video is being transcoded for the following reason:

    Quote:"The media is being converted into a format that is compatible with the device that is playing the media.
    Framerate: 14fps
    5.3 Mbps MP4 H264 EAC3
    Reason for transcoding
    The video's bitrate exceeds the limit"

    1) Is there a way to avoid transcoding here? I was under the impression that iOS could play HVEC files directly. Is the file simply too large?
    2) Is it normal that this transcoding process takes very long, making the video unplayable? I'm using an Intel i3 8100 (on a Fujitsu/Kontron D3644-b motherboard) which should be equipped with QuickSync. 

    For completeness' sake I attach a link to Jellyfin and ffmpeg logs.

    Logs Jellyfin
    Code:
    [2025-03-22 20:31:41.514 +01:00] [INF] [26] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "Timothy". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
    [2025-03-22 20:31:41.696 +01:00] [INF] [21] Emby.Server.Implementations.Session.SessionManager: Playback stopped reported by app "Swiftfin iOS" "1.2" playing "A Complete Unknown". Stopped at "0" ms
    [2025-03-22 20:31:45.817 +01:00] [INF] [28] Jellyfin.Api.Controllers.DynamicHlsController: Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
    [2025-03-22 20:31:45.822 +01:00] [INF] [28] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -probesize 1G  -i file:\"/media/library/movies/A Complete Unknown (2024)/A.Complete.Unknown.2024.REPACK.2160p.AMZN.WEB-DL.DDP5.1.HDR.H.265-APEX.mkv\" -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 libx264 -preset veryfast -crf 23 -maxrate 4550730 -bufsize 9101460 -x264opts:0 subme=0:me_range=16:rc_lookahead=10:me=hex:open_gop=0 -force_key_frames:0 \"expr:gte(t,n_forced*3)\" -sc_threshold:v:0 0 -vf \"setparams=color_primaries=bt2020:color_trc=smpte2084:colorspace=bt2020nc,scale=trunc(min(max(iw\,ih*a)\,1280)/2)*2:trunc(ow/a/2)*2,tonemapx=tonemap=bt2390:desat=0:peak=100:t=bt709:m=bt709:p=bt709:format=yuv420p\" -codec:a:0 copy -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 \"7cc0cb58dfa3ed98c4c5c6f1bd1b315f-1.mp4\" -start_number 0 -hls_segment_filename \"/cache/transcodes/7cc0cb58dfa3ed98c4c5c6f1bd1b315f%d.mp4\" -hls_playlist_type vod -hls_list_size 0 -y \"/cache/transcodes/7cc0cb58dfa3ed98c4c5c6f1bd1b315f.m3u8\""
    [2025-03-22 20:32:20.302 +01:00] [INF] [26] MediaBrowser.Controller.MediaEncoding.TranscodingJob: Stopping ffmpeg process with q command for "/cache/transcodes/7cc0cb58dfa3ed98c4c5c6f1bd1b315f.m3u8"
    [2025-03-22 20:32:22.148 +01:00] [INF] [26] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: FFmpeg exited with code 0
    [2025-03-22 20:32:22.151 +01:00] [INF] [26] Jellyfin.Api.Controllers.DynamicHlsController: Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
    [2025-03-22 20:32:22.152 +01:00] [INF] [26] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -probesize 1G -ss 00:41:00.000 -noaccurate_seek  -i file:\"/media/library/movies/A Complete Unknown (2024)/A.Complete.Unknown.2024.REPACK.2160p.AMZN.WEB-DL.DDP5.1.HDR.H.265-APEX.mkv\" -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 libx264 -preset veryfast -crf 23 -maxrate 4550730 -bufsize 9101460 -x264opts:0 subme=0:me_range=16:rc_lookahead=10:me=hex:open_gop=0 -force_key_frames:0 \"expr:gte(t,n_forced*3)\" -sc_threshold:v:0 0 -vf \"setparams=color_primaries=bt2020:color_trc=smpte2084:colorspace=bt2020nc,scale=trunc(min(max(iw\,ih*a)\,1280)/2)*2:trunc(ow/a/2)*2,tonemapx=tonemap=bt2390:desat=0:peak=100:t=bt709:m=bt709:p=bt709:format=yuv420p\" -codec:a:0 copy -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 \"7cc0cb58dfa3ed98c4c5c6f1bd1b315f-1.mp4\" -start_number 820 -hls_segment_filename \"/cache/transcodes/7cc0cb58dfa3ed98c4c5c6f1bd1b315f%d.mp4\" -hls_playlist_type vod -hls_list_size 0 -y \"/cache/transcodes/7cc0cb58dfa3ed98c4c5c6f1bd1b315f.m3u8\""
    [2025-03-22 20:34:10.418 +01:00] [INF] [55] Emby.Server.Implementations.Session.SessionWebSocketListener: Sending ForceKeepAlive message to 1 inactive WebSockets.
    [2025-03-22 20:37:58.420 +01:00] [INF] [10] Emby.Server.Implementations.Session.SessionWebSocketListener: Sending ForceKeepAlive message to 1 inactive WebSockets.

    Logs ffmpeg
    Go to solution
    Neat-Initiative-6965
    Offline

    Junior Member

    Posts: 3
    Threads: 1
    Joined: 2025 Mar
    Reputation: 0
    Country:Belgium
    #2
    2025-03-22, 08:15 PM
    Upon inspection, the same occurs when I open this video in Jellyfin web in macOS Safari.
    TheDreadPirate
    Offline

    Community Moderator

    Posts: 15,374
    Threads: 10
    Joined: 2023 Jun
    Reputation: 460
    Country:United States
    #3
    2025-03-23, 12:30 AM
    You set a bit rate limit either globally for remote streams or you set a bit rate limit on your client. The other possibility is that the auto connection speed detection determined that your connection was too slow.

    Code:
    The video's bitrate exceeds the limit"
    Jellyfin 10.10.7 (Docker)
    Ubuntu 24.04.2 LTS w/HWE
    Intel i3 12100
    Intel Arc A380
    OS drive - SK Hynix P41 1TB
    Storage
        4x WD Red Pro 6TB CMR in RAIDZ1
    [Image: GitHub%20Sponsors-grey?logo=github]
    Neat-Initiative-6965
    Offline

    Junior Member

    Posts: 3
    Threads: 1
    Joined: 2025 Mar
    Reputation: 0
    Country:Belgium
    #4
    2025-03-23, 10:04 AM
    (2025-03-23, 12:30 AM)TheDreadPirate Wrote: You set a bit rate limit either globally for remote streams or you set a bit rate limit on your client.  The other possibility is that the auto connection speed detection determined that your connection was too slow.

    Code:
    The video's bitrate exceeds the limit"

    Thanks! 

    As to my first question (for fellow noobs), transcoding can be disabled by allowing a high enough bitrate on the client device (and making sure no limit has been set for all client devices)
    • Client side: in the Dashboard > Settings > Playback > Internet Quality > 120 Mbps
    • Globally: in the Dashboard > Streaming > leave empty

    As to my second question, transcoding was very slow because I had to enable Intel Quicksync (Hardware Acceleration) in the Dashboard > Playback > Transcoding > Intel QuickSync
    « Next Oldest | Next Newest »

    Users browsing this thread: 1 Guest(s)


    • View a Printable Version
    • Subscribe to this thread
    Forum Jump:

    Home · Team · Help · Contact
    © Designed by D&D - Powered by MyBB
    L


    Jellyfin

    The Free Software Media System

    Linear Mode
    Threaded Mode