-
-
Notifications
You must be signed in to change notification settings - Fork 1k
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
AMF: rate control improvements #2251
Conversation
372a948
to
bdd75d5
Compare
Homebrew is failing because your default branch doesn't match what we have set, https://github.com/LizardByte/Sunshine/actions/runs/8274317116/job/22639486783?pr=2251#step:7:209 You can fix this by changing your default branch in your fork, and we can re-run the workflow. |
aa3f592
to
5b564a8
Compare
Thanks - that sorted the errors. I had to refresh the PR again, as I overlooked the preset RC set in the video struct. Everything should be OK now. |
I've been testing CBR + HRD on my RX 6600 for a few days, and haven't noticed any issues with reduced quality or peak bitrate spikes, but I'm wondering if I should use this PR to update some more features related to AMF? Looking at the reference version of ffmpeg we're currently building against:
|
Update on my previous notes:
|
571820d
to
f1accb9
Compare
Just a note on the new usage presets: I removed the From looking at the HEVC API, the usage presets set the following:
Many of these properties are overridden by our configuration, and others by ffmpeg -- even if the default is not changed. Example: the The
We could probably fix the |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## nightly #2251 +/- ##
==========================================
+ Coverage 6.00% 6.11% +0.11%
==========================================
Files 85 85
Lines 18296 18303 +7
Branches 8310 8319 +9
==========================================
+ Hits 1098 1119 +21
- Misses 15468 16076 +608
+ Partials 1730 1108 -622
Flags with carried forward coverage won't be shown. Click here to find out more.
|
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.
Only change would be to remove any changes to localization files other than en.json
. I need to make this more clear in the docs, but it should be ONLY en.json
.
Hypothetical Reference Decoder (HRD) enforcement will help constrain target bitrate for bitrate-based rate control methods. May degrade quality for intensive scene transitions, so make available as a user-adjustable option.
User testing seems to suggest that CBR in conjunction with HRD enforcement works best for bitrate control.
* add lowlatency_high_quality preset * rename "transconding" legacy macro (not used in ffmpeg)
I assume the rationale is so that missing strings from other languages use the I've made the requested change and tested a local build, and I can see that this will cause issues with the current state of the localization files - specifically The solution would be to delete the outdated strings from all other files besides |
Essentially, the If files other than
But yes, they may be outdated for a period of time, until I merge the automated updates from crowdin. |
I see, thanks for explaining. I've pushed the updated PR that only touches |
Description
Changes to AMF encoder:
enforce_hrd
option and set by default, to help constrain the target bitrate for VBR/CBR rate control methods. Rationale for making user-selectable: I observed encoder throttling withenforce_hrd
on RX 570 several years ago at 1080p or higher, but cannot re-test to ensure the issue is not still present. May also cause quality degradation for scene transitions that previously would trigger bitrate overshoots.lowlatency_high_quality
preset.Issues Fixed or Closed
Closes #1040
Type of Change
.github/...
)Checklist
Branch Updates
LizardByte requires that branches be up-to-date before merging. This means that after any PR is merged, this branch
must be updated before it can be merged. You must also
Allow edits from maintainers.