Call for testing: OBS-Studio snap


Yep, I made a ffmpeg 4.0 snap (currently classic) that supports nvenc and VA-APPI hardware accelerated decoding and encoding. I also have a prototype that is strictly confined, just waiting on some AppArmor tweaks in snapd so this can be reused.

The ffmpeg snap is 20MB so small enough to bundle in an application snap that requires ffmpeg.


Hi guys,

Sorry for possibly bumping this but I have a question - and I think you guys are the perfect people to ask!

Right now I use Ubuntu 16.04 and I have a script I made that builds FFMpeg 3.4 with NVENC support and builds the latest OBS Studio from the GitHub repo master branch and it works great using NVENC recording in OBS Studio with my GTX 1070. I am wondering - if I use Ubuntu 18.04 with snaps, is it possible for me to just install an FFMpeg snap and an OBS Studio snap and then I can use NVENC recording in OBS Studio with my GTX 1070 - that way, with two snaps, I no longer need to build? Is this possible in Ubuntu 18.04? What about in Ubuntu 16.04 - is this possible?

If this is not currently possible, is it planned for the future?



@ipkpjersi I’ve been working on an ffmpeg 4.0.x snap which can now be confined. The plan is to bundle ffmpeg, that supports accelerated encoding, in the OBS snap.



That is awesome news. I am so glad there is a plan for the OBS snap to come with an NVENC-enabled ffmpeg. Thanks so much.



see either:

or the description of the output of:

snap info obs-studio

there are instructions …


The indicator has no function, no matter how I click it, nothing happens.
OS: Ubuntu 18.04


It won’t run for me.

Ubuntu 18.10
NVIDIA GTX 960 | 396.54.09 from graphics-drivers/dev ppa

cxf@PC:~$ snap run obs-studio
+ case "$SNAP_ARCH" in
+ ARCH=x86_64-linux-gnu
+ OBS=64bit
+ cd /snap/obs-studio/213/usr/bin/64bit
+ exec ./obs
Gtk-Message: Failed to load module "gail"
Gtk-Message: Failed to load module "atk-bridge"
Gtk-Message: Failed to load module "unity-gtk-module"
Qt: Session management error: None of the authentication protocols specified are supported
Attempted path: ../../data/obs-studio/locale/en-US.ini
Attempted path: ../../data/obs-studio/locale.ini
Attempted path: ../../data/obs-studio/themes/Dark.qss
Attempted path: ../../data/obs-studio/license/gplv2.txt
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
Could not initialize OpenGL for RasterGLSurface, reverting to RasterSurface.
info: CPU Name: Intel(R) Core(TM) i5-4460  CPU @ 3.20GHz
info: CPU Speed: 3314.120MHz
info: Physical Cores: 4, Logical Cores: 4
info: Physical Memory: 7872MB Total, 1577MB Free
info: Kernel Version: Linux 4.18.0-11-generic
info: Distribution: "Ubuntu Core" "16"
info: Window System: X11.0, Vendor: The X.Org Foundation, Version: 1.20.1
info: Portable mode: false
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 22.0.3-modified (linux)
info: ---------------------------------
info: ---------------------------------
info: audio settings reset:
	samples per sec: 44100
	speakers:        2
info: ---------------------------------
info: Initializing OpenGL...
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
error: Failed to create OpenGL frame buffer config
error: Failed to create context!
error: device_create (GL) failed
error: Failed to initialize video.  Your GPU may not be supported, or your graphics drivers may need to be updated.
Could not initialize OpenGL for RasterGLSurface, reverting to RasterSurface.
info: Freeing OBS context data
info: == Profiler Results =============================
info: run_program_init: 22791.7 ms
info:  ┣OBSApp::AppInit: 13.942 ms
info:  ┃ ┗OBSApp::InitLocale: 2.862 ms
info:  ┗OBSApp::OBSInit: 2902.96 ms
info:    ┣obs_startup: 21.874 ms
info:    ┗OBSBasic::OBSInit: 33.476 ms
info:      ┣OBSBasic::InitBasicConfig: 0.353 ms
info:      ┣OBSBasic::ResetAudio: 0.174 ms
info:      ┗OBSBasic::ResetVideo: 29.54 ms
info: obs_hotkey_thread(25 ms): min=0.051 ms, median=0.61 ms, max=5.958 ms, 99th percentile=2.427 ms, 100% below 25 ms
info: audio_thread(Audio): min=0.001 ms, median=0.036 ms, max=0.18 ms, 99th percentile=0.056 ms
info: =================================================
info: == Profiler Time Between Calls ==================
info: obs_hotkey_thread(25 ms): min=25.129 ms, median=25.719 ms, max=31.043 ms, 15.2778% within ±2% of 25 ms (0% lower, 84.7222% higher)
info: =================================================
info: Number of memory leaks: 174



Issue: OBS does not detect my blackmagic card.

System configuration
Ubuntu 18.04
RX 570 open source drivers
uname -a Linux deepcool 4.15.0-45-generic #48-Ubuntu SMP Tue Jan 29 16:28:13 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

No issue with blackmagic software install

When I used obs 21 in the ubuntu repo windows capture would display colours incorrectly. But the blackmagic card would have an option in the obs sources. I forget what it was called So I decided to use obs in the snap repo and that problem was resolved only to be replaced with this one.

How do I have my cake and eat it too?


Run the following command and report the output:

env SNAP_CONFINE_DEBUG=1 snap run obs-studio


The snap packaging probably didn’t migrate the configuration to the new snap revision during a snap upgrade/refresh, you should be able to acquire the old configuration at ~/snap/obs-studio/old_revision


It works now and it has NVENC support! Thank you guys!


I can’t use my video capture card due to an apparmor profile issue.

I’ve made sure that the necessary interfaces where all there:
snap connections obs-studio
Interface Plug Slot Notes
alsa obs-studio:alsa :alsa manual
camera obs-studio:camera :camera -
desktop obs-studio:desktop :desktop -
desktop-legacy obs-studio:desktop-legacy :desktop-legacy -
hardware-observe obs-studio:hardware-observe :hardware-observe manual
home obs-studio:home :home -
network obs-studio:network :network -
network-bind obs-studio:network-bind :network-bind -
opengl obs-studio:opengl :opengl -
optical-drive obs-studio:optical-drive :optical-drive -
pulseaudio obs-studio:pulseaudio :pulseaudio -
removable-media obs-studio:removable-media :removable-media manual
unity7 obs-studio:unity7 :unity7 -
wayland obs-studio:wayland :wayland -
x11 obs-studio:x11 :x11 -

However when run try to connect add my capture device as a video capture device, the input is an all black screen, and I get this on dmesg:
audit: type=1400 audit(1555187313.230:2295): apparmor=“DENIED” operation=“open” profile=“snap.obs-studio.obs-studio” name="/sys/devices/virtual/dmi/id/board_vendor" pid=16491 comm=“obs” requested_mask=“r” denied_mask=“r” fsuid=1000 ouid=0

Running the snap with --classic is a workaround, but I think it defeats part of the purpose of using snaps.


Seems like that would be allowed by hardware-observe from this line:


What is your video capture card’s model anyway?


It’s the one that Slimbook sells, it works perfectly under Ubuntu. I’ve used already on previous occasions.


As you can see on my previous post, that is an interface that was present and connected.
OBS does detect the device, It just can’t read from it.