{ "app-id": "com.obsproject.Studio", "runtime": "org.kde.Platform", "runtime-version": "6.4", "sdk": "org.kde.Sdk", "command": "obs", "finish-args": [ "--socket=wayland", "--socket=x11", "--socket=pulseaudio", "--device=all", "--share=network", "--share=ipc", "--filesystem=xdg-run/pipewire-0", "--filesystem=host", "--talk-name=org.kde.StatusNotifierWatcher", "--talk-name=org.freedesktop.Flatpak", "--talk-name=org.freedesktop.Notifications", "--talk-name=org.a11y.Bus", "--own-name=org.kde.StatusNotifierItem-2-2", "--system-talk-name=org.freedesktop.Avahi", "--env=VST_PATH=/app/extensions/Plugins/vst" ], "add-extensions": { "com.obsproject.Studio.Plugin": { "directory": "plugins", "subdirectories": true, "add-ld-path": "lib", "merge-dirs": "lib/obs-plugins;share/obs/obs-plugins", "no-autodownload": true, "autodelete": true }, "org.freedesktop.LinuxAudio.Plugins": { "directory": "extensions/Plugins", "version": "22.08", "add-ld-path": "lib", "merge-dirs": "vst", "subdirectories": true, "no-autodownload": true } }, "cleanup": [ "/share/man", "*.la" ], "modules": [ { "name": "x264", "config-opts": [ "--disable-cli", "--enable-shared" ], "cleanup": [ "/include", "/lib/pkgconfig" ], "sources": [ { "type": "git", "url": "https://code.videolan.org/videolan/x264.git", "commit": "eaa68fad9e5d201d42fde51665f2d137ae96baf0" } ] }, { "name": "v4l-utils", "config-opts": [ "--disable-static", "--disable-doxygen-doc", "--disable-libdvbv5", "--disable-v4l-utils", "--disable-qv4l2", "--with-udevdir=/app/lib/udev/" ], "cleanup": [ "/include", "/lib/pkgconfig" ], "sources": [ { "type": "archive", "url": "https://linuxtv.org/downloads/v4l-utils/v4l-utils-1.22.0.tar.bz2", "sha256": "1069e5d7909bcc563baeaadc3a5c496f0e658524c413cf7818816e37bfcea344" } ] }, { "name": "nv-codec-headers", "no-autogen": true, "make-install-args": [ "PREFIX=/app" ], "cleanup": [ "*" ], "sources": [ { "type": "git", "url": "https://github.com/FFmpeg/nv-codec-headers.git", "tag": "n12.0.16.0", "commit": "c5e4af74850a616c42d39ed45b9b8568b71bf8bf" } ] }, { "name": "srt", "buildsystem": "cmake-ninja", "config-opts": [ "-DCMAKE_BUILD_TYPE=Release", "-DENABLE_STATIC=OFF", "-DENABLE_APPS=OFF", "-DENABLE_LOGGING=OFF" ], "cleanup": [ "/include", "/lib/pkgconfig", "/bin" ], "sources": [ { "type": "git", "url": "https://github.com/Haivision/srt.git", "tag": "v1.5.1", "commit": "0bc3b03202b3159fc9b085b3ae6d66ec071c25d6" } ] }, { "name": "mbedtls", "buildsystem": "cmake-ninja", "builddir": true, "config-opts": [ "-DCMAKE_BUILD_TYPE=Release", "-DCMAKE_POSITION_INDEPENDENT_CODE=ON", "-DUSE_SHARED_MBEDTLS_LIBRARY=ON", "-DUSE_STATIC_MBEDTLS_LIBRARY=OFF", "-DENABLE_TESTING=OFF", "-DENABLE_PROGRAMS=OFF" ], "cleanup": [ "/include" ], "sources": [ { "type": "git", "url": "https://github.com/ARMmbed/mbedtls.git", "commit": "869298bffeea13b205343361b7a7daf2b210e33d", "tag": "v3.2.1" } ] }, { "name": "librist", "buildsystem":"meson", "builddir": true, "config-opts": [ "-Duse_mbedtls=true", "-Dtest=false", "-Dbuilt_tools=false", "-Dbuiltin_cjson=true" ], "cleanup": [ "/include", "/lib/pkgconfig" ], "sources": [ { "type": "git", "url": "https://code.videolan.org/rist/librist.git", "commit": "809390b3b75a259a704079d0fb4d8f1b5f7fa956" } ] }, { "name": "aom", "buildsystem": "cmake-ninja", "builddir": true, "config-opts": [ "-DCMAKE_BUILD_TYPE=Release", "-DBUILD_SHARED_LIBS=ON", "-DENABLE_DOCS=OFF", "-DENABLE_EXAMPLES=OFF", "-DENABLE_TESTDATA=OFF", "-DENABLE_TESTS=OFF", "-DENABLE_TOOLS=OFF " ], "cleanup": [ "/include", "/lib/pkgconfig" ], "sources": [ { "type": "git", "url": "https://aomedia.googlesource.com/aom.git", "tag": "v3.6.0", "commit": "3c65175b1972da4a1992c1dae2365b48d13f9a8d" } ] }, { "name": "svt-av1", "buildsystem": "cmake-ninja", "builddir": true, "config-opts": [ "-DCMAKE_BUILD_TYPE=Release", "-DBUILD_SHARED_LIBS=ON", "-DBUILD_APPS=OFF", "-DBUILD_DEC=ON", "-DBUILD_ENC=ON", "-DBUILD_TESTING=OFF" ], "cleanup": [ "/include", "/lib/pkgconfig" ], "sources": [ { "type": "git", "url": "https://gitlab.com/AOMediaCodec/SVT-AV1.git", "tag": "v1.4.1", "commit": "018276d714ce65d9b586f6205ee016cbd8d5425d" } ] }, { "name": "ffmpeg", "config-opts": [ "--enable-gpl", "--enable-shared", "--disable-static", "--enable-gnutls", "--disable-doc", "--disable-programs", "--disable-devices", "--enable-libopus", "--enable-libvpx", "--enable-libvorbis", "--enable-libx264", "--enable-nvenc", "--enable-libsrt", "--enable-librist", "--enable-libaom", "--enable-libsvtav1" ], "cleanup": [ "/share/ffmpeg" ], "sources": [ { "type": "git", "url": "https://github.com/FFmpeg/FFmpeg.git", "commit": "a6dc92968a325d331bb6dcf9b3b2248026cd1d6c", "disable-shallow-clone": true }, { "type": "git", "dest": "obs-deps", "url": "https://github.com/obsproject/obs-deps.git", "tag": "2023-04-12", "commit": "24e25fd83e6938cfe3cc5020230430b31ba5df59" }, { "type": "shell", "commands": [ "patch -Np1 -i obs-deps/deps.ffmpeg/patches/FFmpeg/0001-flvdec-handle-unknown.patch", "patch -Np1 -i obs-deps/deps.ffmpeg/patches/FFmpeg/0002-libaomenc-presets.patch" ] } ] }, { "name": "luajit", "no-autogen": true, "cleanup": [ "/bin", "/include", "/lib/pkgconfig", "*.a" ], "sources": [ { "type": "git", "url": "https://luajit.org/git/luajit-2.0.git", "commit": "505e2c03de35e2718eef0d2d3660712e06dadf1f", "disable-shallow-clone": true }, { "type": "shell", "commands": [ "sed -i 's|/usr/local|/app|' ./Makefile" ] } ] }, { "name": "swig", "config-opts": [ "--without-boost", "--without-pcre", "--without-alllang", "--with-lua=/app/bin/luajit-2.1.0-beta3", "--with-luaincl=/app/include/luajit-2.1", "--with-python3" ], "cleanup": [ "*" ], "sources": [ { "type": "archive", "url": "https://prdownloads.sourceforge.net/swig/swig-4.0.2.tar.gz", "sha256": "d53be9730d8d58a16bf0cbd1f8ac0c0c3e1090573168bfa151b01eb47fa906fc" } ] }, { "name": "pipewire", "buildsystem": "meson", "config-opts": [ "-Daudiotestsrc=disabled", "-Droc=disabled", "-Dvideotestsrc=disabled", "-Dvolume=disabled", "-Dvulkan=disabled", "-Ddocs=disabled", "-Dman=disabled", "-Dbluez5-codec-ldac=disabled", "-Dbluez5-codec-aptx=disabled", "-Dlibcamera=disabled", "-Dudevrulesdir=/app/lib/udev/rules.d/", "-Dsession-managers=[]", "-Dtests=disabled", "-Dexamples=disabled", "-Dpw-cat=disabled" ], "cleanup": [ "/bin" ], "sources": [ { "type": "git", "url": "https://github.com/pipewire/pipewire.git", "tag": "0.3.65", "commit": "9558a5d5e0360d8af822431c76ee858a8c7495ac" } ] }, { "name": "ntv2", "buildsystem": "cmake-ninja", "builddir": true, "config-opts": [ "-DCMAKE_BUILD_TYPE=Release", "-DAJA_BUILD_OPENSOURCE=ON", "-DAJA_BUILD_APPS=OFF", "-DAJA_INSTALL_HEADERS=ON" ], "cleanup": [ "/include" ], "sources": [ { "type": "git", "url": "https://github.com/aja-video/ntv2.git", "tag": "v16.2-bugfix5", "commit": "0acbac70a0b5e6509cca78cfbf69974c73c10db9" } ] }, { "name": "jansson", "buildsystem": "cmake-ninja", "builddir": true, "config-opts": [ "-DCMAKE_BUILD_TYPE=Release", "-DJANSSON_EXAMPLES=OFF", "-DJANSSON_BUILD_DOCS=OFF", "-DJANSSON_BUILD_SHARED_LIBS=ON", "-DJANSSON_WITHOUT_TESTS=ON" ], "cleanup": [ "/include", "/lib/pkgconfig" ], "sources": [ { "type": "git", "url": "https://github.com/akheron/jansson.git", "tag": "v2.14", "commit": "684e18c927e89615c2d501737e90018f4930d6c5" } ] }, { "name": "nlohmann-json", "buildsystem": "cmake-ninja", "builddir": true, "config-opts": [ "-DCMAKE_BUILD_TYPE=Release", "-DJSON_BuildTests=OFF" ], "sources": [ { "type": "git", "url": "https://github.com/nlohmann/json.git", "tag": "v3.11.2", "commit": "bc889afb4c5bf1c0d8ee29ef35eaaf4c8bef8a5d" } ] }, { "name": "websocketpp", "buildsystem": "cmake-ninja", "builddir": true, "config-opts": [ "-DCMAKE_BUILD_TYPE=Release", "-DENABLE_CPP11=ON", "-DBUILD_EXAMPLES=OFF", "-DBUILD_TESTS=OFF" ], "sources": [ { "type": "git", "url": "https://github.com/zaphoyd/websocketpp.git", "tag": "0.8.2", "commit": "56123c87598f8b1dd471be83ca841ceae07f95ba" } ] }, { "name": "asio", "buildsystem": "simple", "build-commands": [ "mkdir -p /app/include", "cp asio/include/asio.hpp /app/include/", "cp -R asio/include/asio /app/include/" ], "sources": [ { "type": "git", "url": "https://github.com/chriskohlhoff/asio.git", "tag": "asio-1-12-1", "commit": "b73dc1d2c0ecb9452a87c26544d7f71e24342df6" } ] }, { "name": "cef", "buildsystem": "cmake-ninja", "config-opts": [ "-DCMAKE_BUILD_TYPE=Release" ], "no-make-install": true, "make-args": [ "libcef_dll_wrapper" ], "build-commands": [ "mkdir -p /app/cef/libcef_dll_wrapper", "cp -R ./include /app/cef", "cp -R ./Release /app/cef", "cp -R ./Resources /app/cef", "cp -R ./libcef_dll_wrapper/libcef_dll_wrapper.a /app/cef/libcef_dll_wrapper" ], "cleanup": [ "*" ], "sources": [ { "type": "archive", "url": "https://cdn-fastly.obsproject.com/downloads/cef_binary_5060_linux64.tar.bz2", "sha256": "ac4e2a8ebf20700e4e36353e314f876623633dd5b474778a2548bb66bdbea11d" } ] }, { "name": "obs", "buildsystem": "cmake-ninja", "builddir": true, "config-opts": [ "-DCMAKE_BUILD_TYPE=Release", "-DENABLE_WAYLAND=ON", "-DENABLE_BROWSER=ON", "-DCEF_ROOT_DIR=/app/cef", "-DUSE_XDG=ON", "-DENABLE_ALSA=OFF", "-DENABLE_PULSEAUDIO=ON", "-DENABLE_JACK=ON", "-DENABLE_RTMPS=ON", "-DENABLE_VLC=OFF", "-DENABLE_AJA=ON", "-DENABLE_LIBFDK=ON" ], "secret-opts": [ "-DRESTREAM_CLIENTID=$RESTREAM_CLIENTID", "-DRESTREAM_HASH=$RESTREAM_HASH", "-DTWITCH_CLIENTID=$TWITCH_CLIENTID", "-DTWITCH_HASH=$TWITCH_HASH", "-DYOUTUBE_CLIENTID=$YOUTUBE_CLIENTID", "-DYOUTUBE_CLIENTID_HASH=$YOUTUBE_CLIENTID_HASH", "-DYOUTUBE_SECRET=$YOUTUBE_SECRET", "-DYOUTUBE_SECRET_HASH=$YOUTUBE_SECRET_HASH" ], "post-install": [ "install -d /app/plugins", "install -d /app/extensions/Plugins" ], "sources": [ { "type": "dir", "path": "../../" } ] } ] }