[Issue]: 1080p video repeats sections on Roku Express and iPad #4541

Closed
opened 2026-02-07 00:55:22 +03:00 by OVERLORD · 1 comment
Owner

Originally created by @i-am-the-arm on GitHub (Jan 20, 2023).

Software Versions
Jellyfin Server Version: 10.8.3
Roku Client Version: 3700x - Roku Express v11.5.0 build 4312-28

Describe the bug
Every 15 minutes or so, 1080p videos will skip back 3-4 minutes when playing on my Roku devices and older iPad. The specific issue I was dealing with was on the model/version shown above and the video was 1080p HEVC SDR (I don't have the iPad model on hand). This happens frequently but so sporadic that I'm unable to reproduce. Last night, I was watching a video and every n number of minutes, the video would skip back several minutes; there was no loading or anything. As a matter of fact, it happens so seamlessly that sometimes I don't realize that it's actually skipped; it looks just like a quick camera/scene change. I don't even think the progress bar changed but the video itself jumped backwards. After getting about 75% of the way through the video, it didn't happen again.

These devices are a little farther from my router so I don't know if a less-than-ideal connection could cause the issue or not. I'm getting about 3-5 Mbps down where these are located.

Has anyone reported an issue like this? Is there anything I can do to help reproduce or diagnose?

How To Reproduce
Haven't quite figured this out yet. Very sporadic. Doesn't always happen at the same time or interval but typically happens with 1080p files.

Jellyfin Version

10.8.0

if other:

No response

Environment

- OS: Linux
- Virtualization: Docker
- Clients: iPad/Roku
- Browser: N/A
- FFmpeg Version: 5.0.1-Jellyfin
- Playback Method: Direct Play
- Hardware Acceleration: false
- Plugins:
- Reverse Proxy: None
- Base URL: None
- Networking: Host
- Storage: Local

Jellyfin logs

I'm cherry-picking what I think might be useful logs during the time of viewing

[2023-01-19 17:48:22.880 -06:00] [WRN] [100] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from "http://________/main/363.ts?DeviceId=xxx&MediaSourceId=xxx&VideoCodec=h264,vp9&AudioCodec=aac&AudioStreamIndex=2&VideoBitrate=139616000&AudioBitrate=384000&AudioSampleRate=48000&MaxFramerate=23.976025&PlaySessionId=xxx&api_key=xxx&SubtitleMethod=Encode&TranscodingMaxAudioChannels=2&RequireAvc=false&Tag=xxx&SegmentContainer=ts&MinSegments=1&BreakOnNonKeyFrames=True&hevc-level=120&hevc-videobitdepth=10&hevc-profile=main10&hevc-audiochannels=6&aac-profile=lc&h264-profile=high,main&h264-level=41&vp9-rangetype=SDR&aac-audiochannels=2&TranscodeReasons=VideoCodecNotSupported&runtimeTicks=10890000000&actualSegmentLengthTicks=30000000" to "xxx.xxx.xxx.xxx" in 0:00:03.0988542 with Status Code 500
[2023-01-19 17:48:22.894 -06:00] [ERR] [102] Jellyfin.Server.Middleware.ExceptionMiddleware: Error processing request: "A task was canceled". URL "GET" "/videos/xxx/hls1/main/363.ts".

[2023-01-19 18:41:55.553 -06:00] [INF] [36] Jellyfin.Api.Helpers.TranscodingJobHelper: Stopping ffmpeg process with q command for "/config/transcodes/xxx.m3u8"
[2023-01-19 18:41:55.654 -06:00] [INF] [36] Jellyfin.Api.Helpers.TranscodingJobHelper: FFmpeg exited with code 0
[2023-01-19 18:41:55.655 -06:00] [INF] [36] Jellyfin.Api.Controllers.DynamicHlsController: Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
[2023-01-19 18:41:55.656 -06:00] [INF] [36] Jellyfin.Api.Helpers.TranscodingJobHelper: "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -ss 00:35:09.000 -f mov,mp4,m4a,3gp,3g2,mj2 -autorotate 0 -i file:\"/_______/____.mp4\" -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 6670030 -bufsize 13340060 -profile:v:0 high -level 41 -x264opts:0 subme=0:me_range=4:rc_lookahead=10:me=dia:no_chroma_me:8x8dct=0:partitions=none -force_key_frames:0 \"expr:gte(t,2109+n_forced*3)\" -sc_threshold:v:0 0 -vf \"setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,scale=trunc(min(max(iw\,ih*a)\,min(1920\,1040*a))/2)*2:trunc(min(max(iw/a\,ih)\,min(1920/a\,1040))/2)*2,format=yuv420p\" -codec:a:0 libfdk_aac -ac 2 -ab 384000 -ar 48000 -af \"volume=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 703 -hls_segment_filename \"/config/transcodes/xxx%d.ts\" -hls_playlist_type vod -hls_list_size 0 -y \"/config/transcodes/xxx.m3u8\""
[2023-01-19 18:41:55.660 -06:00] [INF] [10] Jellyfin.Api.Helpers.TranscodingJobHelper: FFmpeg exited with code 0

FFmpeg logs

Lots of FFmpeg-Transcode-xxxx.log files but none seem to have anything useful in them.

ffmpeg version 5.0.1-Jellyfin Copyright (c) 2000-2022 the FFmpeg developers
  built with gcc 10 (Debian 10.2.1-6)
  configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-libs=-lfftw3f --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-ptx-compression --disable-shared --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto --enable-gpl --enable-version3 --enable-static --enable-gmp --enable-gnutls --enable-chromaprint --enable-libdrm --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libdav1d --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=amd64 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-opencl --enable-vaapi --enable-amf --enable-libmfx --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
  libavutil      57. 17.100 / 57. 17.100
  libavcodec     59. 18.100 / 59. 18.100
  libavformat    59. 16.100 / 59. 16.100
  libavdevice    59.  4.100 / 59.  4.100
  libavfilter     8. 24.100 /  8. 24.100
  libswscale      6.  4.100 /  6.  4.100
  libswresample   4.  3.100 /  4.  3.100
  libpostproc    56.  3.100 / 56.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'file:_________________________.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2mp41
    encoder         : Lavf59.8.100
  Duration: 01:40:20.27, start: 0.000000, bitrate: 2231 kb/s
  Stream #0:0[0x1](und): Video: hevc (Main 10) (hev1 / 0x31766568), yuv420p10le(tv), 1920x1040 [SAR 1:1 DAR 24:13], 2001 kb/s, 23.98 fps, 23.98 tbr, 24k tbn (default)
    Metadata:
      handler_name    : VideoHandler
      vendor_id       : [0][0][0][0]
  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 224 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
      vendor_id       : [0][0][0][0]
Stream mapping:
  Stream #0:0 -> #0:0 (hevc (native) -> h264 (libx264))
  Stream #0:1 -> #0:1 (aac (native) -> aac (libfdk_aac))
Press [q] to stop, [?] for help

Please attach any browser or client logs here

No response

Please attach any screenshots here

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct
Originally created by @i-am-the-arm on GitHub (Jan 20, 2023). **Software Versions** Jellyfin Server Version: 10.8.3 Roku Client Version: 3700x - Roku Express v11.5.0 build 4312-28 **Describe the bug** Every 15 minutes or so, 1080p videos will skip back 3-4 minutes when playing on my Roku devices and older iPad. The specific issue I was dealing with was on the model/version shown above and the video was 1080p HEVC SDR (I don't have the iPad model on hand). This happens frequently but so sporadic that I'm unable to reproduce. Last night, I was watching a video and every _n_ number of minutes, the video would skip back several minutes; there was no loading or anything. As a matter of fact, it happens so seamlessly that sometimes I don't realize that it's actually skipped; it looks just like a quick camera/scene change. I don't even think the progress bar changed but the video itself jumped backwards. After getting about 75% of the way through the video, it didn't happen again. These devices are a little farther from my router so I don't know if a less-than-ideal connection could cause the issue or not. I'm getting about 3-5 Mbps down where these are located. Has anyone reported an issue like this? Is there anything I can do to help reproduce or diagnose? **How To Reproduce** Haven't quite figured this out yet. Very sporadic. Doesn't always happen at the same time or interval but typically happens with 1080p files. ### Jellyfin Version 10.8.0 ### if other: _No response_ ### Environment ```markdown - OS: Linux - Virtualization: Docker - Clients: iPad/Roku - Browser: N/A - FFmpeg Version: 5.0.1-Jellyfin - Playback Method: Direct Play - Hardware Acceleration: false - Plugins: - Reverse Proxy: None - Base URL: None - Networking: Host - Storage: Local ``` ### Jellyfin logs ```shell I'm cherry-picking what I think might be useful logs during the time of viewing [2023-01-19 17:48:22.880 -06:00] [WRN] [100] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from "http://________/main/363.ts?DeviceId=xxx&MediaSourceId=xxx&VideoCodec=h264,vp9&AudioCodec=aac&AudioStreamIndex=2&VideoBitrate=139616000&AudioBitrate=384000&AudioSampleRate=48000&MaxFramerate=23.976025&PlaySessionId=xxx&api_key=xxx&SubtitleMethod=Encode&TranscodingMaxAudioChannels=2&RequireAvc=false&Tag=xxx&SegmentContainer=ts&MinSegments=1&BreakOnNonKeyFrames=True&hevc-level=120&hevc-videobitdepth=10&hevc-profile=main10&hevc-audiochannels=6&aac-profile=lc&h264-profile=high,main&h264-level=41&vp9-rangetype=SDR&aac-audiochannels=2&TranscodeReasons=VideoCodecNotSupported&runtimeTicks=10890000000&actualSegmentLengthTicks=30000000" to "xxx.xxx.xxx.xxx" in 0:00:03.0988542 with Status Code 500 [2023-01-19 17:48:22.894 -06:00] [ERR] [102] Jellyfin.Server.Middleware.ExceptionMiddleware: Error processing request: "A task was canceled". URL "GET" "/videos/xxx/hls1/main/363.ts". [2023-01-19 18:41:55.553 -06:00] [INF] [36] Jellyfin.Api.Helpers.TranscodingJobHelper: Stopping ffmpeg process with q command for "/config/transcodes/xxx.m3u8" [2023-01-19 18:41:55.654 -06:00] [INF] [36] Jellyfin.Api.Helpers.TranscodingJobHelper: FFmpeg exited with code 0 [2023-01-19 18:41:55.655 -06:00] [INF] [36] Jellyfin.Api.Controllers.DynamicHlsController: Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request [2023-01-19 18:41:55.656 -06:00] [INF] [36] Jellyfin.Api.Helpers.TranscodingJobHelper: "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -ss 00:35:09.000 -f mov,mp4,m4a,3gp,3g2,mj2 -autorotate 0 -i file:\"/_______/____.mp4\" -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 6670030 -bufsize 13340060 -profile:v:0 high -level 41 -x264opts:0 subme=0:me_range=4:rc_lookahead=10:me=dia:no_chroma_me:8x8dct=0:partitions=none -force_key_frames:0 \"expr:gte(t,2109+n_forced*3)\" -sc_threshold:v:0 0 -vf \"setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,scale=trunc(min(max(iw\,ih*a)\,min(1920\,1040*a))/2)*2:trunc(min(max(iw/a\,ih)\,min(1920/a\,1040))/2)*2,format=yuv420p\" -codec:a:0 libfdk_aac -ac 2 -ab 384000 -ar 48000 -af \"volume=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 703 -hls_segment_filename \"/config/transcodes/xxx%d.ts\" -hls_playlist_type vod -hls_list_size 0 -y \"/config/transcodes/xxx.m3u8\"" [2023-01-19 18:41:55.660 -06:00] [INF] [10] Jellyfin.Api.Helpers.TranscodingJobHelper: FFmpeg exited with code 0 ``` ### FFmpeg logs ```shell Lots of FFmpeg-Transcode-xxxx.log files but none seem to have anything useful in them. ffmpeg version 5.0.1-Jellyfin Copyright (c) 2000-2022 the FFmpeg developers built with gcc 10 (Debian 10.2.1-6) configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-libs=-lfftw3f --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-ptx-compression --disable-shared --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto --enable-gpl --enable-version3 --enable-static --enable-gmp --enable-gnutls --enable-chromaprint --enable-libdrm --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libdav1d --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=amd64 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-opencl --enable-vaapi --enable-amf --enable-libmfx --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc libavutil 57. 17.100 / 57. 17.100 libavcodec 59. 18.100 / 59. 18.100 libavformat 59. 16.100 / 59. 16.100 libavdevice 59. 4.100 / 59. 4.100 libavfilter 8. 24.100 / 8. 24.100 libswscale 6. 4.100 / 6. 4.100 libswresample 4. 3.100 / 4. 3.100 libpostproc 56. 3.100 / 56. 3.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'file:_________________________.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2mp41 encoder : Lavf59.8.100 Duration: 01:40:20.27, start: 0.000000, bitrate: 2231 kb/s Stream #0:0[0x1](und): Video: hevc (Main 10) (hev1 / 0x31766568), yuv420p10le(tv), 1920x1040 [SAR 1:1 DAR 24:13], 2001 kb/s, 23.98 fps, 23.98 tbr, 24k tbn (default) Metadata: handler_name : VideoHandler vendor_id : [0][0][0][0] Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 224 kb/s (default) Metadata: handler_name : SoundHandler vendor_id : [0][0][0][0] Stream mapping: Stream #0:0 -> #0:0 (hevc (native) -> h264 (libx264)) Stream #0:1 -> #0:1 (aac (native) -> aac (libfdk_aac)) Press [q] to stop, [?] for help ``` ### Please attach any browser or client logs here _No response_ ### Please attach any screenshots here _No response_ ### Code of Conduct - [X] I agree to follow this project's Code of Conduct
OVERLORD added the bugstale labels 2026-02-07 00:55:23 +03:00
Author
Owner

@jellyfin-bot commented on GitHub (May 21, 2023):

This issue has gone 120 days without comment. To avoid abandoned issues, it will be closed in 21 days if there are no new comments.

If you're the original submitter of this issue, please comment confirming if this issue still affects you in the latest release or master branch, or close the issue if it has been fixed. If you're another user also affected by this bug, please comment confirming so. Either action will remove the stale label.

This bot exists to prevent issues from becoming stale and forgotten. Jellyfin is always moving forward, and bugs are often fixed as side effects of other changes. We therefore ask that bug report authors remain vigilant about their issues to ensure they are closed if fixed, or re-confirmed - perhaps with fresh logs or reproduction examples - regularly. If you have any questions you can reach us on Matrix or Social Media.

@jellyfin-bot commented on GitHub (May 21, 2023): This issue has gone 120 days without comment. To avoid abandoned issues, it will be closed in 21 days if there are no new comments. If you're the original submitter of this issue, please comment confirming if this issue still affects you in the latest release or master branch, or close the issue if it has been fixed. If you're another user also affected by this bug, please comment confirming so. Either action will remove the stale label. This bot exists to prevent issues from becoming stale and forgotten. Jellyfin is always moving forward, and bugs are often fixed as side effects of other changes. We therefore ask that bug report authors remain vigilant about their issues to ensure they are closed if fixed, or re-confirmed - perhaps with fresh logs or reproduction examples - regularly. If you have any questions you can reach us on [Matrix or Social Media](https://docs.jellyfin.org/general/getting-help.html).
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/jellyfin#4541