-
-
Notifications
You must be signed in to change notification settings - Fork 524
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
Linux NVENC Encoder requires B Frame support for any hardware. #2064
Comments
Having this problem too. Would be great to have an option to set -b_ref_mode to 0 in the app. |
On Linux, ALVR bundles ffmpeg during compilation, first downloading ffmpeg sources from the internet and applying patches found in |
My GPU got CUDA cores. It seems like many people on Linux have a problem with that b_ref_mode, so maybe it's a great idea to add an option to disable that parameter in the next release, if possible. |
Thank you, @Xaphiosis for the advice. But I am not a true programmer to edit and compile ALVR's source code by myself. I am just an simple user, and all that I ask is to add some option for the ALVR that would to turn off usage of the B Frame feature for the NVENC codec, same as @mediastacks mentioned. Simple switch that we could turn on and off, would be enough to solve the issue. Thank you again for help! |
I gave this a shot, see https://github.com/Xaphiosis/ALVR/releases/tag/nightly-no_b_ref_mode If this works for you, we can take it further towards making it an option. (note that the AppImage is only there to aid in debugging, currently there is no official appimage for v20.7.1) |
Thank you so much, it worked for me! It still throws these error popups upon connecting to the headset, but that doesn't affect functionality, I guess. |
Was it the appimage or the tar.gz that worked for you? Also would be good to hear from @MrBlackGoo ... the |
I tried AppImage only since I don't feel qualified enough to build from source :) |
The tar.gz is not the source, it's supposed to be a portable archive (appimage was removed in most recent ALVR release). If you decompress it somewhere, you should see that |
@Xaphiosis, I am sorry for the late answer. Had no time to test the version you sent until now. Thank you for your efforts, the fix works as intended! Not sure exactly how lack of using B Frames affects performance or things at newer graphic cards. So I would suggest to add this fix as an option in settings menu, to be sure that it will not backfire.
I get same not critical errors when try to use new ALVR version (both the one you sent and the 20.7.0), but it happen too quick and not affect the session after that. |
Thanks @MrBlackGoo for checking that out. I wish I knew what the issues are with that x264 encoder profile setting (that's the "high" you're seeing). Could you let me know if there's any difference between the AppImage and the tar.gz when it comes to those encoder errors? I think ALVR doesn't use B-frames at all... after double-checking what B-frames actually are, it occurred to me that they stand for bi-directional, i.e. using info from previous and subsequent frames. As you can imagine, this doesn't happen in a low-latency streaming application without being able to access to the future. So P-frames only, hence no effect on outcome for ALVR. I put up a PR, it's been approved, but I don't have write permission so presumably someone will merge it before next release. |
Drive by comment - I can confirm that I had the same issue with GTX 1080 Ti, and the nightly build shared in #2064 (comment) resolved it for me. Thank you for the fix @Xaphiosis! |
As I mentioned in previous comment, I tried to use tar.gz of the ALVR v20.7.0 (as AppImage no longer exists), and got same error appearing when I tried to use x264 codec because I had no choice (as NVENC (because of B Frames) and AV1 (because of AMD only) doesn't work for me at 20.7.0). |
Ah no, I meant I guess is doesn't matter that much now. The fix for this issue (the B frame refs) is merged now, so next release should pick it up, and maybe you only need a newer version of |
This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days. |
I meet with exactly same problem, and really beg for help.
I have GeForce GTX 1650 and same issue with B Frames appears every time I try to use NVENC codec (ALVR version 20.5.0). I tried to change settings, add some b_ref_mode parameter there, but nothing helps.
I checked FFMPEG simple encoding of a media file through the console using NVENC and I got exactly same warning ("B frames as references are not supported") and then the error "Provided device doesn't support required NVENC features". But if add "-b_ref_mode 0" encoding works perfectly fine.
After some research I tried to uninstall and recompile ffmpeg from its sources, changing default settings for using B Frames to False. This experiment was successful. It works nice but as long as I actually use "ffmpeg" from the console. ALVR, sadly completely ignore this changes as it keeps throwing same warning and the error every time. I even changed text of the warning, to check if ALVR using it or not, but ALVR didn't show any my changes at all.
I tried to use ALVR AppImage and tar version (tar version refuse to see headset without "libx264.so.163" in "lib" folder), but both seems don't even use ffmpeg I recompiled.
My custom ffmpeg located at "/usr/local/bin", and I do not have any other ffmpeg installed (except libs, which I can't remove for multimedia software like "Haruna Media Player" and etc )
What do I miss?
How to force ALVR do not use B Frames for NVENC codec?
Originally posted by @MrBlackGoo in #1947 (comment)
Description
This issue still remains not fixed at the ALVR 20.7.0.
(Additionally I would mention that newest tar version works fine without "lib" folder, but still don't work with B Frames by same reason as mentioned in the original post.)
General Troubleshooting
Environment
Hardware
CPU: Intel Xeon E3-1270 V2 (8) @ 3.900GHz
GPU: NVIDIA GeForce GTX 1650
Installation
ALVR Version: 20.7.0
Install Type:
exe
,deb
,rpm
, etc)zip
)OS Name and Version Kubuntu 23.10 x86_64
The text was updated successfully, but these errors were encountered: