Question / Help VAAPI with AMD Card not working

ahmadafef

New Member
I've been trying to make this work for ages now and I have no idea what is wrong.
It worked perfectly on Windows before but never on Linux.

I've tried on Fedora, Ubuntu, Arch, Manjaro, Solus, and others. All are the same.
I've installed all drivers and tools needed with no luck.
When the card work, All I have is that the encoder is overloaded even when I'm not using the GPU or the CPU in anything.
I get sometimes 70%+ skipped frames!

Is there any settings That I'm missing? Using Advanced options will just break everything.


here is the startup log:
Code:
Attempted path: share/obs/obs-studio/locale/en-US.ini
Attempted path: /usr/share/obs/obs-studio/locale/en-US.ini
Attempted path: share/obs/obs-studio/locale.ini
Attempted path: /usr/share/obs/obs-studio/locale.ini
Attempted path: share/obs/obs-studio/themes/Dark.qss
Attempted path: /usr/share/obs/obs-studio/themes/Dark.qss
info: CPU Name: AMD Ryzen 5 2600 Six-Core Processor
info: CPU Speed: 2221.600MHz
info: Physical Cores: 6, Logical Cores: 12
info: Physical Memory: 16027MB Total, 8845MB Free
info: Kernel Version: Linux 5.4.0-1-MANJARO
info: Distribution: "Manjaro Linux" Unknown
info: Window System: X11.0, Vendor: The X.Org Foundation, Version: 1.20.5
info: Portable mode: false
Attempted path: share/obs/obs-studio/themes/Dark/no_sources.svg
Attempted path: /usr/share/obs/obs-studio/themes/Dark/no_sources.svg
QMetaObject::connectSlotsByName: No matching signal for on_advAudioProps_clicked()
QMetaObject::connectSlotsByName: No matching signal for on_advAudioProps_destroyed()
QMetaObject::connectSlotsByName: No matching signal for on_program_customContextMenuRequested(QPoint)
info: OBS 24.0.1-1 (linux)
info: ---------------------------------
info: ---------------------------------
info: audio settings reset:
        samples per sec: 44100
        speakers:        2
info: ---------------------------------
info: Initializing OpenGL...
info: Loading up OpenGL on adapter X.Org Radeon RX 590 Series (POLARIS10, DRM 3.35.0, 5.4.0-1-MANJARO, LLVM 9.0.0)
info: OpenGL loaded successfully, version 4.5 (Core Profile) Mesa 19.2.1, shading language 4.50
info: ---------------------------------
info: video settings reset:
        base resolution:   2560x1080
        output resolution: 2560x1080
        downscale filter:  Bicubic
        fps:               30/1
        format:            NV12
        YUV mode:          709/Full
info: NV12 texture support not available
info: Audio monitoring device:
        name: Default
        id: default
info: ---------------------------------
warning: Failed to load 'en-US' text for module: 'decklink-ouput-ui.so'
libDeckLinkAPI.so: cannot open shared object file: No such file or directory
info: No blackmagic support
error: os_dlopen(libnvidia-encode.so.1->libnvidia-encode.so.1): libnvidia-encode.so.1: cannot open shared object file: No suc
h file or directory

info: FFMPEG VAAPI supported
info: VLC found, VLC video source enabled
info: ---------------------------------
info:   Loaded Modules:
info:     vlc-video.so
info:     text-freetype2.so
info:     rtmp-services.so
info:     obs-x264.so
info:     obs-transitions.so
info:     obs-outputs.so
info:     obs-libfdk.so
info:     obs-filters.so
info:     obs-ffmpeg.so
info:     linux-v4l2.so
info:     linux-pulseaudio.so
info:     linux-jack.so
info:     linux-decklink.so
info:     linux-capture.so
info:     linux-alsa.so
info:     image-source.so
info:     frontend-tools.so
info:     decklink-ouput-ui.so
info: ---------------------------------
info: ==== Startup complete ===============================================
error: Service '' not found
info: All scene data cleared
info: ------------------------------------------------
info: pulse-input: Server name: 'pulseaudio 13.0-dirty'
info: pulse-input: Audio format: s16le, 44100 Hz, 2 channels
info: pulse-input: Started recording from 'alsa_output.pci-0000_07_00.1.hdmi-stereo-extra5.monitor'
info: pulse-input: Server name: 'pulseaudio 13.0-dirty'
info: pulse-input: Audio format: s16le, 48000 Hz, 1 channels
info: pulse-input: Started recording from 'alsa_input.usb-0c76_USB_PnP_Audio_Device-00.mono-fallback'
info: xshm-input: Geometry 2560x1080 @ 0,0
info: Switched to scene 'Scene'
info: ------------------------------------------------
info: Loaded scenes:
info: - scene 'Scene':
info:     - source: 'Screen' (xshm_input)
info:     - source: 'Logo' (image_source)
info: ------------------------------------------------
info: adding 46 milliseconds of audio buffering, total audio buffering is now 46 milliseconds (source: Desktop Audio)



And this is the recording log:
Code:
Attempted path: share/obs/obs-studio/images/overflow.png
Attempted path: /usr/share/obs/obs-studio/images/overflow.png
info: ---------------------------------
info: [FFMPEG VAAPI encoder: 'recording_h264'] settings:
        device:       /dev/dri/renderD128
        qp:           20
        quality:      0
        profile:      578
        level:        42
        bitrate:      30800
        keyint:       120
        width:        2560
        height:       1080
        b-frames:     0

mesa: for the   --simplifycfg-sink-common option: may only occur zero or one times!
mesa: for the   --global-isel-abort option: may only occur zero or one times!
[h264_vaapi @ 0x55888d698c00] Driver does not support some wanted packed headers (wanted 0xd, found 0).
info: libfdk_aac encoder created                                                                                              
info: libfdk_aac bitrate: 256, channels: 2
info: libfdk_aac encoder created
info: libfdk_aac bitrate: 256, channels: 2
info: ==== Recording Start ===============================================
info: [ffmpeg muxer: 'adv_file_output'] Writing file '/home/ahmad/Videos/2019-10-21 22-57-07.mkv'...
[matroska @ 0x562b0b1146c0] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.                                   
[matroska @ 0x562b0b1146c0] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.                                   
[matroska @ 0x562b0b1146c0] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.                                                                                                                          
info: [ffmpeg muxer: 'adv_file_output'] Output of file '/home/ahmad/Videos/2019-10-21 22-57-07.mkv' stopped                   
info: Output 'adv_file_output': stopping
info: Output 'adv_file_output': Total frames output: 820
info: Output 'adv_file_output': Total drawn frames: 858 (868 attempted)
info: Output 'adv_file_output': Number of lagged frames due to rendering lag/stalls: 10 (1.2%)
info: ==== Recording Stop ================================================
info: Video stopped, number of skipped frames due to encoding lag: 582/831 (70.0%)
info: libfdk_aac encoder destroyed
info: libfdk_aac encoder destroyed
 

c4logan

New Member
You set very high bitrate and resolution. You need set much lower bitraet and resolution also use fps under 30 or =30. Even stream with res 1920x1080 with 30 fps and bitrate higher then 3500 has broken frames and buggy so you cant stream. Also use scale, do not use input res=output res, you got buggs. Obs developers dont read topics on linux topic and they dotn want fixx this issues. They do all for windows but not for linux
 
Top