-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Separate bitrate control from resolution #6071
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ESLint doesn't pass. Please fix all ESLint issues.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ESLint doesn't pass. Please fix all ESLint issues.
Co-authored-by: Dmitry Lyzo <56478732+dmitrylyzo@users.noreply.github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems to work.
-
Assume we have HEVC/AV1 and have to transcode to H264. The next higher bitrate may not be enough for comparable quality.
-
When we select some bitrate (say 15Mbps) and then start another video with a lower bitrate (say 4Mbps), it puts a checkmark on
Auto
. It worked the same way before, though. 🤷♂️
I noticed this as well but I decided to leave it the same way as before because it always has been like this for a few years. If we want to change this we need to think about what way is better and change that accordingly which is out of scope of this PR.
Or do we port the scaling function into the web as well and also scale based on that? |
That would be ideal in terms of math, but it will require them to be synchronized. If only we could add this function to the SDK.
Since we are detaching bitrate from resolution, this becomes unnecessary: jellyfin-web/src/components/playbackSettings/playbackSettings.js Lines 280 to 308 in e5df4dd
|
As a simplified option we can just display the option that is first higher than 1.5x of the source bitrate when we are doing hevc/av1/vp9 to h264. This is a rough estimate but should work good enough for most of them because it is the estimated compression efficiency in common bitrate range (8-10mbit/s) |
I made the tradeoff option: increase the bitrate used to filter the control options by a factor of 1.5 when it is not too high (below the 20Mbps option). Ideally we only have to do this when transcoding to h264, but unfortunately we need extra api call to get this kind of info and it is not ideal to me. Maybe we can improve the API in future releases but I think this is okay for now. |
Quality Gate passedIssues Measures |
Cloudflare Pages deployment
|
Changes
Issues
A follow up of the server change: jellyfin/jellyfin#12644, but that not depends on that PR, this just works better with that merged.