221 lines
11 KiB
Bash
221 lines
11 KiB
Bash
name='obs-studio-browser'
|
||
version='31.0.3'
|
||
release='1'
|
||
desc='Free and open source software for video recording and live streaming. With everything except service integration.'
|
||
desc_ru='Бесплатная и открытая система для видео- и live-стриминга. Без сервисных интеграций.'
|
||
homepage='https://github.com/obsproject/obs-studio'
|
||
maintainer='Evgeny Hramov <xpamych@yandex.ru>'
|
||
maintainer_ru="Евгений Храмов <xpamych@yandex.ru>"
|
||
architectures=('amd64' 'arm64')
|
||
licenses='GPL-2.0-or-later'
|
||
provides=('obs-studio' 'obs-vst' 'obs-websocket' 'obs-browser')
|
||
conflicts=('obs-studio' 'obs-vst' 'obs-websocket' 'obs-browser' 'obs-linuxbrowser' 'libva-vdpau-driver')
|
||
|
||
deps=(
|
||
'alsa-lib' # Зависимости плагина ALSA и CEF
|
||
'curl' # Зависимости OBS Studio и плагина rtmp-services
|
||
'ffmpeg' # Зависимости OBS Studio и плагина FFmpeg
|
||
'fontconfig' # Зависимости плагина Freetype2
|
||
'freetype' # Зависимости плагина Freetype2
|
||
'gcc' # Зависимости любых бинарных файлов на C++
|
||
'glib2' # Зависимости libobs, плагина PipeWire и CEF
|
||
'glibc' # Зависимости любых бинарных файлов на C
|
||
'jansson' # Зависимости libobs и плагина rtmp-services
|
||
'mesa-libGL' # Зависимости libobs-opengl и OBS Studio
|
||
'pipewire' # Зависимости плагина PipeWire
|
||
'pulseaudio-libs' # Зависимости мониторинга PulseAudio (в libobs) и плагина PulseAudio
|
||
'librist' # Зависимости плагина FFmpeg
|
||
'libva' # Зависимости плагина FFmpeg и плагина QSV
|
||
'libX11' # Зависимости libobs, libobs-opengl, плагина захвата X11, плагина инструментов интерфейса и CEF
|
||
'libxcb' # Зависимости libobs-opengl, плагина захвата X11 и CEF
|
||
'libXcomposite' # Зависимости плагина захвата X11
|
||
'libxkbcommon' # Зависимости libobs, OBS Studio и CEF
|
||
'mbedtls' # Зависимости OBS Studio и плагина Outputs
|
||
'pciutils' # Зависимости плагина FFmpeg
|
||
'qrcodegen' # Зависимости плагина Websocket
|
||
'qt6-qtbase' # Зависимости OBS Studio и любых плагинов интерфейса
|
||
'qt6-qtsvg' # Зависимости OBS Studio
|
||
'qt6-qtwayland' # Необходимо для использования Qt на платформе Wayland
|
||
'rnnoise' # Зависимости фильтра плагина
|
||
'speexdsp' # Зависимости фильтра плагина
|
||
'srt' # Зависимости плагина FFmpeg
|
||
'util-linux' # Зависимости libobs
|
||
'vlc' # Зависимости плагина VLC (проблема с "vlc" вызывает сбой)
|
||
'wayland' # Зависимости libobs, libobs-opengl и CEF
|
||
'x264' # Зависимости плагина X264
|
||
'zlib' # Зависимости libobs
|
||
|
||
# Зависимости CEF
|
||
'at-spi2-core' 'cairo' 'dbus' 'expat' 'libcups' 'libdrm'
|
||
'libXdamage' 'libXext' 'libXfixes' 'libXrandr' 'mesa' 'nspr'
|
||
'nss' 'pango'
|
||
|
||
)
|
||
deps_arch=(
|
||
'alsa-lib' # Зависимости плагина ALSA и CEF
|
||
'curl' # Зависимости OBS Studio и плагина rtmp-services
|
||
'ffmpeg-obs' # Зависимости OBS Studio и плагина FFmpeg
|
||
'fontconfig' # Зависимости плагина Freetype2
|
||
'freetype2' # Зависимости плагина Freetype2
|
||
'gcc-libs' # Зависимости любых бинарных файлов на C++
|
||
'glib2' # Зависимости libobs, плагина PipeWire и CEF
|
||
'glibc' # Зависимости любых бинарных файлов на C
|
||
'jansson' # Зависимости libobs и плагина rtmp-services
|
||
'libgl' # Зависимости libobs-opengl и OBS Studio
|
||
'libpipewire' # Зависимости плагина PipeWire
|
||
'libpulse' # Зависимости мониторинга PulseAudio (в libobs) и плагина PulseAudio
|
||
'librist' # Зависимости плагина FFmpeg
|
||
'libva' # Зависимости плагина FFmpeg и плагина QSV
|
||
'libx11' # Зависимости libobs, libobs-opengl, плагина захвата X11, плагина инструментов интерфейса и CEF
|
||
'libxcb' # Зависимости libobs-opengl, плагина захвата X11 и CEF
|
||
'libxcomposite' # Зависимости плагина захвата X11
|
||
'libxkbcommon' # Зависимости libobs, OBS Studio и CEF
|
||
'mbedtls' # Зависимости OBS Studio и плагина Outputs
|
||
'pciutils' # Зависимости плагина FFmpeg
|
||
'qrcodegencpp-cmake' # Зависимости плагина Websocket
|
||
'qt6-base' # Зависимости OBS Studio и любых плагинов интерфейса
|
||
'qt6-svg' # Зависимости OBS Studio
|
||
'qt6-wayland' # Необходимо для использования Qt на платформе Wayland
|
||
'rnnoise' # Зависимости фильтра плагина
|
||
'speexdsp' # Зависимости фильтра плагина
|
||
'srt' # Зависимости плагина FFmpeg
|
||
'util-linux-libs' # Зависимости libobs
|
||
'vlc-luajit' # Зависимости плагина VLC (проблема с "vlc" вызывает сбой)
|
||
'wayland' # Зависимости libobs, libobs-opengl и CEF
|
||
'x264' # Зависимости плагина X264
|
||
'zlib' # Зависимости libobs
|
||
|
||
# Зависимости CEF
|
||
'at-spi2-core' 'cairo' 'dbus' 'expat' 'libcups' 'libdrm'
|
||
'libxdamage' 'libxext' 'libxfixes' 'libxrandr' 'mesa' 'nspr'
|
||
'nss' 'pango'
|
||
|
||
)
|
||
|
||
build_deps=(
|
||
'asio-devel' # Зависимости плагина Websocket (библиотека только с заголовками)
|
||
'cmake'
|
||
'nv-codec-headers' # Зависимости плагина NVENC (библиотека только с заголовками)
|
||
'pipewire-jack-audio-connection-kit' # Зависимости плагина JACK
|
||
'git'
|
||
'uthash-devel' # Зависимости libobs
|
||
'libdatachannel' # Зависимости плагина WebRTC (вариант NICE, как в Flatpak)
|
||
'libfdk-aac' # Зависимости плагина FDK AAC
|
||
'luajit' # Зависимости плагина Scripting
|
||
'nlohmann-json' # Зависимости плагина Websocket (библиотека только с заголовками)
|
||
'python' # Зависимости плагина Scripting
|
||
'sndio' # Зависимости плагина sndio
|
||
'swig' # Зависимости плагина Scripting
|
||
'systemd-devel' # Зависимости плагина V4L2
|
||
'v4l-utils' # Зависимости плагина V4L2
|
||
'websocketpp-devel' # Зависимости плагина Websocket (библиотека только с заголовками)
|
||
|
||
)
|
||
build_deps_arch=(
|
||
'asio' # Зависимости плагина Websocket (библиотека только с заголовками)
|
||
'cmake'
|
||
'ffnvcodec-headers' # Зависимости плагина NVENC (библиотека только с заголовками)
|
||
'jack' # Зависимости плагина JACK
|
||
'git'
|
||
'uthash' # Зависимости libobs
|
||
'libajantv2' # Зависимости плагинов AJA
|
||
'libdatachannel' # Зависимости плагина WebRTC (вариант NICE, как в Flatpak)
|
||
'libfdk-aac' # Зависимости плагина FDK AAC
|
||
'luajit' # Зависимости плагина Scripting
|
||
'nlohmann-json' # Зависимости плагина Websocket (библиотека только с заголовками)
|
||
'libvpl' # Зависимости плагина QSV
|
||
'python' # Зависимости плагина Scripting
|
||
'sndio' # Зависимости плагина sndio
|
||
'swig' # Зависимости плагина Scripting
|
||
'systemd-libs' # Зависимости плагина V4L2
|
||
'v4l-utils' # Зависимости плагина V4L2
|
||
'websocketpp' # Зависимости плагина Websocket (библиотека только с заголовками)
|
||
)
|
||
|
||
opt_deps=(
|
||
'jack: Поддержка JACK'
|
||
'libfdk-aac: Поддержка кодека FDK AAC'
|
||
'libvpl: Поддержка кодировщика QSV'
|
||
'intel-media-sdk: Поддержка кодировщика QSV (<= Rocket Lake & >= Broadwell)'
|
||
'vpl-gpu-rt: Поддержка кодировщика QSV (>= Alder Lake)'
|
||
'intel-media-driver: Поддержка кодировщика VAAPI (>= Broadwell)'
|
||
'libva-intel-driver: Поддержка кодировщика VAAPI (<= Haswell)'
|
||
'libva-mesa-driver: Поддержка кодировщика VAAPI'
|
||
'swig: Скрипты'
|
||
'luajit: Скрипты Lua'
|
||
'python: Скрипты на Python'
|
||
'sndio: Клиент ввода Sndio'
|
||
'v4l-utils: Поддержка V4L2'
|
||
'systemd-devel: Поддержка V4L2' # Заменено на systemd-devel
|
||
'v4l2loopback-dkms: Вывод виртуальной камеры V4L2'
|
||
'libdatachannel: Поддержка WHIP'
|
||
'libajantv2: Поддержка AJA'
|
||
|
||
)
|
||
opt_deps_arch=(
|
||
'jack: Поддержка JACK'
|
||
'libfdk-aac: Поддержка кодека FDK AAC'
|
||
'libvpl: Поддержка кодировщика QSV'
|
||
'intel-media-sdk: Поддержка кодировщика QSV (<= Rocket Lake & >= Broadwell)'
|
||
'vpl-gpu-rt: Поддержка кодировщика QSV (>= Alder Lake)'
|
||
'intel-media-driver: Поддержка кодировщика VAAPI (>= Broadwell)'
|
||
'libva-intel-driver: Поддержка кодировщика VAAPI (<= Haswell)'
|
||
'libva-mesa-driver: Поддержка кодировщика VAAPI'
|
||
'swig: Скрипты'
|
||
'luajit: Скрипты Lua'
|
||
'python: Скрипты на Python'
|
||
'sndio: Клиент ввода Sndio'
|
||
'v4l-utils: Поддержка V4L2'
|
||
'systemd-libs: Поддержка V4L2'
|
||
'v4l2loopback-dkms: Вывод виртуальной камеры V4L2'
|
||
'libdatachannel: Поддержка WHIP'
|
||
'libajantv2: Поддержка AJA'
|
||
)
|
||
|
||
sources=(
|
||
"git+https://github.com/obsproject/obs-studio.git#tag=version"
|
||
"git+https://github.com/obsproject/obs-browser.git"
|
||
"git+https://github.com/obsproject/obs-websocket.git"
|
||
"https://cdn-fastly.obsproject.com/downloads/cef_binary_6533_linux_x86_64_v3.tar.xz")
|
||
checksums=(
|
||
'SKIP'
|
||
'SKIP'
|
||
'SKIP'
|
||
'SKIP'
|
||
)
|
||
|
||
prepare() {
|
||
cd $srcdir/obs-studio
|
||
git config submodule.plugins/obs-browser.url $srcdir/obs-browser
|
||
git config submodule.plugins/obs-websocket.url $srcdir/obs-websocket
|
||
git -c protocol.file.allow=always submodule update
|
||
|
||
## linux-v4l2: Fix virtual camera start failure
|
||
git cherry-pick -n 12c6febae21f369da50f09d511b54eadc1dc1342
|
||
|
||
## Mark log and titlebar version
|
||
sed -i "s|obs_get_version_string()|\"$version-browser-$release\"|" UI/obs-app.cpp
|
||
}
|
||
|
||
build() {
|
||
cmake -B build -S obs-studio \
|
||
-DCMAKE_BUILD_TYPE=None \
|
||
-DCMAKE_INSTALL_PREFIX=/usr \
|
||
-DCMAKE_INSTALL_LIBDIR=lib \
|
||
-DENABLE_LIBFDK=ON \
|
||
-DENABLE_JACK=ON \
|
||
-DENABLE_SNDIO=ON \
|
||
-DENABLE_BROWSER=ON \
|
||
-DCEF_ROOT_DIR="$srcdir/cef_binary_6533_linux_${CARCH/%_v?/}" \
|
||
-DOBS_VERSION_OVERRIDE="version" \
|
||
-DOBS_COMPILE_DEPRECATION_AS_WARNING=ON \
|
||
-Wno-dev
|
||
|
||
cmake --build build
|
||
}
|
||
|
||
package() {
|
||
DESTDIR="$pkgdir" cmake --install build
|
||
}
|
||
|