set b_ref_mode=0 for ffmpeg NVENC encoder #2074
Merged
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.
Older NVIDIA cards (e.g. GTX 1650) don't support this feature, and
ffmpeg somehow force-enabled it, despite docs saying it should be set to
"auto", and --help saying the default is "disabled". Setting it to
"disabled" in the encoder works around this issue.
ALVR does not currently use multiple B frames, so there should be no
difference and no obvious difference was visible when testing.
The feature is documented as:
"Using B frame as a reference improves subjective and objective encoded
quality with no performance impact. Hence the users enabling multiple B
frames are strongly recommended to enable this feature."
Wise man @nowrep said: "just disable it, it's ffmpeg or nvenc bug (it shouldn't explode on this not being supported when b-frames are not used)"
See #2064 for someone saying this workaround does work for them on an older card. I didn't notice anything different on a 3090 with 550 drivers and cuda 12.4.