Open rew1nter opened 11 months ago
Please provide a gdb backtrace of the crash.
Not sure if the same case as op's but mine is:
#0 0x00007ffff6c24632 in () at /usr/lib64/libavutil.so.58
#1 0x00007ffff6c24b50 in av_fifo_read () at /usr/lib64/libavutil.so.58
#2 0x00007ffff6e7b29c in () at /usr/lib64/libavcodec.so.60
#3 0x00007ffff6e7cf15 in () at /usr/lib64/libavcodec.so.60
#4 0x00007ffff6e4df8b in avcodec_close () at /usr/lib64/libavcodec.so.60
#5 0x00007ffff6e4e0ff in () at /usr/lib64/libavcodec.so.60
#6 0x00007fffa96a0011 in ffmpeg_video_encoder_init_codec () at /usr//lib64/obs-plugins/obs-ffmpeg.so
#7 0x00007fffa96a33b3 in () at /usr//lib64/obs-plugins/obs-ffmpeg.so
#8 0x00007fffa96a377b in () at /usr//lib64/obs-plugins/obs-ffmpeg.so
#9 0x00007ffff5a78111 in obs_encoder_initialize () at /usr/lib64/libobs.so.0
#10 0x00007ffff5a9383c in obs_output_initialize_encoders () at /usr/lib64/libobs.so.0
#11 0x00007fffa96a91be in () at /usr//lib64/obs-plugins/obs-ffmpeg.so
#12 0x00007ffff5a8faab in obs_output_actual_start () at /usr/lib64/libobs.so.0
#13 0x00007ffff5a8fc32 in obs_output_start () at /usr/lib64/libobs.so.0
#14 0x00005555556fcf71 in ()
#15 0x00005555556ba3cc in ()
#16 0x00005555555fb553 in ()
#17 0x00007ffff51a8ab8 in () at /usr/lib64/libQt5Core.so.5
#18 0x00007ffff5f6c162 in QAbstractButton::clicked(bool) () at /usr/lib64/libQt5Widgets.so.5
#19 0x00007ffff5f6c3da in () at /usr/lib64/libQt5Widgets.so.5
#20 0x00007ffff5f6df42 in () at /usr/lib64/libQt5Widgets.so.5
#21 0x00007ffff5f6e167 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () at /usr/lib64/libQt5Widgets.so.5
#22 0x00007ffff5ebc448 in QWidget::event(QEvent*) () at /usr/lib64/libQt5Widgets.so.5
#23 0x00007ffff5e7a6ff in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5
#24 0x00007ffff5e821ca in QApplication::notify(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5
#25 0x00007ffff5176988 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib64/libQt5Core.so.5
#26 0x00007ffff5e80ce6 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) () at /usr/lib64/libQt5Widgets.so.5
#27 0x00007ffff5ed51d5 in () at /usr/lib64/libQt5Widgets.so.5
#28 0x00007ffff5ed83a5 in () at /usr/lib64/libQt5Widgets.so.5
#29 0x00007ffff5e7a6ff in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5
#30 0x00007ffff5176988 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib64/libQt5Core.so.5
#31 0x00007ffff557814d in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at /usr/lib64/libQt5Gui.so.5
#32 0x00007ffff5557b4b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Gui.so.5
#33 0x00007fffee7f0d4a in () at /usr/lib64/libQt5XcbQpa.so.5
#34 0x00007ffff39c726d in g_main_context_dispatch () at /usr/lib64/libglib-2.0.so.0
#35 0x00007ffff39c7518 in () at /usr/lib64/libglib-2.0.so.0
#36 0x00007ffff39c75ac in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#37 0x00007ffff51c6916 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
#38 0x00007ffff5175413 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
#39 0x00007ffff517d700 in QCoreApplication::exec() () at /usr/lib64/libQt5Core.so.5
#40 0x00005555555ecef6 in main ()
A workaround: setting software encoder instead of NVENC HEVC/H.264 (both cause crash). It did work perfectly before I bought RTX 4090, not sure if this is hardware-related, ffmpeg-6.0-related (also crashes with 4.4.4) or maybe I should use newer nvidia-drivers (using 535.113.01, while 545.23.06 is hardmasked on my distro).
Oh, and the op could please check terminal output without gdb, mine is:
[h264_nvenc @ 0x5625a23824c0] dl_fn->cuda_dl->cuInit(0) failed -> CUDA_ERROR_UNKNOWN: unknown error
Oh, one more, reloading kernel module nvidia_uvm
seems to have fixed this for me. It happens when I use tensorflow a lot. If the same helps the op, then this ticket is just about detecting CUDA_ERROR_UNKNOWN and failing gracefully, not crashing.
Please provide a gdb backtrace of the crash.
How can I do that?
reloading kernel module nvidia_uvm seems to have fixed this for me.
How can I do that?
This is the output from when I start with obs
in terminal
info: [obs-websocket] [obs_module_post_load] WebSocket server is enabled, starting...
info: [obs-websocket] [WebSocketServer::Start] Not locked to IPv4 bindings
info: [obs-websocket] [WebSocketServer::ServerRunner] IO thread started.
info: [obs-websocket] [WebSocketServer::Start] Server started successfully on port 4455. Possible connect address: 192.168.0.105
info: ==== Startup complete ===============================================
info: All scene data cleared
info: ------------------------------------------------
info: pulse-input: Server name: 'pulseaudio 16.1'
info: pulse-input: Audio format: s16le, 44100 Hz, 2 channels
info: pulse-input: Started recording from 'alsa_output.pci-0000_09_00.3.analog-stereo.monitor' (default)
info: [Loaded global audio device]: 'Desktop Audio'
info: xshm-input: Geometry 1920x1080 @ 0,0
info: Switched to scene 'Scene'
info: ------------------------------------------------
info: Loaded scenes:
info: - scene 'Scene':
info: - source: 'Screen Capture (XSHM)' (xshm_input)
info: ------------------------------------------------
info: ---------------------------------
info: [FFmpeg NVENC encoder: 'simple_video_recording'] settings:
encoder: NVIDIA NVENC H.264 (FFmpeg)
rate_control: CQP
bitrate: 0
cqp: 23
keyint: 250
preset: p5
tuning: hq
multipass: qres
profile: high
width: 1920
height: 1080
b-frames: 2
psycho-aq: 1
GPU: 0
[h264_nvenc @ 0x55810029be40] Driver does not support the required nvenc API version. Required: 12.1 Found: 11.1
[h264_nvenc @ 0x55810029be40] The minimum required Nvidia driver for nvenc is (unknown) or newer
Segmentation fault (core dumped)
Please provide a gdb backtrace of the crash.
How can I do that?
Have gdb
installed. Then, in your regular user shell:
gdb obs
(some stuff prints)
run
(then, when it crashes)
backtrace
reloading kernel module nvidia_uvm seems to have fixed this for me.
How can I do that?
In root shell:
rmmod nvidia_uvm
modprobe nvidia_uvm
[h264_nvenc @ 0x55810029be40] Driver does not support the required nvenc API version. Required: 12.1 Found: 11.1 [h264_nvenc @ 0x55810029be40] The minimum required Nvidia driver for nvenc is (unknown) or newer
Guess you have outdated
nvidia-drivers
. Or maybe also neednvidia-cuda-toolkit
installed. I don't know exactly, obs should document such requirements.
I'm also experiencing similar symptoms, but the error is slightly different. The main difference is that I'm getting this error:
[h264_nvenc @ 0x4a47100] Temporal AQ not supported
[h264_nvenc @ 0x4a47100] No capable devices found
I'm using the legacy nvidia driver (470xx
), but OBS used to work fine on this machine in the past.
Here's my backtrace:
And here's my terminal log:
01:44:15.288: Loading up OpenGL on adapter NVIDIA Corporation NVIDIA GeForce GT 710/PCIe/SSE2 01:44:15.288: OpenGL loaded successfully, version 3.3.0 NVIDIA 470.199.02, shading language 3.30 NVIDIA via Cg compiler 01:47:56.929: multipass: qres
@rew1nter Kepler GPUs do not support qres multipass. Use Advanced Output Mode and set it to something else, assuming your package/distro isn't using FFmpeg's nv-codec-headers 12+, which would require newer drivers than are available for Kepler GPUs.
Your later log indicates that your package is using nv-codec-headers 12.1, which will not support Kepler GPUs. You either need to use an obs-studio package/version that uses nv-codec-headers 11.1 or older, or get a newer GPU.
[h264_nvenc @ 0x55810029be40] Driver does not support the required nvenc API version. Required: 12.1 Found: 11.1 [h264_nvenc @ 0x55810029be40] The minimum required Nvidia driver for nvenc is (unknown) or newer
@paboum You are having a different issue than the OP. Your gdb backtrace indicates Qt version 5 libraries, which we no longer support.
info: Loading up OpenGL on adapter NVIDIA Corporation NVIDIA GeForce GT 635/PCIe/SSE2 info: OpenGL loaded successfully, version 3.3.0 NVIDIA 470.199.02, shading language 3.30 NVIDIA via Cg compiler
@musjj You are having the same problem as the OP: your GPU does not support qres multipass or temporal AQ ("psycho-aq" in the log, "Psycho Visual Tuning" in the OBS UI). Disable both, assuming your package/distro is using FFmpeg's nv-codec-headers 11.1 or older.
Operating System Info
Other
Other OS
Endeavour OS
OBS Studio Version
Git
OBS Studio Version (Other)
No response
OBS Studio Log URL
https://obsproject.com/logs/OZdnDdVPbdOTdaBD
OBS Studio Crash Log URL
No response
Expected Behavior
I expected OBS studio to work after clicking Start Recording button
Current Behavior
It instead crashes immediately
Steps to Reproduce
Anything else we should know?
No response