com.obsproject.Studio.json 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442
  1. {
  2. "app-id": "com.obsproject.Studio",
  3. "runtime": "org.kde.Platform",
  4. "runtime-version": "6.4",
  5. "sdk": "org.kde.Sdk",
  6. "command": "obs",
  7. "finish-args": [
  8. "--socket=wayland",
  9. "--socket=x11",
  10. "--socket=pulseaudio",
  11. "--device=all",
  12. "--share=network",
  13. "--share=ipc",
  14. "--filesystem=xdg-run/pipewire-0",
  15. "--filesystem=host",
  16. "--talk-name=org.kde.StatusNotifierWatcher",
  17. "--talk-name=org.freedesktop.Flatpak",
  18. "--talk-name=org.freedesktop.Notifications",
  19. "--talk-name=org.a11y.Bus",
  20. "--own-name=org.kde.StatusNotifierItem-2-2",
  21. "--system-talk-name=org.freedesktop.Avahi",
  22. "--env=VST_PATH=/app/extensions/Plugins/vst"
  23. ],
  24. "add-extensions": {
  25. "com.obsproject.Studio.Plugin": {
  26. "directory": "plugins",
  27. "subdirectories": true,
  28. "add-ld-path": "lib",
  29. "merge-dirs": "lib/obs-plugins;share/obs/obs-plugins",
  30. "no-autodownload": true,
  31. "autodelete": true
  32. },
  33. "org.freedesktop.LinuxAudio.Plugins": {
  34. "directory": "extensions/Plugins",
  35. "version": "22.08",
  36. "add-ld-path": "lib",
  37. "merge-dirs": "vst",
  38. "subdirectories": true,
  39. "no-autodownload": true
  40. }
  41. },
  42. "cleanup": [
  43. "/share/man",
  44. "*.la"
  45. ],
  46. "modules": [
  47. {
  48. "name": "x264",
  49. "config-opts": [
  50. "--disable-cli",
  51. "--enable-shared"
  52. ],
  53. "cleanup": [
  54. "/include",
  55. "/lib/pkgconfig"
  56. ],
  57. "sources": [
  58. {
  59. "type": "git",
  60. "url": "https://code.videolan.org/videolan/x264.git",
  61. "commit": "b093bbe7d9bc642c8f24067cbdcc73bb43562eab"
  62. }
  63. ]
  64. },
  65. {
  66. "name": "v4l-utils",
  67. "config-opts": [
  68. "--disable-static",
  69. "--disable-doxygen-doc",
  70. "--disable-libdvbv5",
  71. "--disable-v4l-utils",
  72. "--disable-qv4l2",
  73. "--with-udevdir=/app/lib/udev/"
  74. ],
  75. "cleanup": [
  76. "/include",
  77. "/lib/pkgconfig"
  78. ],
  79. "sources": [
  80. {
  81. "type": "archive",
  82. "url": "https://linuxtv.org/downloads/v4l-utils/v4l-utils-1.22.0.tar.bz2",
  83. "sha256": "1069e5d7909bcc563baeaadc3a5c496f0e658524c413cf7818816e37bfcea344"
  84. }
  85. ]
  86. },
  87. {
  88. "name": "nv-codec-headers",
  89. "no-autogen": true,
  90. "make-install-args": [
  91. "PREFIX=/app"
  92. ],
  93. "cleanup": [
  94. "*"
  95. ],
  96. "sources": [
  97. {
  98. "type": "git",
  99. "url": "https://git.videolan.org/git/ffmpeg/nv-codec-headers.git",
  100. "tag": "n11.1.5.1",
  101. "commit": "84483da70d903239d4536763fde8c7e6c4e80784"
  102. }
  103. ]
  104. },
  105. {
  106. "name": "srt",
  107. "buildsystem": "cmake-ninja",
  108. "config-opts": [
  109. "-DENABLE_STATIC=OFF",
  110. "-DENABLE_APPS=OFF",
  111. "-DENABLE_LOGGING=OFF"
  112. ],
  113. "cleanup": [
  114. "/include",
  115. "/lib/pkgconfig",
  116. "/bin"
  117. ],
  118. "sources": [
  119. {
  120. "type": "git",
  121. "url": "https://github.com/Haivision/srt.git",
  122. "tag": "v1.5.1",
  123. "commit": "0bc3b03202b3159fc9b085b3ae6d66ec071c25d6"
  124. }
  125. ]
  126. },
  127. {
  128. "name": "mbedtls",
  129. "buildsystem": "cmake-ninja",
  130. "builddir": true,
  131. "config-opts": [
  132. "-DCMAKE_BUILD_TYPE=Release",
  133. "-DCMAKE_POSITION_INDEPENDENT_CODE=ON",
  134. "-DUSE_SHARED_MBEDTLS_LIBRARY=ON",
  135. "-DUSE_STATIC_MBEDTLS_LIBRARY=OFF",
  136. "-DENABLE_TESTING=OFF",
  137. "-DENABLE_PROGRAMS=OFF"
  138. ],
  139. "cleanup": [
  140. "/include"
  141. ],
  142. "sources": [
  143. {
  144. "type": "git",
  145. "url": "https://github.com/ARMmbed/mbedtls.git",
  146. "commit": "869298bffeea13b205343361b7a7daf2b210e33d",
  147. "tag": "v3.2.1"
  148. }
  149. ]
  150. },
  151. {
  152. "name": "librist",
  153. "buildsystem":"meson",
  154. "builddir": true,
  155. "config-opts": [
  156. "-Duse_mbedtls=true",
  157. "-Dtest=false",
  158. "-Dbuilt_tools=false",
  159. "-Dbuiltin_cjson=true"
  160. ],
  161. "cleanup": [
  162. "/include",
  163. "/lib/pkgconfig"
  164. ],
  165. "sources": [
  166. {
  167. "type": "git",
  168. "url": "https://code.videolan.org/rist/librist.git",
  169. "commit": "809390b3b75a259a704079d0fb4d8f1b5f7fa956"
  170. }
  171. ]
  172. },
  173. {
  174. "name": "aom",
  175. "buildsystem": "cmake-ninja",
  176. "builddir": true,
  177. "config-opts": [
  178. "-DCMAKE_BUILD_TYPE=Release",
  179. "-DBUILD_SHARED_LIBS=ON",
  180. "-DENABLE_DOCS=OFF",
  181. "-DENABLE_EXAMPLES=OFF",
  182. "-DENABLE_TESTDATA=OFF",
  183. "-DENABLE_TESTS=OFF",
  184. "-DENABLE_TOOLS=OFF "
  185. ],
  186. "cleanup": [
  187. "/include",
  188. "/lib/pkgconfig"
  189. ],
  190. "sources": [
  191. {
  192. "type": "git",
  193. "url": "https://aomedia.googlesource.com/aom.git",
  194. "commit": "bcfe6fbfed315f83ee8a95465c654ee8078dbff9",
  195. "tag": "v3.5.0"
  196. }
  197. ]
  198. },
  199. {
  200. "name": "svt-av1",
  201. "buildsystem": "cmake-ninja",
  202. "builddir": true,
  203. "config-opts": [
  204. "-DCMAKE_BUILD_TYPE=Release",
  205. "-DBUILD_SHARED_LIBS=ON",
  206. "-DBUILD_APPS=OFF",
  207. "-DBUILD_DEC=ON",
  208. "-DBUILD_ENC=ON",
  209. "-DBUILD_TESTING=OFF"
  210. ],
  211. "cleanup": [
  212. "/include",
  213. "/lib/pkgconfig"
  214. ],
  215. "sources": [
  216. {
  217. "type": "git",
  218. "url": "https://gitlab.com/AOMediaCodec/SVT-AV1.git",
  219. "tag": "v1.3.0",
  220. "commit": "91b94efb2809e83d9bf041d8575b32f234dfef27"
  221. }
  222. ]
  223. },
  224. {
  225. "name": "ffmpeg",
  226. "config-opts": [
  227. "--enable-gpl",
  228. "--enable-shared",
  229. "--disable-static",
  230. "--enable-gnutls",
  231. "--disable-doc",
  232. "--disable-programs",
  233. "--disable-devices",
  234. "--enable-libopus",
  235. "--enable-libvpx",
  236. "--enable-libvorbis",
  237. "--enable-libx264",
  238. "--enable-nvenc",
  239. "--enable-libsrt",
  240. "--enable-librist",
  241. "--enable-libaom",
  242. "--enable-libsvtav1"
  243. ],
  244. "cleanup": [
  245. "/share/ffmpeg"
  246. ],
  247. "sources": [
  248. {
  249. "type": "git",
  250. "url": "https://github.com/FFmpeg/FFmpeg.git",
  251. "commit": "eacfcbae690f914a4b1b4ad06999f138540cc3d8",
  252. "disable-shallow-clone": true
  253. },
  254. {
  255. "type": "git",
  256. "dest": "obs-deps",
  257. "url": "https://github.com/obsproject/obs-deps.git",
  258. "tag": "2022-11-21",
  259. "commit": "ba56d64e4cbcc0aec4fa0efcef5f5a1e6a1ba91d"
  260. },
  261. {
  262. "type": "shell",
  263. "commands": [
  264. "patch -Np1 -i obs-deps/deps.ffmpeg/patches/FFmpeg/0001-FFmpeg-5.1.2-OBS.patch"
  265. ]
  266. }
  267. ]
  268. },
  269. {
  270. "name": "luajit",
  271. "no-autogen": true,
  272. "cleanup": [
  273. "/bin",
  274. "/include",
  275. "/lib/pkgconfig",
  276. "*.a"
  277. ],
  278. "sources": [
  279. {
  280. "type": "git",
  281. "url": "https://luajit.org/git/luajit-2.0.git",
  282. "commit": "7a0cf5fd4c6c841d0455a51271af4fd4390c7884",
  283. "disable-shallow-clone": true
  284. },
  285. {
  286. "type": "shell",
  287. "commands": [
  288. "sed -i 's|/usr/local|/app|' ./Makefile"
  289. ]
  290. }
  291. ]
  292. },
  293. {
  294. "name": "swig",
  295. "config-opts": [
  296. "--without-boost",
  297. "--without-pcre",
  298. "--without-alllang",
  299. "--with-lua=/app/bin/luajit-2.1.0-beta3",
  300. "--with-luaincl=/app/include/luajit-2.1",
  301. "--with-python3"
  302. ],
  303. "cleanup": [
  304. "*"
  305. ],
  306. "sources": [
  307. {
  308. "type": "archive",
  309. "url": "https://prdownloads.sourceforge.net/swig/swig-4.0.2.tar.gz",
  310. "sha256": "d53be9730d8d58a16bf0cbd1f8ac0c0c3e1090573168bfa151b01eb47fa906fc"
  311. }
  312. ]
  313. },
  314. {
  315. "name": "jack2",
  316. "buildsystem": "simple",
  317. "build-commands": [
  318. "./waf configure --prefix=$FLATPAK_DEST",
  319. "./waf build -j $FLATPAK_BUILDER_N_JOBS",
  320. "./waf install"
  321. ],
  322. "cleanup": [
  323. "*"
  324. ],
  325. "sources": [
  326. {
  327. "type": "archive",
  328. "url": "https://github.com/jackaudio/jack2/releases/download/v1.9.14/v1.9.14.tar.gz",
  329. "sha256": "a20a32366780c0061fd58fbb5f09e514ea9b7ce6e53b080a44b11a558a83217c"
  330. }
  331. ]
  332. },
  333. {
  334. "name": "ntv2",
  335. "buildsystem": "cmake-ninja",
  336. "builddir": true,
  337. "config-opts": [
  338. "-DCMAKE_BUILD_TYPE=Release",
  339. "-DAJA_BUILD_OPENSOURCE=ON",
  340. "-DAJA_BUILD_APPS=OFF",
  341. "-DAJA_INSTALL_HEADERS=ON"
  342. ],
  343. "cleanup": [
  344. "/include"
  345. ],
  346. "sources": [
  347. {
  348. "type": "git",
  349. "url": "https://github.com/aja-video/ntv2.git",
  350. "tag": "v16.2-bugfix5",
  351. "commit": "0acbac70a0b5e6509cca78cfbf69974c73c10db9"
  352. }
  353. ]
  354. },
  355. {
  356. "name": "jansson",
  357. "buildsystem": "cmake-ninja",
  358. "builddir": true,
  359. "config-opts": [
  360. "-DJANSSON_EXAMPLES=OFF",
  361. "-DJANSSON_BUILD_DOCS=OFF",
  362. "-DJANSSON_BUILD_SHARED_LIBS=ON",
  363. "-DJANSSON_WITHOUT_TESTS=ON"
  364. ],
  365. "cleanup": [
  366. "/include",
  367. "/lib/pkgconfig"
  368. ],
  369. "sources": [
  370. {
  371. "type": "git",
  372. "url": "https://github.com/akheron/jansson.git",
  373. "tag": "v2.14",
  374. "commit": "684e18c927e89615c2d501737e90018f4930d6c5"
  375. }
  376. ]
  377. },
  378. {
  379. "name": "cef",
  380. "buildsystem": "cmake-ninja",
  381. "no-make-install": true,
  382. "make-args": [
  383. "libcef_dll_wrapper"
  384. ],
  385. "build-commands": [
  386. "mkdir -p /app/cef/libcef_dll_wrapper",
  387. "cp -R ./include /app/cef",
  388. "cp -R ./Release /app/cef",
  389. "cp -R ./Resources /app/cef",
  390. "cp -R ./libcef_dll_wrapper/libcef_dll_wrapper.a /app/cef/libcef_dll_wrapper"
  391. ],
  392. "cleanup": [
  393. "*"
  394. ],
  395. "sources": [
  396. {
  397. "type": "archive",
  398. "url": "https://cdn-fastly.obsproject.com/downloads/cef_binary_5060_linux64.tar.bz2",
  399. "sha256": "ac4e2a8ebf20700e4e36353e314f876623633dd5b474778a2548bb66bdbea11d"
  400. }
  401. ]
  402. },
  403. {
  404. "name": "obs",
  405. "buildsystem": "cmake-ninja",
  406. "builddir": true,
  407. "config-opts": [
  408. "-DCMAKE_BUILD_TYPE=Release",
  409. "-DENABLE_WAYLAND=ON",
  410. "-DENABLE_BROWSER=ON",
  411. "-DCEF_ROOT_DIR=/app/cef",
  412. "-DUSE_XDG=ON",
  413. "-DENABLE_ALSA=OFF",
  414. "-DENABLE_PULSEAUDIO=ON",
  415. "-DENABLE_JACK=ON",
  416. "-DENABLE_RTMPS=ON",
  417. "-DENABLE_VLC=OFF",
  418. "-DENABLE_AJA=ON"
  419. ],
  420. "secret-opts": [
  421. "-DRESTREAM_CLIENTID=$RESTREAM_CLIENTID",
  422. "-DRESTREAM_HASH=$RESTREAM_HASH",
  423. "-DTWITCH_CLIENTID=$TWITCH_CLIENTID",
  424. "-DTWITCH_HASH=$TWITCH_HASH",
  425. "-DYOUTUBE_CLIENTID=$YOUTUBE_CLIENTID",
  426. "-DYOUTUBE_CLIENTID_HASH=$YOUTUBE_CLIENTID_HASH",
  427. "-DYOUTUBE_SECRET=$YOUTUBE_SECRET",
  428. "-DYOUTUBE_SECRET_HASH=$YOUTUBE_SECRET_HASH"
  429. ],
  430. "post-install": [
  431. "install -d /app/plugins",
  432. "install -d /app/extensions/Plugins"
  433. ],
  434. "sources": [
  435. {
  436. "type": "dir",
  437. "path": "../../"
  438. }
  439. ]
  440. }
  441. ]
  442. }