Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Direct play of transport stream media (e.g. live tv recording) has incorrect duration and cannot seek back/forwards #1850

Open
ch6574 opened this issue Jul 22, 2024 · 5 comments
Labels
bug Something isn't working

Comments

@ch6574
Copy link

ch6574 commented Jul 22, 2024

Software Versions

  • Jellyfin Server Version: 10.9.7
  • Roku Client Version: 2.1

Describe the bug

Playback media that is contained in a transport stream "ts" file in Direct Play mode (not transcoded) and observe that the duration is wildly inaccurate, and that seek back/forwards is impossible. Try the same media on a web browser or Android client and see that is works correctly.

How To Reproduce

Create two 10 second test files (a "ts" and a "mkv") with keyframes as follows:

ffmpeg -f lavfi -i "testsrc=duration=10:size=1920x1080" -c:v libx264 -x264-params keyint=25 -pix_fmt yuv420p test_01.ts
ffmpeg -f lavfi -i "testsrc=duration=10:size=1920x1080" -c:v libx264 -x264-params keyint=25 -pix_fmt yuv420p test_02.mkv

Then play them back via Firefox, Android, and Roku clients:

Test Firefox Android Roku
test_01 (h264 in a ts) Direct Play ✅ Direct Play ✅ Direct Play, no seek/skip, shows 5h 45min long ❌
test_02 (h264 in a mkv) Direct Play ✅ Direct Play ✅ Direct Play ✅

Expected behavior

Ability to seek back / forwards as per other clients.

Logs

n/a

Screenshots

See jellyfin/jellyfin#12244 (comment)

Connection Information

  • Is server local or remote? on the LAN
  • Is server connection HTTP or HTTPS? HTTP

Additional context

I also filed jellyfin/jellyfin#12244 should this be a backend issue, however other clients don't suffer this issue.

@ch6574 ch6574 added the bug Something isn't working label Jul 22, 2024
@cewert
Copy link
Member

cewert commented Jul 22, 2024

Can you try playing the file using the Roku Media Player? If the file doesn't play then there is no hope of the file working with our app

@ch6574
Copy link
Author

ch6574 commented Jul 22, 2024

I can do. What's the easiest way to do this while ruling out as much else as possible - put it on a USB stick?

@cewert
Copy link
Member

cewert commented Jul 22, 2024

The app only supports USB and DLNA IIRC so whichever is easier for you. Feel free to test any and all files you think may be bugged using the roku client

@ch6574
Copy link
Author

ch6574 commented Jul 23, 2024

I just did a local play with these test files on USB in Roku Media Player and observed:

  • test_01 (h264 in a ts) plays, but there's now no controls available at all.
  • test_02 (h264 in a mkv) plays, with full controls working (e.g., pause, rewind).

So the difference with the "ts" file locally is the Roku now presents no controls at all!

Interestingly, with remote play of these on the Jellyfin backend there's no "FFmpeg.DirectStream" log created, unlike with Android or Firefox, which I guess is wrapping it in a HLS stream for them, but not for Roku clients?

@InvestigationNation
Copy link

I encountered this same issue (Direct Play of .ts files resulting in bad time hacks and disabled forward/rewind navigation) and my workaround was modifying app Settings-->Playback-->Video Codec Support and disabling "Support Direct Play" for both MPEG-2 and MPEG-4.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants