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.
|
ReenigneArcher
left a comment
There was a problem hiding this comment.
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_hrdoption 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_hrdon 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_qualitypreset.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.