com.obsproject.Studio.json 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329
  1. {
  2. "app-id": "com.obsproject.Studio",
  3. "runtime": "org.kde.Platform",
  4. "runtime-version": "5.15-21.08",
  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. "--own-name=org.kde.StatusNotifierItem-2-2",
  20. "--system-talk-name=org.freedesktop.Avahi",
  21. "--env=VST_PATH=/app/extensions/Plugins/lxvst"
  22. ],
  23. "add-extensions": {
  24. "com.obsproject.Studio.Plugin": {
  25. "directory": "plugins",
  26. "subdirectories": true,
  27. "add-ld-path": "lib",
  28. "merge-dirs": "lib/obs-plugins;share/obs/obs-plugins",
  29. "no-autodownload": true,
  30. "autodelete": true
  31. },
  32. "org.freedesktop.LinuxAudio.Plugins": {
  33. "directory": "extensions/Plugins",
  34. "version": "21.08",
  35. "add-ld-path": "lib",
  36. "merge-dirs": "lxvst",
  37. "subdirectories": true,
  38. "no-autodownload": true
  39. }
  40. },
  41. "cleanup": [
  42. "/lib/pkgconfig",
  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. ],
  56. "sources": [
  57. {
  58. "type": "git",
  59. "url": "https://code.videolan.org/videolan/x264.git",
  60. "commit": "66a5bc1bd1563d8227d5d18440b525a09bcf17ca"
  61. }
  62. ]
  63. },
  64. {
  65. "name": "v4l-utils",
  66. "config-opts": [
  67. "--disable-static",
  68. "--disable-doxygen-doc",
  69. "--disable-libdvbv5",
  70. "--disable-v4l-utils",
  71. "--disable-qv4l2",
  72. "--with-udevdir=/app/lib/udev/"
  73. ],
  74. "cleanup": [
  75. "/include"
  76. ],
  77. "sources": [
  78. {
  79. "type": "archive",
  80. "url": "https://linuxtv.org/downloads/v4l-utils/v4l-utils-1.22.0.tar.bz2",
  81. "sha256": "1069e5d7909bcc563baeaadc3a5c496f0e658524c413cf7818816e37bfcea344"
  82. }
  83. ]
  84. },
  85. {
  86. "name": "nv-codec-headers",
  87. "no-autogen": true,
  88. "make-install-args": [
  89. "PREFIX=/app"
  90. ],
  91. "cleanup": [
  92. "*"
  93. ],
  94. "sources": [
  95. {
  96. "type": "git",
  97. "url": "https://git.videolan.org/git/ffmpeg/nv-codec-headers.git",
  98. "commit": "7a81595786463d1c7efcb03aa85def69fc2cad41",
  99. "tag": "n11.0.10.0"
  100. }
  101. ]
  102. },
  103. {
  104. "name": "srt",
  105. "buildsystem": "cmake-ninja",
  106. "config-opts": [
  107. "-DENABLE_STATIC=OFF",
  108. "-DENABLE_APPS=OFF",
  109. "-DENABLE_LOGGING=OFF"
  110. ],
  111. "cleanup": [
  112. "/include",
  113. "/bin"
  114. ],
  115. "sources": [
  116. {
  117. "type": "git",
  118. "url": "https://github.com/Haivision/srt.git",
  119. "tag": "v1.4.4",
  120. "commit": "8b32f3734ff6af7cc7b0fef272591cb80a2d1aae"
  121. }
  122. ]
  123. },
  124. {
  125. "name": "ffmpeg",
  126. "config-opts": [
  127. "--enable-gpl",
  128. "--enable-shared",
  129. "--disable-static",
  130. "--enable-gnutls",
  131. "--disable-doc",
  132. "--disable-programs",
  133. "--disable-devices",
  134. "--enable-libopus",
  135. "--enable-libvpx",
  136. "--enable-libvorbis",
  137. "--enable-libx264",
  138. "--enable-nvenc",
  139. "--enable-libsrt"
  140. ],
  141. "cleanup": [
  142. "/share/ffmpeg",
  143. "/include"
  144. ],
  145. "sources": [
  146. {
  147. "type": "archive",
  148. "url": "https://www.ffmpeg.org/releases/ffmpeg-4.3.2.tar.xz",
  149. "sha256": "46e4e64f1dd0233cbc0934b9f1c0da676008cad34725113fb7f802cfa84ccddb"
  150. }
  151. ]
  152. },
  153. {
  154. "name": "luajit",
  155. "no-autogen": true,
  156. "cleanup": [
  157. "/bin",
  158. "/include",
  159. "*.a"
  160. ],
  161. "sources": [
  162. {
  163. "type": "git",
  164. "url": "https://luajit.org/git/luajit-2.0.git",
  165. "branch": "v2.1",
  166. "disable-shallow-clone": true
  167. },
  168. {
  169. "type": "shell",
  170. "commands": [
  171. "sed -i 's|/usr/local|/app|' ./Makefile"
  172. ]
  173. }
  174. ]
  175. },
  176. {
  177. "name": "swig",
  178. "config-opts": [
  179. "--without-boost",
  180. "--without-pcre",
  181. "--without-alllang",
  182. "--with-lua=/app/bin/luajit-2.1.0-beta3",
  183. "--with-luaincl=/app/include/luajit-2.1",
  184. "--with-python3"
  185. ],
  186. "cleanup": [
  187. "*"
  188. ],
  189. "sources": [
  190. {
  191. "type": "archive",
  192. "url": "https://prdownloads.sourceforge.net/swig/swig-4.0.2.tar.gz",
  193. "sha256": "d53be9730d8d58a16bf0cbd1f8ac0c0c3e1090573168bfa151b01eb47fa906fc"
  194. }
  195. ]
  196. },
  197. {
  198. "name": "mbedtls",
  199. "buildsystem": "cmake-ninja",
  200. "builddir": true,
  201. "config-opts": [
  202. "-DCMAKE_BUILD_TYPE=Release",
  203. "-DCMAKE_POSITION_INDEPENDENT_CODE=ON",
  204. "-DUSE_SHARED_MBEDTLS_LIBRARY=ON",
  205. "-DUSE_STATIC_MBEDTLS_LIBRARY=OFF",
  206. "-DENABLE_TESTING=OFF",
  207. "-DENABLE_PROGRAMS=OFF"
  208. ],
  209. "cleanup": [
  210. "/include"
  211. ],
  212. "sources": [
  213. {
  214. "type": "git",
  215. "url": "https://github.com/ARMmbed/mbedtls.git",
  216. "commit": "f71e2878084126737cc39083e1e15afc459bd93d",
  217. "tag": "v2.27.0"
  218. }
  219. ]
  220. },
  221. {
  222. "name": "jack2",
  223. "buildsystem": "simple",
  224. "build-commands": [
  225. "./waf configure --prefix=$FLATPAK_DEST",
  226. "./waf build -j $FLATPAK_BUILDER_N_JOBS",
  227. "./waf install"
  228. ],
  229. "cleanup": [
  230. "*"
  231. ],
  232. "sources": [
  233. {
  234. "type": "archive",
  235. "url": "https://github.com/jackaudio/jack2/releases/download/v1.9.14/v1.9.14.tar.gz",
  236. "sha256": "a20a32366780c0061fd58fbb5f09e514ea9b7ce6e53b080a44b11a558a83217c"
  237. }
  238. ]
  239. },
  240. {
  241. "name": "pipewire",
  242. "buildsystem": "meson",
  243. "config-opts": [
  244. "-Daudiotestsrc=disabled",
  245. "-Droc=disabled",
  246. "-Dvideotestsrc=disabled",
  247. "-Dvolume=disabled",
  248. "-Dvulkan=disabled",
  249. "-Ddocs=disabled",
  250. "-Dman=disabled",
  251. "-Dbluez5-codec-ldac=disabled",
  252. "-Dbluez5-codec-aptx=disabled",
  253. "-Dlibcamera=disabled",
  254. "-Dudevrulesdir=/app/lib/udev/rules.d/",
  255. "-Dsession-managers=[]"
  256. ],
  257. "sources": [
  258. {
  259. "type": "git",
  260. "url": "https://gitlab.freedesktop.org/pipewire/pipewire.git",
  261. "tag": "0.3.40",
  262. "commit": "7afd80052b7c49754a13c9ab49c368f95b60e0a7"
  263. }
  264. ]
  265. },
  266. {
  267. "name": "cef",
  268. "buildsystem": "cmake-ninja",
  269. "no-make-install": true,
  270. "make-args": [
  271. "libcef_dll_wrapper"
  272. ],
  273. "build-commands": [
  274. "mkdir -p /app/cef/libcef_dll_wrapper",
  275. "cp -R ./include /app/cef",
  276. "cp -R ./Release /app/cef",
  277. "cp -R ./Resources /app/cef",
  278. "cp -R ./libcef_dll_wrapper/libcef_dll_wrapper.a /app/cef/libcef_dll_wrapper"
  279. ],
  280. "cleanup": [
  281. "*.a",
  282. "./*"
  283. ],
  284. "sources": [
  285. {
  286. "type": "archive",
  287. "url": "https://cdn-fastly.obsproject.com/downloads/cef_binary_4638_linux64.tar.bz2",
  288. "sha256": "ea2b50304cfca48f1619db2e2fe35ca8a54bd14aed373179328a41038c7fb86f"
  289. }
  290. ]
  291. },
  292. {
  293. "name": "obs",
  294. "buildsystem": "cmake-ninja",
  295. "builddir": true,
  296. "config-opts": [
  297. "-DCMAKE_BUILD_TYPE=Release",
  298. "-DENABLE_WAYLAND=ON",
  299. "-DBUILD_BROWSER=ON",
  300. "-DCEF_ROOT_DIR=/app/cef",
  301. "-DUNIX_STRUCTURE=ON",
  302. "-DUSE_XDG=ON",
  303. "-DDISABLE_ALSA=ON",
  304. "-DENABLE_PULSEAUDIO=ON",
  305. "-DWITH_RTMPS=ON"
  306. ],
  307. "secret-opts": [
  308. "-DRESTREAM_CLIENTID=$RESTREAM_CLIENTID",
  309. "-DRESTREAM_HASH=$RESTREAM_HASH",
  310. "-DTWITCH_CLIENTID=$TWITCH_CLIENTID",
  311. "-DTWITCH_HASH=$TWITCH_HASH",
  312. "-DYOUTUBE_CLIENTID=$YOUTUBE_CLIENTID",
  313. "-DYOUTUBE_CLIENTID_HASH=$YOUTUBE_CLIENTID_HASH",
  314. "-DYOUTUBE_SECRET=$YOUTUBE_SECRET",
  315. "-DYOUTUBE_SECRET_HASH=$YOUTUBE_SECRET_HASH"
  316. ],
  317. "post-install": [
  318. "install -d /app/plugins",
  319. "install -d /app/extensions/Plugins"
  320. ],
  321. "sources": [
  322. {
  323. "type": "dir",
  324. "path": "../../"
  325. }
  326. ]
  327. }
  328. ]
  329. }