Skip to content

Always attempt direct play on first playback#846

Draft
1hitsong wants to merge 4 commits intojellyfin:masterfrom
1hitsong:directPlayItAll
Draft

Always attempt direct play on first playback#846
1hitsong wants to merge 4 commits intojellyfin:masterfrom
1hitsong:directPlayItAll

Conversation

@1hitsong
Copy link
Copy Markdown
Member

Changes

  • On playback request, first attempt to direct play the video
  • If playback fails, attempt remux
  • If playback fails, attempt transcoding

@michaelcresswell
Copy link
Copy Markdown
Contributor

This works the same as 3.1.9 for a majority of my content.

Two things I've noticed:

  • The transcode reason is (effectively) lost. I see 'Force Transcode option is enabled' with this but 'ContainerNotSupported' with 3.1.9 for one of my test videos.
  • For another video, playback never starts with this (the loading spinner gets to 100% but playback never starts) but playback works with 3.1.9
    The video is 10-bit h264, was generated with ffmpeg -f lavfi -i smptebars=size=1920x1080:rate=30 -t 30 -c:v libx264 -pix_fmt yuv420p10le -crf 18 -y sample_10bit.mp4, and is attached.
sample_10bit.mp4

@1hitsong
Copy link
Copy Markdown
Member Author

1hitsong commented Apr 25, 2026

The transcode reason is (effectively) lost. I see 'Force Transcode option is enabled' with this but 'ContainerNotSupported'
with 3.1.9 for one of my test videos.

Yeah, I'll need to do some clean up on the reason logic. I was also thinking it might be cool to relay to the user the exact Roku error in a popup as the transcode logic hits.

For another video, playback never starts with this (the loading spinner gets to 100% but playback never starts) but playback works with 3.1.9

I'll check it out, but my guess is Roku believes it can play the video, but in reality it can't. I wonder if we do a playback timer similar to the buffer timer so that if playback doesn't start in X seconds, it falls into transcode logic 🤔

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants