Using AMD AMF encoder in OBS Studio?

Hi guys, total Garuda (and thus Arch) newbie here.

I've been distro hopping a LOT ever since I expressed dissatisfaction with Windows 11, version 22H2, and to an extent, Windows 10 as well. I've been hopping between Ubuntu (official) and Fedora (Nobara). Finally decided to give Garuda a shot, and I must say, I'm very impressed.

Enough of that though, I approach yalls with a question. Has anyone gotten AMD AMF encoders to work on their copies of OBS? If so, can you please detail how you did it? Currently I'm using GStreamer's VAAPI plugin and I'm still not satisfied, having fairly poor quality at 25 Mbps bitrate (and I do not know how to add CQP to the encoder settings, as the window still insists on inputting bitrate despite selecting CQP).

garuda-inxi incoming!

System:
  Kernel: 6.0.8-zen1-1-zen arch: x86_64 bits: 64 compiler: gcc v: 12.2.0
    parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
    root=UUID=137f0cc6-ef53-4347-883c-dfbc08ad2800 rw rootflags=subvol=@
    quiet quiet splash rd.udev.log_priority=3 vt.global_cursor_default=0
    resume=UUID=79b5222c-979f-4715-ad36-c660f42ebf3b loglevel=3
  Desktop: KDE Plasma v: 5.26.3 tk: Qt v: 5.15.7 info: latte-dock
    wm: kwin_x11 vt: 1 dm: SDDM Distro: Garuda Linux base: Arch Linux
Machine:
  Type: Desktop Mobo: ASUSTeK model: PRIME X570-P v: Rev X.0x
    serial: <superuser required> UEFI: American Megatrends v: 4403
    date: 04/28/2022
