Package Details: obs-streamfx-git 0.12.0b299.r0.g8b97c2b2-1

Git Clone URL: https://aur.archlinux.org/obs-streamfx-git.git (read-only, click to copy)
Package Base: obs-streamfx-git
Description: Bring your stream back to life with modern effects!
Upstream URL: https://github.com/Xaymar/obs-StreamFX
Keywords: obs obs-streamfx obs-studio streamfx
Licenses: GPL2
Conflicts: obs-streamfx
Provides: obs-streamfx
Submitter: ThePooN
Maintainer: ThePooN
Last Packager: ThePooN
Votes: 8
Popularity: 0.019210
First Submitted: 2020-04-16 17:44 (UTC)
Last Updated: 2023-07-08 20:56 (UTC)

Required by (0)

Sources (1)

Latest Comments

1 2 3 Next › Last »

dcelasun commented on 2023-08-05 22:38 (UTC)

I'm getting an OBS segfault with this module installed. Any ideas?

ThePooN commented on 2023-07-08 20:57 (UTC)

@adoa The mentioned patch is no longer needed, I simply removed it. Thanks for the report!

@Freso I have applied your Qt 6 fix, thanks! Regarding submodules handling, I don't see any benefit over handling them this way. Re-building here doesn't redownload/extract anything, I can only see maintenance burden 🤔

adoa commented on 2023-05-31 10:08 (UTC)

This package no longer builds correctly. It errors with

==> Starting prepare()...
error: patch failed: source/encoders/encoder-ffmpeg.cpp:1045
error: source/encoders/encoder-ffmpeg.cpp: patch does not apply
error: source/encoders/handlers/handler.cpp: No such file or directory
==> ERROR: A failure occurred in prepare().

Freso commented on 2023-05-25 08:56 (UTC) (edited on 2023-05-25 08:56 (UTC) by Freso)

I made a couple of changes in the -unstable PKGBUILD that you might want to adopt for this one, notably:
https://aur.archlinux.org/cgit/aur.git/commit/?h=obs-streamfx-unstable&id=41bc57befefd512a1784010bef1ece4d1fb3a00e (Qt 6)
https://aur.archlinux.org/cgit/aur.git/commit/?h=obs-streamfx-unstable&id=bb73a21403937fe4f8cc078eb334324657bc51eb (better git submodule handling)

If you have the git repository for this package cloned locally, you can add https://aur.archlinux.org/obs-streamfx-unstable.git as a remote and you should be able to git merge or git cherry-pick to adopt the changes. The commits for obs-streamfx-git are already part of the history of obs-streamfx-unstable.

Bomlex commented on 2023-03-29 17:17 (UTC)

@ThePooN ok thanks for update build successful, it works again with no problems yet

ThePooN commented on 2023-03-29 15:56 (UTC)

Apologies for the delay.

I tried getting it to work with FFmpeg 4.4 instead of FFmpeg 6 as that's what OBS and StreamFX target. Unfortunately, while it built fine, I couldn't go past a muxing error when starting my test recordings.

I instead opted for a patch similar to the one proposed by @iq2luc. Tested and works fine on my end.

iq2luc commented on 2023-03-23 17:30 (UTC) (edited on 2023-04-02 17:44 (UTC) by iq2luc)

Hello @Bomlex, @TiagoSinH,

unfortunately I don't have the time and interest to maintain such a package, I use obs+streamfx very rarely. Personally, I compile obs with streamfx support built-in, this is also what the developer recommends anyway (https://github.com/xaymar/obs-streamfx/wiki/Building). Still, I had to apply the mentioned patch for it to work.

I will upload for you a pre-built Archlinux package, but I'm a bit worried about that because I'm afraid I'll be breaking some policies (for streamfx) with this approach since the official Archlinux package also doesn't come with streamfx built-in. The author of streamfx puts a lot of effort into developing this great software (https://patreon.com/join/xaymar).

Anyway, here is the link: <removed-2023-04-22 20:44:00> If someone tells me I'm breaking some policy, I will remove it.


Edit: Download link removed, package issues fixed by the maintainer (thanks @ThePooN for the quick resolution).

Bomlex commented on 2023-03-18 10:41 (UTC)

can't build, think because of ffmpeg. as some have already written here.

Yes, I would also be interested in how I do it with cmake or patch. what @iq2luc says. because the maintainer probably doesn't care about all that.

TiagoSinH commented on 2023-03-15 22:55 (UTC)

sorry, im a newbie. how do I configure the cmake variables?

iq2luc commented on 2023-03-14 09:41 (UTC) (edited on 2023-03-14 09:41 (UTC) by iq2luc)

Hi adoa, compilation fails because in handler.cpp@12 and encoder-ffmpeg.cpp@1048 it tries to use a constant (AV_CODEC_CAP_INTRA_ONLY) which is not available anymore in ffmpeg 6, it is only available in 4. So there are two options: 1. configure the corresponding CMAKE variables to use ffmpeg4.4 instead of ffmpeg (e.g. FFMPEG_xxx_INCLUDE_DIR=/usr/include/ffmpeg4.4 and FFMPEG_xxx_LIBRARY=/usr/lib64/ffmpeg4.4/libxxx.so), or 2. apply the following patch:

diff --git a/source/encoders/encoder-ffmpeg.cpp b/source/encoders/encoder-ffmpeg.cpp
index 1bfbc32..38d4c30 100644
--- a/source/encoders/encoder-ffmpeg.cpp
+++ b/source/encoders/encoder-ffmpeg.cpp
@@ -1045,7 +1045,9 @@ void ffmpeg_factory::get_defaults2(obs_data_t* settings)
    if (_handler)
        _handler->get_defaults(settings, _avcodec, nullptr, _handler->is_hardware_encoder(this));

-   if ((_avcodec->capabilities & AV_CODEC_CAP_INTRA_ONLY) == 0) {
+   const AVCodecDescriptor *d = avcodec_descriptor_get(_avcodec->id);
+   if((d->type == AVMEDIA_TYPE_VIDEO || d->type == AVMEDIA_TYPE_AUDIO) &&
+       !(d->props & AV_CODEC_PROP_INTRA_ONLY)) {
        obs_data_set_default_int(settings, ST_KEY_KEYFRAMES_INTERVALTYPE, 0);
        obs_data_set_default_double(settings, ST_KEY_KEYFRAMES_INTERVAL_SECONDS, 2.0);
        obs_data_set_default_int(settings, ST_KEY_KEYFRAMES_INTERVAL_FRAMES, 300);
diff --git a/source/encoders/handlers/handler.cpp b/source/encoders/handlers/handler.cpp
index bb109da..01e6d4c 100644
--- a/source/encoders/handlers/handler.cpp
+++ b/source/encoders/handlers/handler.cpp
@@ -9,7 +9,12 @@ using namespace streamfx::encoder::ffmpeg;

 bool handler::handler::has_keyframe_support(ffmpeg_factory* instance)
 {
-   return (instance->get_avcodec()->capabilities & AV_CODEC_CAP_INTRA_ONLY) == 0;
+   const AVCodecDescriptor *d = avcodec_descriptor_get(instance->get_avcodec()->id);
+   if((d->type == AVMEDIA_TYPE_VIDEO || d->type == AVMEDIA_TYPE_AUDIO) &&
+       (d->props & AV_CODEC_PROP_INTRA_ONLY == 0)) {
+   return true;
+   }
+   return false;
 }

 bool handler::handler::is_hardware_encoder(ffmpeg_factory* instance)