video: use a better vbv-bufsize & correct software bitrate calculation #288
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
was too low, which was resulting in poor encoding quality and failure to
stabilize at the requested bitrate. Setting to 1/10 of bitrate is a
good compromise, as it avoids quality loss but also prevents bandwidth
spikes far above the bitrate/vbv-maxrate.
the average bitrate vs client-requested bandwidth overshoots by ~20%.
Adjust for this scenario in the software encoding case only.
--
This change greatly increases stream quality on my system. Before the vbv-bufsize change, there would be consistently blurry details for complex or dark scenes (such as foliage or details on far away rocks), especially during movement. Additionally, monitoring of incoming bandwidth to the moonlight-qt client showed a consistent failure to reach the requested bandwidth for intensive scenes.
With the patch, complex details are much better preserved, and the client bandwidth consistently stays at the requested bitrate (which was overshooting by 20%) for intensive scenes. I tested various resolutions and bitrate combinations to ensure the adjusted vbv-bufsize value was not causing vbv-maxrate to be exceeded.