CPU:
  Info: model: AMD Ryzen 7 5800X bits: 64 type: MT MCP arch: Zen 3 gen: 4
    level: v3 note: check built: 2021-22 process: TSMC n7 (7nm)
    family: 0x19 (25) model-id: 0x21 (33) stepping: 0 microcode: 0xA201016
  Topology: cpus: 1x cores: 8 tpc: 2 threads: 16 smt: enabled cache:
    L1: 512 KiB desc: d-8x32 KiB; i-8x32 KiB L2: 4 MiB desc: 8x512 KiB
    L3: 32 MiB desc: 1x32 MiB
  Speed (MHz): avg: 3838 high: 4850 min/max: 2200/4850 boost: enabled
    scaling: driver: acpi-cpufreq governor: performance cores: 1: 3648 2: 3800
    3: 3601 4: 3800 5: 3865 6: 3800 7: 3800 8: 3800 9: 4850 10: 3800 11: 3800
    12: 3851 13: 3601 14: 3800 15: 3800 16: 3800 bogomips: 121604
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
  Vulnerabilities:
  Type: itlb_multihit status: Not affected
  Type: l1tf status: Not affected
  Type: mds status: Not affected
  Type: meltdown status: Not affected
  Type: mmio_stale_data status: Not affected
  Type: retbleed status: Not affected
  Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
    prctl
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
    sanitization
  Type: spectre_v2 mitigation: Retpolines, IBPB: conditional, IBRS_FW,
    STIBP: always-on, RSB filling, PBRSB-eIBRS: Not affected
  Type: srbds status: Not affected
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: AMD Navi 21 [Radeon RX 6800/6800 XT / 6900 XT] vendor: Sapphire
    driver: amdgpu v: kernel arch: RDNA-2 code: Navi-2x process: TSMC n7 (7nm)
    built: 2020-22 pcie: gen: 4 speed: 16 GT/s lanes: 16 ports:
    active: DP-1,DP-2,HDMI-A-1 empty: DP-3 bus-ID: 07:00.0 chip-ID: 1002:73bf
    class-ID: 0300
  Device-2: Logitech CrystalCam type: USB driver: snd-usb-audio,uvcvideo
    bus-ID: 5-3.3:4 chip-ID: 046d:0894 class-ID: 0102 serial: <filter>
  Display: x11 server: X.Org v: 21.1.4 with: Xwayland v: 22.1.5
    compositor: kwin_x11 driver: X: loaded: amdgpu unloaded: modesetting,radeon
    alternate: fbdev,vesa dri: radeonsi gpu: amdgpu display-ID: :0 screens: 1
  Screen-1: 0 s-res: 7040x1440 s-dpi: 96 s-size: 1862x381mm (73.31x15.00")
    s-diag: 1901mm (74.83")
  Monitor-1: DP-1 mapped: DisplayPort-0 pos: primary,center
    model: LG (GoldStar) ULTRAGEAR serial: <filter> built: 2021 res: 2560x1440
    dpi: 93 gamma: 1.2 size: 697x392mm (27.44x15.43") diag: 800mm (31.5")
    ratio: 16:9 modes: max: 2560x1440 min: 640x480
  Monitor-2: DP-2 mapped: DisplayPort-1 pos: right model: Samsung LC27G5xT
    serial: <filter> built: 2021 res: 2560x1440 hz: 144 dpi: 93 gamma: 1.2
    size: 698x393mm (27.48x15.47") diag: 685mm (27") ratio: 16:9 modes:
    max: 2560x1440 min: 720x400
  Monitor-3: HDMI-A-1 mapped: HDMI-A-0 pos: left model: Acer XZ320Q X
    serial: <filter> built: 2020 res: 1920x1080 dpi: 70 gamma: 1.2
    size: 698x392mm (27.48x15.43") diag: 801mm (31.5") ratio: 16:9 modes:
    max: 1920x1080 min: 720x400
  API: OpenGL v: 4.6 Mesa 22.2.3 renderer: AMD Radeon RX 6800 XT (navi21
    LLVM 14.0.6 DRM 3.48 6.0.8-zen1-1-zen) direct render: Yes
Audio:
  Device-1: AMD Navi 21/23 HDMI/DP Audio driver: snd_hda_intel v: kernel pcie:
    bus-ID: 1-1:2 gen: 4 chip-ID: 046d:0aaa class-ID: 0300 speed: 16 GT/s
    serial: <filter> lanes: 16 bus-ID: 07:00.1 chip-ID: 1002:ab28
    class-ID: 0403
  Device-2: AMD Starship/Matisse HD Audio vendor: ASUSTeK
    driver: snd_hda_intel v: kernel pcie: gen: 4 speed: 16 GT/s lanes: 16
    bus-ID: 0e:00.4 chip-ID: 1022:1487 class-ID: 0403
  Device-3: Logitech Logitech G PRO X Gaming Headset type: USB
    driver: hid-generic,snd-usb-audio,usbhid
  Device-4: Logitech Blue Microphones type: USB
    driver: hid-generic,snd-usb-audio,usbhid bus-ID: 1-2:5 chip-ID: 046d:0ab7
    class-ID: 0300 serial: <filter>
  Device-5: Logitech CrystalCam type: USB driver: snd-usb-audio,uvcvideo
    bus-ID: 5-3.3:4 chip-ID: 046d:0894 class-ID: 0102 serial: <filter>
  Sound API: ALSA v: k6.0.8-zen1-1-zen running: yes
  Sound Interface: sndio v: N/A running: no
  Sound Server-1: PulseAudio v: 16.1 running: no
  Sound Server-2: PipeWire v: 0.3.59 running: yes
Network:
  Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet
    vendor: ASUSTeK PRIME B450M-A driver: r8169 v: kernel pcie: gen: 1
    speed: 2.5 GT/s lanes: 1 port: e000 bus-ID: 08:00.0 chip-ID: 10ec:8168
    class-ID: 0200
  IF: enp8s0 state: up speed: 1000 Mbps duplex: full mac: <filter>
  Device-2: Intel Wi-Fi 6 AX200 driver: iwlwifi v: kernel pcie: gen: 2
    speed: 5 GT/s lanes: 1 bus-ID: 09:00.0 chip-ID: 8086:2723 class-ID: 0280
  IF: wlp9s0 state: up mac: <filter>
Bluetooth:
  Device-1: Intel AX200 Bluetooth type: USB driver: btusb v: 0.8 bus-ID: 1-5:4
    chip-ID: 8087:0029 class-ID: e001
  Report: bt-adapter ID: hci0 rfk-id: 1 state: up address: <filter>
Drives:
  Local Storage: total: 3.88 TiB used: 894.75 GiB (22.5%)
  SMART Message: Unable to run smartctl. Root privileges required.
  ID-1: /dev/nvme0n1 maj-min: 259:2 vendor: Samsung
    model: SSD 970 EVO Plus 1TB size: 931.51 GiB block-size: physical: 512 B
    logical: 512 B speed: 31.6 Gb/s lanes: 4 type: SSD serial: <filter>
    rev: 2B2QEXM7 temp: 48.9 C scheme: GPT
  ID-2: /dev/nvme1n1 maj-min: 259:0 model: PCIe SSD size: 953.87 GiB
    block-size: physical: 512 B logical: 512 B speed: 31.6 Gb/s lanes: 4
    type: SSD serial: <filter> rev: ECFM22.6 temp: 33.9 C scheme: GPT
  ID-3: /dev/sda maj-min: 8:0 vendor: Seagate model: ST2000DM008-2FR102
    size: 1.82 TiB block-size: physical: 4096 B logical: 512 B speed: 6.0 Gb/s
    type: HDD rpm: 7200 serial: <filter> rev: 0001 scheme: GPT
  ID-4: /dev/sdb maj-min: 8:16 vendor: Kingston model: SA400S37240G
    size: 223.57 GiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s
    type: SSD serial: <filter> rev: 0107 scheme: GPT
Partition:
  ID-1: / raw-size: 188.89 GiB size: 188.89 GiB (100.00%)
    used: 28.55 GiB (15.1%) fs: btrfs dev: /dev/sdb2 maj-min: 8:18
  ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
    used: 608 KiB (0.2%) fs: vfat dev: /dev/sdb1 maj-min: 8:17
  ID-3: /home raw-size: 188.89 GiB size: 188.89 GiB (100.00%)
    used: 28.55 GiB (15.1%) fs: btrfs dev: /dev/sdb2 maj-min: 8:18
  ID-4: /var/log raw-size: 188.89 GiB size: 188.89 GiB (100.00%)
    used: 28.55 GiB (15.1%) fs: btrfs dev: /dev/sdb2 maj-min: 8:18
  ID-5: /var/tmp raw-size: 188.89 GiB size: 188.89 GiB (100.00%)
    used: 28.55 GiB (15.1%) fs: btrfs dev: /dev/sdb2 maj-min: 8:18
Swap:
  Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default)
  ID-1: swap-1 type: zram size: 31.25 GiB used: 1.5 MiB (0.0%) priority: 100
    dev: /dev/zram0
  ID-2: swap-2 type: partition size: 34.38 GiB used: 0 KiB (0.0%)
    priority: -2 dev: /dev/sdb3 maj-min: 8:19
Sensors:
  System Temperatures: cpu: 58.1 C mobo: N/A gpu: amdgpu temp: 52.0 C
    mem: 56.0 C
  Fan Speeds (RPM): N/A gpu: amdgpu fan: 0
Info:
  Processes: 425 Uptime: 39m wakeups: 0 Memory: 31.25 GiB
  used: 7.26 GiB (23.2%) Init: systemd v: 252 default: graphical
  tool: systemctl Compilers: gcc: 12.2.0 clang: 14.0.6 Packages: pm: pacman
  pkgs: 1985 libs: 557 tools: gnome-software,octopi,pamac,paru Shell: fish
  v: 3.5.1 default: Bash v: 5.1.16 running-in: alacritty inxi: 3.3.23
Garuda (2.6.9-1):
  System install date:     2022-11-11
  Last full system update: 2022-11-12
  Is partially upgraded:   No
  Relevant software:       NetworkManager
  Windows dual boot:       No/Undetected
  Snapshots:               Snapper
  Failed units:

Looking forward to joining this community, and discussing with yalls!

Hi there, welcome to the forum!
I'm not an obs user, so... :wink:.
Anyway, I noticed this package in the AUR.
I think it would replace obs with a patched version.
Maybe give a look at the comments and the linked obs pull request before trying it out...
https://aur.archlinux.org/packages/obs-studio-amf

4 Likes