StreamFX is a plugin for OBS® Studio which adds many new effects, filters, sources, transitions and encoders! Be it 3D Transform, Blur, complex Masking, or even custom shaders, you'll find it all here.
These releases are offered to Supporters with (early-)access to releases, and are not meant for Production usage. They are offered with no warranty or guarantees and the StreamFX project and its maintainers explicitly reject any responsibilities for damages or unexpected changes resulting from the use of these releases. Additionally, the project and its maintainers are not interested in any bugs, crashes or freezes found by using these releases, as we have enough automated tests to cover most functionality. Please use the Stable production-ready release if you do not wish to encounter unusual problems.
Maintaining a project like StreamFX requires time and money, of which both are in short supply. If you use any feature of StreamFX, please consider supporting StreamFX via Patreon. Even as little as 1€ per month matters a lot, plus you get a number of benefits!
Please read the Installation Guide and System Requirements!
The installation of StreamFX requires that you follow certain instructions, as well as fulfill a minimum hardware and software requirement. Please ensure that you have read and verified both before asking for help, as many issues can be fixed by reading both of them in their entirety.
Windows |
Linux |
MacOS |
|
---|---|---|---|
OS | Windows 10 (21H2 or newer), Windows 11 | Ubuntu 20.04 (or equivalent) Ubuntu 22.04 (or equivalent) |
MacOS 10.15 (or newer) |
CPU |
Any x86-64-v3 compatible: AMD Excavator Series, Intel Haswell Series or better Required Instruction Sets: x86-64-v2, AVX, BMI1, BMI2, F16C, FMA, MOVBE |
||
Any ARM64-v8.5-A compatible: Apple M1 Series or better | |||
Memory (RAM) | 16 GiB (total) or more | ||
Video (GPU) | DirectX 11 / OpenGL 3 capable, Shader Model 4, 4 GiB VRAM (total) or more | ||
Disk Space | 4 GiB (free) | ||
OBS Studio Version | 29.1.1 | ||
Other | Microsoft Visual C/C++ Redistributable 2017-2022 |
Qt for obs-studio FFmpeg for obs-studio System Libraries must match chosen Ubuntu version! |
A working GPU |
The old two stage system didn't work out quite as I'd have hoped: It didn't communicate the dangers of Testing well, and did not differentiate between different stability levels. To solve this I've adopted a new release process now available in StreamFX, which follows the usual development cycle of Software itself: Alpha -> Beta -> Candidate -> Release. The further right you go in that graph, the more stable software is supposed to be, at the cost of new features and changes. The further left you go, the more up-to-date things will be, but you sacrifice stability and safety.
As Experimental and Unstable features are causing the vast majority of stability issues, we've decided to split the releases by their actual stability. Stable releases will no longer contain Experimental or Unstable features, and Candidate releases will no longer contain Experimental features. This should hopefully speed up the process to a stable release significantly, as we no longer have to worry about the problematic features dragging us down.
For quite some time, Shader Texture Inputs were haunted by ghosts from the past, also known as work-arounds and deprecated code. This resulted in Shader Texture Inputs keeping stale references around and requiring an OBS Studio restart to actually update. Several code modernization cycles later, this is now fixed and Shader Texture Inputs immediately update as expected - while also no longer keeping stale references around, so your Scene Collections are safe again.
This should have gone up in flames way sooner than it did, and yet it was almost completely invisible until OBS Studio 27.1. The bug dates as far back as v0.7 and is pretty severe: The Dynamic Mask filter would increment their own reference count every frame if no Input was selected, and would double-free the Input without clearing the pointer to it. And somehow, this didn't explode until now.
As StreamFX was built on a lot of legacy code that gradually gets replaced with modern code, one modernization introduced a bug that was invisible during testing. StreamFX does not rely on OBS Studio to tell it what Sources and Scenes exist at any moment in time, but instead uses its own hash map to figure out what Sources and Scenes exist. This code was modernized, and incorrectly introduced an additional reference to each Source and Scene - making it impossible to delete anything, and leaking Scene Collections into other scene collections. The bug has been fixed, and should no longer occur.
An oversight in the scripts that generate the binaries resulted in them incorrectly treating C++ code as C. While this didn't seem to cause any obvious problems, it still affected what is actually linked into the binaries, and may have caused completely compatible systems to be treated as incompatible. This has now been fixed, so Ubuntu users should have a better experience.
With OBS Studio 28.0 came the introduction of Loadable Bundles, a variation of MacOS's Bundle format. This format offers a lot of advantages for almost no drawbacks, and StreamFX from now on uses this packaging format on MacOS. As a bonus, FFmpeg Encoders should now be available on MacOS too.
As the packaging and installation method has changed, please follow the Uninstallation guide to clean up any left over old files. Failure to do so will result in undefined behavior and may render OBS Studio entirely unusable. You have been warned!
Investigation into how OBS Studio actually loads plugins revealed a change that had gone under the radar entirely. Since OBS Studio v0.15.0 it is possible to load plugins from %ProgramData%\obs-studio\plugins
, which is a much safer option and now the only supported System-wide installation mode for StreamFX. This functionality has been so hidden that even the official obs-plugintemplate doesn't make use of it. An added bonus is that this should support Steam users of OBS Studio.
As the packaging and installation method has changed, please follow the Uninstallation guide to clean up any left over old files. Failure to do so will result in undefined behavior and may render OBS Studio entirely unusable. You have been warned!
StreamFX can now be installed for individual users, instead of installing for everyone on the system! This is possible thanks to a PR by @abcdw, which allows us to set two environment variable to install and load plugins from %LocalAppData%\Programs\Common\obs-studio\plugins
in addition to all the other locations. These installations will conflict with a System-wide install and as such can't coexist, but may still work with the Steam release of OBS Studio.
As the packaging and installation method has changed, please follow the Uninstallation guide to clean up any left over old files. Failure to do so will result in undefined behavior and may render OBS Studio entirely unusable. You have been warned!
With the release of v0.12 StreamFX now supports three Intermediate Codecs for use by prosumers. These codecs should be significantly faster to decode than comparable non-intermediate codecs, and end up with much wider support by video editing software. To be exact, the following encoders are now available:
All FFmpeg Encoders now support encoding a different framerate than OBS Studio itself is running at. This allows for streaming at 30 FPS while recording at 60 FPS, or even recording at 120 FPS, or other strange things. Note that this is quite literally breaking several specifications, so use at your own risk - if things break, be happy that at least they broke with a noticable impact!
Users on ARM64 devices can now enjoy native ARM64 binaries for less CPU usage, and as such more overall performance on CPU focused tasks. While StreamFX is mostly GPU workloads, some of the internal code does actually do very heavy lifting that benefits from this.
With HDR support in OBS Studio finally being available, it was necessary to finally tackle the issue of sRGB and HDR support once and for all. Many Sources/Filters/Transitions will get proper sRGB and HDR support over future releases to catch up with OBS Studio. You can check the Version Information on the wiki to see if a certain feature supports sRGB or HDR yet.
With OBS Studio 28.0 the old obs-amd-encoder project is finally laid to rest and a new AMD AMF integration is provided. This AMD AMF integration is technically and functionally superior to both the old obs-amd-encoder and FFmpegs AMD AMF integration. All users are urged to migrate as soon as possible, as no guarantees are made for how long this deprecated encoder will remain. Additionally, users on Linux should put their focus on the open Pull Requests for Linux support (1, 2).
With OBS Studio 27.2.4, the SVT-AV1 and AOM-AV1 encoders were integrated into OBS Studio directly. This integration is functionally identical, and as such replaces the StreamFX provided AOM-AV1 encoder. All users are urged to migrate as soon as possible, as the encoder has already been removed from StreamFX.
- cmake: Mark encoder::ffmpeg::nvenc as Stable by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1051
- Migrate FFmpeg to link-time dynamic loader by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1050
- Don't allow installations to continue in errornous situations by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1052
- code: Remove audio encoder registration from FFmpeg Encoders by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1054
- code: Don't crash if there is no encoder instance by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1055
- Install to local Common Files directory, instead of local Program Files directory by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1053
- Add GoPro CineForm for FFmpeg Encoders by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1056
- templates: Pascal uses <> instead of != by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1057
- templates: Fix the remaining uncommitted changes by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1058
- Fix encoder::ffmpeg attempting to create itself again by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1048
- Fix missing FFmpeg Encoders by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1047
- Fix version detection and comparison issue by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1045
- Improve initializer/finalizer code by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1046
- ci: Don't use caches from a different compiler by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1043
- Fix strange issue with github.workspace by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1044
- project: Adjust issue templates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1039
- Update to support OBS Studio 29.1.x and 29.0.x fully by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1042
- util/library: Allow loading of obs_module_t by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1033
- Add support for OBS Browser Source Qt Widgets by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1034
- code: Disable profiling on MacOS by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1038
- code: Initialize worker count to 0 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1021
- project: Adjust clang-tidy configuration by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1024
- obs/source-tracker: Fix occasional leaked source reference by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1026
- ci: Remove build variants that will never be used by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1028
- Speed up builds on CI by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1029
- Clean up unused and duplicate files by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1030
- project: Update README to match latest info by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1031
- Fix license and copyright headers by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1027
- ci: Use https instead of http by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1019
- Improve (and/or fix) MacOS and Ubuntu builds by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1020
- Update Third-Party dependencies by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1013
- cmake: Require generation of PATCH and TWEAK variables by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1016
- updater: Compare all parts of the version number by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1018
- plugin: Only initialize GLAD on OpenGL graphics backend by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/983
- project: Improve templates and UX by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/984
- Code Cleanup by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/985
- gfx/blur/box: Initialize streamfx::gfx::util by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/986
- #818 Don't self-reference when masking is enabled by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/987
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/959
- Fix CI and update Third Party code by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/988
- Implement dynamically scaled Thread Pool by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/933
- Save configuration after ~100ms have passed by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/934
- templates/windows/installer: Don't create Icons in Portable mode by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/936
- templates/windows/installer: Implement
/Portable
installer flag for CLI users by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/935- cmake, templates: Remove code signing integration by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/938
- Don't show path selection for System & User mode by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/937
- Fix some Use-After-Free issues with the D3D11 integration with FFmpeg by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/953
- encoder/ffmpeg: Remove usage of
avcodec_close
by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/952- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/932
- Implement support for Color Spaces by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/968
- Dynamic Mask: Implement sRGB and HDR support, and fix #819 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/967
- cmake: Require nlohmann-json when building the front-end by @rmnvgr in https://github.com/Xaymar/obs-StreamFX/pull/914
- encoder/ffmpeg: Assume extra data and sei are present on first frame by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/919
- encoder/ffmpeg: Add split framerate with integer fractions by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/921
- encoder/ffmpeg: Improve software scaling quality by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/925
- Add support for HDR formats by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/922
- encoder/handler/prores_aw: Don't enable Key-Frame options by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/926
- encoder/handler/dnxhd: Use endian-independent formats by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/927
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/915
- Improve Windows installer with proper System install location, Current User install method, and better UI by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/930
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/928
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/907
- Improve Windows and Mac bundling by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/912
- #881: Texture inputs to Shaders are unstable by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/884
- Deprecate AMD AMF encoders by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/885
- Deprecate AOM AV1 encoder by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/886
- Add missing deprecation notices by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/889
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/867
- cmake: Fix bad version strings by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/887
- project: Updating contributing guidelines by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/894
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/890
- project: Updating contributing guidelines by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/895
- Fix a huge number of warnings by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/893
- third-party: Update obs-studio to 28.0.0 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/901
- code: Fix GCC warning diagnostic pragmas by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/902
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/897
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/817
- Improve GitHub integration by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/841
- project: Fix incorrect tabs in YAML by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/842
- Improve metadata generation by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/837
- cmake: Add support for Qt6 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/866
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/832
- Further improve CI and Github integration by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/843
- ci: Remove Code Signing with self-signed certificate by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/873
- Fix compilation errors with Debug and/or Profiling by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/876
- Deduplicate CI build pipeline by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/874
- Remove Auto-Dependency System by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/870
- Working on source code [Refactor] by @GermanAizek in https://github.com/Xaymar/obs-StreamFX/pull/836
- obs/gs/effect: Revert #836 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/880
- Update libOBS to 28.0.0-rc1 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/878
- Improve CMake build script(s) by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/813
- ci: Add GCC back to the build by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/820
- Add ClangCL, and update Windows SDK requirements by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/821
- ci: Allow failures for experimental CI tests by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/824
- ci: Use specific LLVM/Clang versions by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/825
- project: Add support for multi stage release cycles by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/823
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/778
- ffmpeg-encoder/dnxhr: Added Avid DNxHR Encoder based on FFmpeg by @IceStormNG in https://github.com/Xaymar/obs-StreamFX/pull/784
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/786
- Refactor C++ wrappers for libOBS by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/806
These releases are offered to Supporters with (early-)access to releases, and are not meant for Production usage. They are offered with no warranty or guarantees and the StreamFX project and its maintainers explicitly reject any responsibilities for damages or unexpected changes resulting from the use of these releases. Additionally, the project and its maintainers are not interested in any bugs, crashes or freezes found by using these releases, as we have enough automated tests to cover most functionality. Please use the Stable production-ready release if you do not wish to encounter unusual problems.
Maintaining a project like StreamFX requires time and money, of which both are in short supply. If you use any feature of StreamFX, please consider supporting StreamFX via Patreon. Even as little as 1€ per month matters a lot, plus you get a number of benefits!
Please read the Installation Guide and System Requirements!
The installation of StreamFX requires that you follow certain instructions, as well as fulfill a minimum hardware and software requirement. Please ensure that you have read and verified both before asking for help, as many issues can be fixed by reading both of them in their entirety.
Windows |
Linux |
MacOS |
|
---|---|---|---|
OS | Windows 10 (21H2 or newer), Windows 11 | Ubuntu 20.04 (or equivalent) Ubuntu 22.04 (or equivalent) |
MacOS 10.15 (or newer) |
CPU |
Any x86-64-v3 compatible: AMD Excavator Series, Intel Haswell Series or better Required Instruction Sets: x86-64-v2, AVX, BMI1, BMI2, F16C, FMA, MOVBE |
||
Any ARM64-v8.5-A compatible: Apple M1 Series or better | |||
Memory (RAM) | 16 GiB (total) or more | ||
Video (GPU) | DirectX 11 / OpenGL 3 capable, Shader Model 4, 4 GiB VRAM (total) or more | ||
Disk Space | 4 GiB (free) | ||
OBS Studio Version | 29.1.1 | ||
Other | Microsoft Visual C/C++ Redistributable 2017-2022 |
Qt for obs-studio FFmpeg for obs-studio System Libraries must match chosen Ubuntu version! |
A working GPU |
The old two stage system didn't work out quite as I'd have hoped: It didn't communicate the dangers of Testing well, and did not differentiate between different stability levels. To solve this I've adopted a new release process now available in StreamFX, which follows the usual development cycle of Software itself: Alpha -> Beta -> Candidate -> Release. The further right you go in that graph, the more stable software is supposed to be, at the cost of new features and changes. The further left you go, the more up-to-date things will be, but you sacrifice stability and safety.
As Experimental and Unstable features are causing the vast majority of stability issues, we've decided to split the releases by their actual stability. Stable releases will no longer contain Experimental or Unstable features, and Candidate releases will no longer contain Experimental features. This should hopefully speed up the process to a stable release significantly, as we no longer have to worry about the problematic features dragging us down.
For quite some time, Shader Texture Inputs were haunted by ghosts from the past, also known as work-arounds and deprecated code. This resulted in Shader Texture Inputs keeping stale references around and requiring an OBS Studio restart to actually update. Several code modernization cycles later, this is now fixed and Shader Texture Inputs immediately update as expected - while also no longer keeping stale references around, so your Scene Collections are safe again.
This should have gone up in flames way sooner than it did, and yet it was almost completely invisible until OBS Studio 27.1. The bug dates as far back as v0.7 and is pretty severe: The Dynamic Mask filter would increment their own reference count every frame if no Input was selected, and would double-free the Input without clearing the pointer to it. And somehow, this didn't explode until now.
As StreamFX was built on a lot of legacy code that gradually gets replaced with modern code, one modernization introduced a bug that was invisible during testing. StreamFX does not rely on OBS Studio to tell it what Sources and Scenes exist at any moment in time, but instead uses its own hash map to figure out what Sources and Scenes exist. This code was modernized, and incorrectly introduced an additional reference to each Source and Scene - making it impossible to delete anything, and leaking Scene Collections into other scene collections. The bug has been fixed, and should no longer occur.
An oversight in the scripts that generate the binaries resulted in them incorrectly treating C++ code as C. While this didn't seem to cause any obvious problems, it still affected what is actually linked into the binaries, and may have caused completely compatible systems to be treated as incompatible. This has now been fixed, so Ubuntu users should have a better experience.
With OBS Studio 28.0 came the introduction of Loadable Bundles, a variation of MacOS's Bundle format. This format offers a lot of advantages for almost no drawbacks, and StreamFX from now on uses this packaging format on MacOS. As a bonus, FFmpeg Encoders should now be available on MacOS too.
As the packaging and installation method has changed, please follow the Uninstallation guide to clean up any left over old files. Failure to do so will result in undefined behavior and may render OBS Studio entirely unusable. You have been warned!
Investigation into how OBS Studio actually loads plugins revealed a change that had gone under the radar entirely. Since OBS Studio v0.15.0 it is possible to load plugins from %ProgramData%\obs-studio\plugins
, which is a much safer option and now the only supported System-wide installation mode for StreamFX. This functionality has been so hidden that even the official obs-plugintemplate doesn't make use of it. An added bonus is that this should support Steam users of OBS Studio.
As the packaging and installation method has changed, please follow the Uninstallation guide to clean up any left over old files. Failure to do so will result in undefined behavior and may render OBS Studio entirely unusable. You have been warned!
StreamFX can now be installed for individual users, instead of installing for everyone on the system! This is possible thanks to a PR by @abcdw, which allows us to set two environment variable to install and load plugins from %LocalAppData%\Programs\obs-studio\plugins
in addition to all the other locations. These installations will conflict with a System-wide install and as such can't coexist, but may still work with the Steam release of OBS Studio.
As the packaging and installation method has changed, please follow the Uninstallation guide to clean up any left over old files. Failure to do so will result in undefined behavior and may render OBS Studio entirely unusable. You have been warned!
A new contender for the visually lossless intermediate codec arrives: Avid DNxHR! Thanks to work done by @IceStormNG, it is now possible to use this encoder without configuration trickery and directly configure it with a proper user interface. As this encoder is based on the real codec specification, it may perform better than the Apple ProRes encoder while being way more compatible with video editing software.
All FFmpeg Encoders now support encoding a different framerate than OBS Studio itself is running at. This allows for streaming at 30 FPS while recording at 60 FPS, or even recording at 120 FPS, or other strange things. Note that this is quite literally breaking several specifications, so use at your own risk - if things break, be happy that at least they broke with a noticable impact!
Users on ARM64 devices can now enjoy native ARM64 binaries for less CPU usage, and as such more overall performance on CPU focused tasks. While StreamFX is mostly GPU workloads, some of the internal code does actually do very heavy lifting that benefits from this.
With HDR support in OBS Studio finally being available, it was necessary to finally tackle the issue of sRGB and HDR support once and for all. Many Sources/Filters/Transitions will get proper sRGB and HDR support over future releases to catch up with OBS Studio. You can check the Version Information on the wiki to see if a certain feature supports sRGB or HDR yet.
With OBS Studio 28.0 the old obs-amd-encoder project is finally laid to rest and a new AMD AMF integration is provided. This AMD AMF integration is technically and functionally superior to both the old obs-amd-encoder and FFmpegs AMD AMF integration. All users are urged to migrate as soon as possible, as no guarantees are made for how long this deprecated encoder will remain. Additionally, users on Linux should put their focus on the open Pull Requests for Linux support (1, 2).
With OBS Studio 27.2.4, the SVT-AV1 and AOM-AV1 encoders were integrated into OBS Studio directly. This integration is functionally identical, and as such replaces the StreamFX provided AOM-AV1 encoder. All users are urged to migrate as soon as possible, as no guaratees are made for how long this deprecated encoder will remain.
- Fix encoder::ffmpeg attempting to create itself again by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1048
- Fix missing FFmpeg Encoders by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1047
- Fix version detection and comparison issue by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1045
- Improve initializer/finalizer code by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1046
- ci: Don't use caches from a different compiler by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1043
- Fix strange issue with github.workspace by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1044
- project: Adjust issue templates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1039
- Update to support OBS Studio 29.1.x and 29.0.x fully by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1042
- util/library: Allow loading of obs_module_t by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1033
- Add support for OBS Browser Source Qt Widgets by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1034
- code: Disable profiling on MacOS by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1038
- code: Initialize worker count to 0 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1021
- project: Adjust clang-tidy configuration by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1024
- obs/source-tracker: Fix occasional leaked source reference by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1026
- ci: Remove build variants that will never be used by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1028
- Speed up builds on CI by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1029
- Clean up unused and duplicate files by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1030
- project: Update README to match latest info by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1031
- Fix license and copyright headers by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1027
- ci: Use https instead of http by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1019
- Improve (and/or fix) MacOS and Ubuntu builds by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1020
- Update Third-Party dependencies by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1013
- cmake: Require generation of PATCH and TWEAK variables by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1016
- updater: Compare all parts of the version number by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1018
- plugin: Only initialize GLAD on OpenGL graphics backend by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/983
- project: Improve templates and UX by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/984
- Code Cleanup by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/985
- gfx/blur/box: Initialize streamfx::gfx::util by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/986
- #818 Don't self-reference when masking is enabled by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/987
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/959
- Fix CI and update Third Party code by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/988
- Implement dynamically scaled Thread Pool by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/933
- Save configuration after ~100ms have passed by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/934
- templates/windows/installer: Don't create Icons in Portable mode by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/936
- templates/windows/installer: Implement
/Portable
installer flag for CLI users by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/935- cmake, templates: Remove code signing integration by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/938
- Don't show path selection for System & User mode by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/937
- Fix some Use-After-Free issues with the D3D11 integration with FFmpeg by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/953
- encoder/ffmpeg: Remove usage of
avcodec_close
by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/952- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/932
- Implement support for Color Spaces by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/968
- Dynamic Mask: Implement sRGB and HDR support, and fix #819 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/967
- cmake: Require nlohmann-json when building the front-end by @rmnvgr in https://github.com/Xaymar/obs-StreamFX/pull/914
- encoder/ffmpeg: Assume extra data and sei are present on first frame by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/919
- encoder/ffmpeg: Add split framerate with integer fractions by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/921
- encoder/ffmpeg: Improve software scaling quality by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/925
- Add support for HDR formats by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/922
- encoder/handler/prores_aw: Don't enable Key-Frame options by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/926
- encoder/handler/dnxhd: Use endian-independent formats by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/927
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/915
- Improve Windows installer with proper System install location, Current User install method, and better UI by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/930
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/928
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/907
- Improve Windows and Mac bundling by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/912
- #881: Texture inputs to Shaders are unstable by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/884
- Deprecate AMD AMF encoders by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/885
- Deprecate AOM AV1 encoder by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/886
- Add missing deprecation notices by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/889
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/867
- cmake: Fix bad version strings by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/887
- project: Updating contributing guidelines by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/894
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/890
- project: Updating contributing guidelines by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/895
- Fix a huge number of warnings by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/893
- third-party: Update obs-studio to 28.0.0 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/901
- code: Fix GCC warning diagnostic pragmas by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/902
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/897
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/817
- Improve GitHub integration by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/841
- project: Fix incorrect tabs in YAML by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/842
- Improve metadata generation by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/837
- cmake: Add support for Qt6 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/866
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/832
- Further improve CI and Github integration by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/843
- ci: Remove Code Signing with self-signed certificate by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/873
- Fix compilation errors with Debug and/or Profiling by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/876
- Deduplicate CI build pipeline by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/874
- Remove Auto-Dependency System by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/870
- Working on source code [Refactor] by @GermanAizek in https://github.com/Xaymar/obs-StreamFX/pull/836
- obs/gs/effect: Revert #836 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/880
- Update libOBS to 28.0.0-rc1 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/878
- Improve CMake build script(s) by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/813
- ci: Add GCC back to the build by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/820
- Add ClangCL, and update Windows SDK requirements by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/821
- ci: Allow failures for experimental CI tests by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/824
- ci: Use specific LLVM/Clang versions by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/825
- project: Add support for multi stage release cycles by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/823
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/778
- ffmpeg-encoder/dnxhr: Added Avid DNxHR Encoder based on FFmpeg by @IceStormNG in https://github.com/Xaymar/obs-StreamFX/pull/784
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/786
- Refactor C++ wrappers for libOBS by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/806
These releases are offered to Supporters with (early-)access to releases, and are not meant for Production usage. They are offered with no warranty or guarantees and the StreamFX project and its maintainers explicitly reject any responsibilities for damages or unexpected changes resulting from the use of these releases. Additionally, the project and its maintainers are not interested in any bugs, crashes or freezes found by using these releases, as we have enough automated tests to cover most functionality. Please use the Stable production-ready release if you do not wish to encounter unusual problems.
Maintaining a project like StreamFX requires time and money, of which both are in short supply. If you use any feature of StreamFX, please consider supporting StreamFX via Patreon. Even as little as 1€ per month matters a lot, plus you get a number of benefits!
Please read the Installation Guide and System Requirements!
The installation of StreamFX requires that you follow certain instructions, as well as fulfill a minimum hardware and software requirement. Please ensure that you have read and verified both before asking for help, as many issues can be fixed by reading both of them in their entirety.
Windows |
Linux |
MacOS |
|
---|---|---|---|
OS | Windows 10 (21H2 or newer), Windows 11 | Ubuntu 20.04 (or equivalent) Ubuntu 22.04 (or equivalent) |
MacOS 10.15 (or newer) |
CPU |
Any x86-64-v3 compatible: AMD Excavator Series, Intel Haswell Series or better Required Instruction Sets: x86-64-v2, AVX, BMI1, BMI2, F16C, FMA, MOVBE |
||
Any ARM64-v8.5-A compatible: Apple M1 Series or better | |||
Memory (RAM) | 16 GiB (total) or more | ||
Video (GPU) | DirectX 11 / OpenGL 3 capable, Shader Model 4, 4 GiB VRAM (total) or more | ||
Disk Space | 4 GiB (free) | ||
OBS Studio Version | 29.1.1 | ||
Other | Microsoft Visual C/C++ Redistributable 2017-2022 |
Qt for obs-studio FFmpeg for obs-studio System Libraries must match chosen Ubuntu version! |
A working GPU |
The old two stage system didn't work out quite as I'd have hoped: It didn't communicate the dangers of Testing well, and did not differentiate between different stability levels. To solve this I've adopted a new release process now available in StreamFX, which follows the usual development cycle of Software itself: Alpha -> Beta -> Candidate -> Release. The further right you go in that graph, the more stable software is supposed to be, at the cost of new features and changes. The further left you go, the more up-to-date things will be, but you sacrifice stability and safety.
As Experimental and Unstable features are causing the vast majority of stability issues, we've decided to split the releases by their actual stability. Stable releases will no longer contain Experimental or Unstable features, and Candidate releases will no longer contain Experimental features. This should hopefully speed up the process to a stable release significantly, as we no longer have to worry about the problematic features dragging us down.
For quite some time, Shader Texture Inputs were haunted by ghosts from the past, also known as work-arounds and deprecated code. This resulted in Shader Texture Inputs keeping stale references around and requiring an OBS Studio restart to actually update. Several code modernization cycles later, this is now fixed and Shader Texture Inputs immediately update as expected - while also no longer keeping stale references around, so your Scene Collections are safe again.
This should have gone up in flames way sooner than it did, and yet it was almost completely invisible until OBS Studio 27.1. The bug dates as far back as v0.7 and is pretty severe: The Dynamic Mask filter would increment their own reference count every frame if no Input was selected, and would double-free the Input without clearing the pointer to it. And somehow, this didn't explode until now.
As StreamFX was built on a lot of legacy code that gradually gets replaced with modern code, one modernization introduced a bug that was invisible during testing. StreamFX does not rely on OBS Studio to tell it what Sources and Scenes exist at any moment in time, but instead uses its own hash map to figure out what Sources and Scenes exist. This code was modernized, and incorrectly introduced an additional reference to each Source and Scene - making it impossible to delete anything, and leaking Scene Collections into other scene collections. The bug has been fixed, and should no longer occur.
An oversight in the scripts that generate the binaries resulted in them incorrectly treating C++ code as C. While this didn't seem to cause any obvious problems, it still affected what is actually linked into the binaries, and may have caused completely compatible systems to be treated as incompatible. This has now been fixed, so Ubuntu users should have a better experience.
With OBS Studio 28.0 came the introduction of Loadable Bundles, a variation of MacOS's Bundle format. This format offers a lot of advantages for almost no drawbacks, and StreamFX from now on uses this packaging format on MacOS. As a bonus, FFmpeg Encoders should now be available on MacOS too.
As the packaging and installation method has changed, please follow the Uninstallation guide to clean up any left over old files. Failure to do so will result in undefined behavior and may render OBS Studio entirely unusable. You have been warned!
Investigation into how OBS Studio actually loads plugins revealed a change that had gone under the radar entirely. Since OBS Studio v0.15.0 it is possible to load plugins from %ProgramData%\obs-studio\plugins
, which is a much safer option and now the only supported System-wide installation mode for StreamFX. This functionality has been so hidden that even the official obs-plugintemplate doesn't make use of it. An added bonus is that this should support Steam users of OBS Studio.
As the packaging and installation method has changed, please follow the Uninstallation guide to clean up any left over old files. Failure to do so will result in undefined behavior and may render OBS Studio entirely unusable. You have been warned!
StreamFX can now be installed for individual users, instead of installing for everyone on the system! This is possible thanks to a PR by @abcdw, which allows us to set two environment variable to install and load plugins from %LocalAppData%\Programs\obs-studio\plugins
in addition to all the other locations. These installations will conflict with a System-wide install and as such can't coexist, but may still work with the Steam release of OBS Studio.
As the packaging and installation method has changed, please follow the Uninstallation guide to clean up any left over old files. Failure to do so will result in undefined behavior and may render OBS Studio entirely unusable. You have been warned!
A new contender for the visually lossless intermediate codec arrives: Avid DNxHR! Thanks to work done by @IceStormNG, it is now possible to use this encoder without configuration trickery and directly configure it with a proper user interface. As this encoder is based on the real codec specification, it may perform better than the Apple ProRes encoder while being way more compatible with video editing software.
All FFmpeg Encoders now support encoding a different framerate than OBS Studio itself is running at. This allows for streaming at 30 FPS while recording at 60 FPS, or even recording at 120 FPS, or other strange things. Note that this is quite literally breaking several specifications, so use at your own risk - if things break, be happy that at least they broke with a noticable impact!
Users on ARM64 devices can now enjoy native ARM64 binaries for less CPU usage, and as such more overall performance on CPU focused tasks. While StreamFX is mostly GPU workloads, some of the internal code does actually do very heavy lifting that benefits from this.
With HDR support in OBS Studio finally being available, it was necessary to finally tackle the issue of sRGB and HDR support once and for all. Many Sources/Filters/Transitions will get proper sRGB and HDR support over future releases to catch up with OBS Studio. You can check the Version Information on the wiki to see if a certain feature supports sRGB or HDR yet.
With OBS Studio 28.0 the old obs-amd-encoder project is finally laid to rest and a new AMD AMF integration is provided. This AMD AMF integration is technically and functionally superior to both the old obs-amd-encoder and FFmpegs AMD AMF integration. All users are urged to migrate as soon as possible, as no guarantees are made for how long this deprecated encoder will remain. Additionally, users on Linux should put their focus on the open Pull Requests for Linux support (1, 2).
With OBS Studio 27.2.4, the SVT-AV1 and AOM-AV1 encoders were integrated into OBS Studio directly. This integration is functionally identical, and as such replaces the StreamFX provided AOM-AV1 encoder. All users are urged to migrate as soon as possible, as no guaratees are made for how long this deprecated encoder will remain.
- Fix missing FFmpeg Encoders by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1047
- Fix version detection and comparison issue by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1045
- Improve initializer/finalizer code by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1046
- ci: Don't use caches from a different compiler by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1043
- Fix strange issue with github.workspace by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1044
- project: Adjust issue templates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1039
- Update to support OBS Studio 29.1.x and 29.0.x fully by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1042
- util/library: Allow loading of obs_module_t by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1033
- Add support for OBS Browser Source Qt Widgets by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1034
- code: Disable profiling on MacOS by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1038
- code: Initialize worker count to 0 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1021
- project: Adjust clang-tidy configuration by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1024
- obs/source-tracker: Fix occasional leaked source reference by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1026
- ci: Remove build variants that will never be used by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1028
- Speed up builds on CI by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1029
- Clean up unused and duplicate files by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1030
- project: Update README to match latest info by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1031
- Fix license and copyright headers by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1027
- ci: Use https instead of http by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1019
- Improve (and/or fix) MacOS and Ubuntu builds by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1020
- Update Third-Party dependencies by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1013
- cmake: Require generation of PATCH and TWEAK variables by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1016
- updater: Compare all parts of the version number by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1018
- plugin: Only initialize GLAD on OpenGL graphics backend by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/983
- project: Improve templates and UX by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/984
- Code Cleanup by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/985
- gfx/blur/box: Initialize streamfx::gfx::util by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/986
- #818 Don't self-reference when masking is enabled by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/987
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/959
- Fix CI and update Third Party code by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/988
- Implement dynamically scaled Thread Pool by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/933
- Save configuration after ~100ms have passed by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/934
- templates/windows/installer: Don't create Icons in Portable mode by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/936
- templates/windows/installer: Implement
/Portable
installer flag for CLI users by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/935- cmake, templates: Remove code signing integration by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/938
- Don't show path selection for System & User mode by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/937
- Fix some Use-After-Free issues with the D3D11 integration with FFmpeg by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/953
- encoder/ffmpeg: Remove usage of
avcodec_close
by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/952- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/932
- Implement support for Color Spaces by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/968
- Dynamic Mask: Implement sRGB and HDR support, and fix #819 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/967
- cmake: Require nlohmann-json when building the front-end by @rmnvgr in https://github.com/Xaymar/obs-StreamFX/pull/914
- encoder/ffmpeg: Assume extra data and sei are present on first frame by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/919
- encoder/ffmpeg: Add split framerate with integer fractions by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/921
- encoder/ffmpeg: Improve software scaling quality by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/925
- Add support for HDR formats by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/922
- encoder/handler/prores_aw: Don't enable Key-Frame options by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/926
- encoder/handler/dnxhd: Use endian-independent formats by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/927
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/915
- Improve Windows installer with proper System install location, Current User install method, and better UI by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/930
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/928
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/907
- Improve Windows and Mac bundling by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/912
- #881: Texture inputs to Shaders are unstable by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/884
- Deprecate AMD AMF encoders by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/885
- Deprecate AOM AV1 encoder by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/886
- Add missing deprecation notices by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/889
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/867
- cmake: Fix bad version strings by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/887
- project: Updating contributing guidelines by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/894
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/890
- project: Updating contributing guidelines by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/895
- Fix a huge number of warnings by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/893
- third-party: Update obs-studio to 28.0.0 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/901
- code: Fix GCC warning diagnostic pragmas by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/902
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/897
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/817
- Improve GitHub integration by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/841
- project: Fix incorrect tabs in YAML by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/842
- Improve metadata generation by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/837
- cmake: Add support for Qt6 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/866
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/832
- Further improve CI and Github integration by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/843
- ci: Remove Code Signing with self-signed certificate by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/873
- Fix compilation errors with Debug and/or Profiling by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/876
- Deduplicate CI build pipeline by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/874
- Remove Auto-Dependency System by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/870
- Working on source code [Refactor] by @GermanAizek in https://github.com/Xaymar/obs-StreamFX/pull/836
- obs/gs/effect: Revert #836 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/880
- Update libOBS to 28.0.0-rc1 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/878
- Improve CMake build script(s) by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/813
- ci: Add GCC back to the build by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/820
- Add ClangCL, and update Windows SDK requirements by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/821
- ci: Allow failures for experimental CI tests by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/824
- ci: Use specific LLVM/Clang versions by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/825
- project: Add support for multi stage release cycles by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/823
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/778
- ffmpeg-encoder/dnxhr: Added Avid DNxHR Encoder based on FFmpeg by @IceStormNG in https://github.com/Xaymar/obs-StreamFX/pull/784
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/786
- Refactor C++ wrappers for libOBS by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/806
These releases are offered to Supporters with (early-)access to releases, and are not meant for Production usage. They are offered with no warranty or guarantees and the StreamFX project and its maintainers explicitly reject any responsibilities for damages or unexpected changes resulting from the use of these releases. Additionally, the project and its maintainers are not interested in any bugs, crashes or freezes found by using these releases, as we have enough automated tests to cover most functionality. Please use the Stable production-ready release if you do not wish to encounter unusual problems.
Maintaining a project like StreamFX requires time and money, of which both are in short supply. If you use any feature of StreamFX, please consider supporting StreamFX via Patreon. Even as little as 1€ per month matters a lot, plus you get a number of benefits!
Please read the Installation Guide and System Requirements!
The installation of StreamFX requires that you follow certain instructions, as well as fulfill a minimum hardware and software requirement. Please ensure that you have read and verified both before asking for help, as many issues can be fixed by reading both of them in their entirety.
Windows |
Linux |
MacOS |
|
---|---|---|---|
OS | Windows 10 (21H2 or newer), Windows 11 | Ubuntu 20.04 (or equivalent) Ubuntu 22.04 (or equivalent) |
MacOS 10.15 (or newer) |
CPU |
Any x86-64-v3 compatible: AMD Excavator Series, Intel Haswell Series or better Required Instruction Sets: x86-64-v2, AVX, BMI1, BMI2, F16C, FMA, MOVBE |
||
Any ARM64-v8.5-A compatible: Apple M1 Series or better | |||
Memory (RAM) | 16 GiB (total) or more | ||
Video (GPU) | DirectX 11 / OpenGL 3 capable, Shader Model 4, 4 GiB VRAM (total) or more | ||
Disk Space | 4 GiB (free) | ||
OBS Studio Version | 29.1.1 | ||
Other | Microsoft Visual C/C++ Redistributable 2017-2022 |
Qt for obs-studio FFmpeg for obs-studio System Libraries must match chosen Ubuntu version! |
A working GPU |
The old two stage system didn't work out quite as I'd have hoped: It didn't communicate the dangers of Testing well, and did not differentiate between different stability levels. To solve this I've adopted a new release process now available in StreamFX, which follows the usual development cycle of Software itself: Alpha -> Beta -> Candidate -> Release. The further right you go in that graph, the more stable software is supposed to be, at the cost of new features and changes. The further left you go, the more up-to-date things will be, but you sacrifice stability and safety.
As Experimental and Unstable features are causing the vast majority of stability issues, we've decided to split the releases by their actual stability. Stable releases will no longer contain Experimental or Unstable features, and Candidate releases will no longer contain Experimental features. This should hopefully speed up the process to a stable release significantly, as we no longer have to worry about the problematic features dragging us down.
For quite some time, Shader Texture Inputs were haunted by ghosts from the past, also known as work-arounds and deprecated code. This resulted in Shader Texture Inputs keeping stale references around and requiring an OBS Studio restart to actually update. Several code modernization cycles later, this is now fixed and Shader Texture Inputs immediately update as expected - while also no longer keeping stale references around, so your Scene Collections are safe again.
This should have gone up in flames way sooner than it did, and yet it was almost completely invisible until OBS Studio 27.1. The bug dates as far back as v0.7 and is pretty severe: The Dynamic Mask filter would increment their own reference count every frame if no Input was selected, and would double-free the Input without clearing the pointer to it. And somehow, this didn't explode until now.
As StreamFX was built on a lot of legacy code that gradually gets replaced with modern code, one modernization introduced a bug that was invisible during testing. StreamFX does not rely on OBS Studio to tell it what Sources and Scenes exist at any moment in time, but instead uses its own hash map to figure out what Sources and Scenes exist. This code was modernized, and incorrectly introduced an additional reference to each Source and Scene - making it impossible to delete anything, and leaking Scene Collections into other scene collections. The bug has been fixed, and should no longer occur.
An oversight in the scripts that generate the binaries resulted in them incorrectly treating C++ code as C. While this didn't seem to cause any obvious problems, it still affected what is actually linked into the binaries, and may have caused completely compatible systems to be treated as incompatible. This has now been fixed, so Ubuntu users should have a better experience.
With OBS Studio 28.0 came the introduction of Loadable Bundles, a variation of MacOS's Bundle format. This format offers a lot of advantages for almost no drawbacks, and StreamFX from now on uses this packaging format on MacOS. As a bonus, FFmpeg Encoders should now be available on MacOS too.
As the packaging and installation method has changed, please follow the Uninstallation guide to clean up any left over old files. Failure to do so will result in undefined behavior and may render OBS Studio entirely unusable. You have been warned!
Investigation into how OBS Studio actually loads plugins revealed a change that had gone under the radar entirely. Since OBS Studio v0.15.0 it is possible to load plugins from %ProgramData%\obs-studio\plugins
, which is a much safer option and now the only supported System-wide installation mode for StreamFX. This functionality has been so hidden that even the official obs-plugintemplate doesn't make use of it. An added bonus is that this should support Steam users of OBS Studio.
As the packaging and installation method has changed, please follow the Uninstallation guide to clean up any left over old files. Failure to do so will result in undefined behavior and may render OBS Studio entirely unusable. You have been warned!
StreamFX can now be installed for individual users, instead of installing for everyone on the system! This is possible thanks to a PR by @abcdw, which allows us to set two environment variable to install and load plugins from %LocalAppData%\Programs\obs-studio\plugins
in addition to all the other locations. These installations will conflict with a System-wide install and as such can't coexist, but may still work with the Steam release of OBS Studio.
As the packaging and installation method has changed, please follow the Uninstallation guide to clean up any left over old files. Failure to do so will result in undefined behavior and may render OBS Studio entirely unusable. You have been warned!
A new contender for the visually lossless intermediate codec arrives: Avid DNxHR! Thanks to work done by @IceStormNG, it is now possible to use this encoder without configuration trickery and directly configure it with a proper user interface. As this encoder is based on the real codec specification, it may perform better than the Apple ProRes encoder while being way more compatible with video editing software.
All FFmpeg Encoders now support encoding a different framerate than OBS Studio itself is running at. This allows for streaming at 30 FPS while recording at 60 FPS, or even recording at 120 FPS, or other strange things. Note that this is quite literally breaking several specifications, so use at your own risk - if things break, be happy that at least they broke with a noticable impact!
Users on ARM64 devices can now enjoy native ARM64 binaries for less CPU usage, and as such more overall performance on CPU focused tasks. While StreamFX is mostly GPU workloads, some of the internal code does actually do very heavy lifting that benefits from this.
With HDR support in OBS Studio finally being available, it was necessary to finally tackle the issue of sRGB and HDR support once and for all. Many Sources/Filters/Transitions will get proper sRGB and HDR support over future releases to catch up with OBS Studio. You can check the Version Information on the wiki to see if a certain feature supports sRGB or HDR yet.
With OBS Studio 28.0 the old obs-amd-encoder project is finally laid to rest and a new AMD AMF integration is provided. This AMD AMF integration is technically and functionally superior to both the old obs-amd-encoder and FFmpegs AMD AMF integration. All users are urged to migrate as soon as possible, as no guarantees are made for how long this deprecated encoder will remain. Additionally, users on Linux should put their focus on the open Pull Requests for Linux support (1, 2).
With OBS Studio 27.2.4, the SVT-AV1 and AOM-AV1 encoders were integrated into OBS Studio directly. This integration is functionally identical, and as such replaces the StreamFX provided AOM-AV1 encoder. All users are urged to migrate as soon as possible, as no guaratees are made for how long this deprecated encoder will remain.
- Fix version detection and comparison issue by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1045
- Improve initializer/finalizer code by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1046
- ci: Don't use caches from a different compiler by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1043
- Fix strange issue with github.workspace by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1044
- project: Adjust issue templates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1039
- Update to support OBS Studio 29.1.x and 29.0.x fully by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1042
- util/library: Allow loading of obs_module_t by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1033
- Add support for OBS Browser Source Qt Widgets by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1034
- code: Disable profiling on MacOS by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1038
- code: Initialize worker count to 0 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1021
- project: Adjust clang-tidy configuration by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1024
- obs/source-tracker: Fix occasional leaked source reference by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1026
- ci: Remove build variants that will never be used by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1028
- Speed up builds on CI by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1029
- Clean up unused and duplicate files by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1030
- project: Update README to match latest info by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1031
- Fix license and copyright headers by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1027
- ci: Use https instead of http by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1019
- Improve (and/or fix) MacOS and Ubuntu builds by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1020
- Update Third-Party dependencies by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1013
- cmake: Require generation of PATCH and TWEAK variables by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1016
- updater: Compare all parts of the version number by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1018
- plugin: Only initialize GLAD on OpenGL graphics backend by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/983
- project: Improve templates and UX by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/984
- Code Cleanup by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/985
- gfx/blur/box: Initialize streamfx::gfx::util by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/986
- #818 Don't self-reference when masking is enabled by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/987
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/959
- Fix CI and update Third Party code by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/988
- Implement dynamically scaled Thread Pool by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/933
- Save configuration after ~100ms have passed by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/934
- templates/windows/installer: Don't create Icons in Portable mode by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/936
- templates/windows/installer: Implement
/Portable
installer flag for CLI users by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/935- cmake, templates: Remove code signing integration by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/938
- Don't show path selection for System & User mode by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/937
- Fix some Use-After-Free issues with the D3D11 integration with FFmpeg by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/953
- encoder/ffmpeg: Remove usage of
avcodec_close
by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/952- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/932
- Implement support for Color Spaces by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/968
- Dynamic Mask: Implement sRGB and HDR support, and fix #819 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/967
- cmake: Require nlohmann-json when building the front-end by @rmnvgr in https://github.com/Xaymar/obs-StreamFX/pull/914
- encoder/ffmpeg: Assume extra data and sei are present on first frame by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/919
- encoder/ffmpeg: Add split framerate with integer fractions by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/921
- encoder/ffmpeg: Improve software scaling quality by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/925
- Add support for HDR formats by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/922
- encoder/handler/prores_aw: Don't enable Key-Frame options by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/926
- encoder/handler/dnxhd: Use endian-independent formats by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/927
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/915
- Improve Windows installer with proper System install location, Current User install method, and better UI by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/930
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/928
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/907
- Improve Windows and Mac bundling by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/912
- #881: Texture inputs to Shaders are unstable by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/884
- Deprecate AMD AMF encoders by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/885
- Deprecate AOM AV1 encoder by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/886
- Add missing deprecation notices by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/889
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/867
- cmake: Fix bad version strings by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/887
- project: Updating contributing guidelines by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/894
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/890
- project: Updating contributing guidelines by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/895
- Fix a huge number of warnings by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/893
- third-party: Update obs-studio to 28.0.0 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/901
- code: Fix GCC warning diagnostic pragmas by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/902
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/897
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/817
- Improve GitHub integration by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/841
- project: Fix incorrect tabs in YAML by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/842
- Improve metadata generation by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/837
- cmake: Add support for Qt6 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/866
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/832
- Further improve CI and Github integration by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/843
- ci: Remove Code Signing with self-signed certificate by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/873
- Fix compilation errors with Debug and/or Profiling by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/876
- Deduplicate CI build pipeline by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/874
- Remove Auto-Dependency System by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/870
- Working on source code [Refactor] by @GermanAizek in https://github.com/Xaymar/obs-StreamFX/pull/836
- obs/gs/effect: Revert #836 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/880
- Update libOBS to 28.0.0-rc1 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/878
- Improve CMake build script(s) by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/813
- ci: Add GCC back to the build by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/820
- Add ClangCL, and update Windows SDK requirements by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/821
- ci: Allow failures for experimental CI tests by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/824
- ci: Use specific LLVM/Clang versions by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/825
- project: Add support for multi stage release cycles by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/823
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/778
- ffmpeg-encoder/dnxhr: Added Avid DNxHR Encoder based on FFmpeg by @IceStormNG in https://github.com/Xaymar/obs-StreamFX/pull/784
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/786
- Refactor C++ wrappers for libOBS by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/806
These releases are offered to Supporters with (early-)access to releases, and are not meant for Production usage. They are offered with no warranty or guarantees and the StreamFX project and its maintainers explicitly reject any responsibilities for damages or unexpected changes resulting from the use of these releases. Additionally, the project and its maintainers are not interested in any bugs, crashes or freezes found by using these releases, as we have enough automated tests to cover most functionality. Please use the Stable production-ready release if you do not wish to encounter unusual problems.
Maintaining a project like StreamFX requires time and money, of which both are in short supply. If you use any feature of StreamFX, please consider supporting StreamFX via Patreon. Even as little as 1€ per month matters a lot, plus you get a number of benefits!
Please read the Installation Guide and System Requirements!
The installation of StreamFX requires that you follow certain instructions, as well as fulfill a minimum hardware and software requirement. Please ensure that you have read and verified both before asking for help, as many issues can be fixed by reading both of them in their entirety.
Windows |
Linux |
MacOS |
|
---|---|---|---|
OS | Windows 10 (21H2 or newer), Windows 11 | Ubuntu 20.04 (or equivalent) Ubuntu 22.04 (or equivalent) |
MacOS 10.15 (or newer) |
CPU |
Any x86-64-v3 compatible: AMD Excavator Series, Intel Haswell Series or better Required Instruction Sets: x86-64-v2, AVX, BMI1, BMI2, F16C, FMA, MOVBE |
||
Any ARM64-v8.5-A compatible: Apple M1 Series or better | |||
Memory (RAM) | 16 GiB (total) or more | ||
Video (GPU) | DirectX 11 / OpenGL 3 capable, Shader Model 4, 4 GiB VRAM (total) or more | ||
Disk Space | 4 GiB (free) | ||
OBS Studio Version | 29.1.1 | ||
Other | Microsoft Visual C/C++ Redistributable 2017-2022 |
Qt for obs-studio FFmpeg for obs-studio System Libraries must match chosen Ubuntu version! |
A working GPU |
The old two stage system didn't work out quite as I'd have hoped: It didn't communicate the dangers of Testing well, and did not differentiate between different stability levels. To solve this I've adopted a new release process now available in StreamFX, which follows the usual development cycle of Software itself: Alpha -> Beta -> Candidate -> Release. The further right you go in that graph, the more stable software is supposed to be, at the cost of new features and changes. The further left you go, the more up-to-date things will be, but you sacrifice stability and safety.
As Experimental and Unstable features are causing the vast majority of stability issues, we've decided to split the releases by their actual stability. Stable releases will no longer contain Experimental or Unstable features, and Candidate releases will no longer contain Experimental features. This should hopefully speed up the process to a stable release significantly, as we no longer have to worry about the problematic features dragging us down.
For quite some time, Shader Texture Inputs were haunted by ghosts from the past, also known as work-arounds and deprecated code. This resulted in Shader Texture Inputs keeping stale references around and requiring an OBS Studio restart to actually update. Several code modernization cycles later, this is now fixed and Shader Texture Inputs immediately update as expected - while also no longer keeping stale references around, so your Scene Collections are safe again.
This should have gone up in flames way sooner than it did, and yet it was almost completely invisible until OBS Studio 27.1. The bug dates as far back as v0.7 and is pretty severe: The Dynamic Mask filter would increment their own reference count every frame if no Input was selected, and would double-free the Input without clearing the pointer to it. And somehow, this didn't explode until now.
As StreamFX was built on a lot of legacy code that gradually gets replaced with modern code, one modernization introduced a bug that was invisible during testing. StreamFX does not rely on OBS Studio to tell it what Sources and Scenes exist at any moment in time, but instead uses its own hash map to figure out what Sources and Scenes exist. This code was modernized, and incorrectly introduced an additional reference to each Source and Scene - making it impossible to delete anything, and leaking Scene Collections into other scene collections. The bug has been fixed, and should no longer occur.
An oversight in the scripts that generate the binaries resulted in them incorrectly treating C++ code as C. While this didn't seem to cause any obvious problems, it still affected what is actually linked into the binaries, and may have caused completely compatible systems to be treated as incompatible. This has now been fixed, so Ubuntu users should have a better experience.
With OBS Studio 28.0 came the introduction of Loadable Bundles, a variation of MacOS's Bundle format. This format offers a lot of advantages for almost no drawbacks, and StreamFX from now on uses this packaging format on MacOS. As a bonus, FFmpeg Encoders should now be available on MacOS too.
As the packaging and installation method has changed, please follow the Uninstallation guide to clean up any left over old files. Failure to do so will result in undefined behavior and may render OBS Studio entirely unusable. You have been warned!
Investigation into how OBS Studio actually loads plugins revealed a change that had gone under the radar entirely. Since OBS Studio v0.15.0 it is possible to load plugins from %ProgramData%\obs-studio\plugins
, which is a much safer option and now the only supported System-wide installation mode for StreamFX. This functionality has been so hidden that even the official obs-plugintemplate doesn't make use of it. An added bonus is that this should support Steam users of OBS Studio.
As the packaging and installation method has changed, please follow the Uninstallation guide to clean up any left over old files. Failure to do so will result in undefined behavior and may render OBS Studio entirely unusable. You have been warned!
StreamFX can now be installed for individual users, instead of installing for everyone on the system! This is possible thanks to a PR by @abcdw, which allows us to set two environment variable to install and load plugins from %LocalAppData%\Programs\obs-studio\plugins
in addition to all the other locations. These installations will conflict with a System-wide install and as such can't coexist, but may still work with the Steam release of OBS Studio.
As the packaging and installation method has changed, please follow the Uninstallation guide to clean up any left over old files. Failure to do so will result in undefined behavior and may render OBS Studio entirely unusable. You have been warned!
A new contender for the visually lossless intermediate codec arrives: Avid DNxHR! Thanks to work done by @IceStormNG, it is now possible to use this encoder without configuration trickery and directly configure it with a proper user interface. As this encoder is based on the real codec specification, it may perform better than the Apple ProRes encoder while being way more compatible with video editing software.
All FFmpeg Encoders now support encoding a different framerate than OBS Studio itself is running at. This allows for streaming at 30 FPS while recording at 60 FPS, or even recording at 120 FPS, or other strange things. Note that this is quite literally breaking several specifications, so use at your own risk - if things break, be happy that at least they broke with a noticable impact!
Users on ARM64 devices can now enjoy native ARM64 binaries for less CPU usage, and as such more overall performance on CPU focused tasks. While StreamFX is mostly GPU workloads, some of the internal code does actually do very heavy lifting that benefits from this.
With HDR support in OBS Studio finally being available, it was necessary to finally tackle the issue of sRGB and HDR support once and for all. Many Sources/Filters/Transitions will get proper sRGB and HDR support over future releases to catch up with OBS Studio. You can check the Version Information on the wiki to see if a certain feature supports sRGB or HDR yet.
With OBS Studio 28.0 the old obs-amd-encoder project is finally laid to rest and a new AMD AMF integration is provided. This AMD AMF integration is technically and functionally superior to both the old obs-amd-encoder and FFmpegs AMD AMF integration. All users are urged to migrate as soon as possible, as no guarantees are made for how long this deprecated encoder will remain. Additionally, users on Linux should put their focus on the open Pull Requests for Linux support (1, 2).
With OBS Studio 27.2.4, the SVT-AV1 and AOM-AV1 encoders were integrated into OBS Studio directly. This integration is functionally identical, and as such replaces the StreamFX provided AOM-AV1 encoder. All users are urged to migrate as soon as possible, as no guaratees are made for how long this deprecated encoder will remain.
- ci: Don't use caches from a different compiler by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1043
- Fix strange issue with github.workspace by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1044
- project: Adjust issue templates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1039
- Update to support OBS Studio 29.1.x and 29.0.x fully by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1042
- util/library: Allow loading of obs_module_t by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1033
- Add support for OBS Browser Source Qt Widgets by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1034
- code: Disable profiling on MacOS by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1038
- code: Initialize worker count to 0 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1021
- project: Adjust clang-tidy configuration by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1024
- obs/source-tracker: Fix occasional leaked source reference by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1026
- ci: Remove build variants that will never be used by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1028
- Speed up builds on CI by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1029
- Clean up unused and duplicate files by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1030
- project: Update README to match latest info by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1031
- Fix license and copyright headers by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1027
- ci: Use https instead of http by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1019
- Improve (and/or fix) MacOS and Ubuntu builds by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1020
- Update Third-Party dependencies by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1013
- cmake: Require generation of PATCH and TWEAK variables by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1016
- updater: Compare all parts of the version number by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1018
- plugin: Only initialize GLAD on OpenGL graphics backend by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/983
- project: Improve templates and UX by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/984
- Code Cleanup by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/985
- gfx/blur/box: Initialize streamfx::gfx::util by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/986
- #818 Don't self-reference when masking is enabled by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/987
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/959
- Fix CI and update Third Party code by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/988
- Implement dynamically scaled Thread Pool by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/933
- Save configuration after ~100ms have passed by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/934
- templates/windows/installer: Don't create Icons in Portable mode by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/936
- templates/windows/installer: Implement
/Portable
installer flag for CLI users by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/935- cmake, templates: Remove code signing integration by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/938
- Don't show path selection for System & User mode by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/937
- Fix some Use-After-Free issues with the D3D11 integration with FFmpeg by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/953
- encoder/ffmpeg: Remove usage of
avcodec_close
by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/952- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/932
- Implement support for Color Spaces by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/968
- Dynamic Mask: Implement sRGB and HDR support, and fix #819 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/967
- cmake: Require nlohmann-json when building the front-end by @rmnvgr in https://github.com/Xaymar/obs-StreamFX/pull/914
- encoder/ffmpeg: Assume extra data and sei are present on first frame by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/919
- encoder/ffmpeg: Add split framerate with integer fractions by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/921
- encoder/ffmpeg: Improve software scaling quality by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/925
- Add support for HDR formats by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/922
- encoder/handler/prores_aw: Don't enable Key-Frame options by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/926
- encoder/handler/dnxhd: Use endian-independent formats by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/927
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/915
- Improve Windows installer with proper System install location, Current User install method, and better UI by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/930
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/928
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/907
- Improve Windows and Mac bundling by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/912
- #881: Texture inputs to Shaders are unstable by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/884
- Deprecate AMD AMF encoders by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/885
- Deprecate AOM AV1 encoder by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/886
- Add missing deprecation notices by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/889
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/867
- cmake: Fix bad version strings by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/887
- project: Updating contributing guidelines by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/894
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/890
- project: Updating contributing guidelines by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/895
- Fix a huge number of warnings by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/893
- third-party: Update obs-studio to 28.0.0 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/901
- code: Fix GCC warning diagnostic pragmas by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/902
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/897
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/817
- Improve GitHub integration by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/841
- project: Fix incorrect tabs in YAML by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/842
- Improve metadata generation by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/837
- cmake: Add support for Qt6 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/866
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/832
- Further improve CI and Github integration by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/843
- ci: Remove Code Signing with self-signed certificate by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/873
- Fix compilation errors with Debug and/or Profiling by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/876
- Deduplicate CI build pipeline by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/874
- Remove Auto-Dependency System by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/870
- Working on source code [Refactor] by @GermanAizek in https://github.com/Xaymar/obs-StreamFX/pull/836
- obs/gs/effect: Revert #836 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/880
- Update libOBS to 28.0.0-rc1 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/878
- Improve CMake build script(s) by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/813
- ci: Add GCC back to the build by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/820
- Add ClangCL, and update Windows SDK requirements by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/821
- ci: Allow failures for experimental CI tests by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/824
- ci: Use specific LLVM/Clang versions by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/825
- project: Add support for multi stage release cycles by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/823
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/778
- ffmpeg-encoder/dnxhr: Added Avid DNxHR Encoder based on FFmpeg by @IceStormNG in https://github.com/Xaymar/obs-StreamFX/pull/784
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/786
- Refactor C++ wrappers for libOBS by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/806
These releases are offered to Supporters with (early-)access to releases, and are not meant for Production usage. They are offered with no warranty or guarantees and the StreamFX project and its maintainers explicitly reject any responsibilities for damages or unexpected changes resulting from the use of these releases. Additionally, the project and its maintainers are not interested in any bugs, crashes or freezes found by using these releases, as we have enough automated tests to cover most functionality. Please use the Stable production-ready release if you do not wish to encounter unusual problems.
Maintaining a project like StreamFX requires time and money, of which both are in short supply. If you use any feature of StreamFX, please consider supporting StreamFX via Patreon. Even as little as 1€ per month matters a lot, plus you get a number of benefits!
Please read the Installation Guide and System Requirements!
The installation of StreamFX requires that you follow certain instructions, as well as fulfill a minimum hardware and software requirement. Please ensure that you have read and verified both before asking for help, as many issues can be fixed by reading both of them in their entirety.
Windows |
Linux |
MacOS |
|
---|---|---|---|
OS | Windows 10 (21H2 or newer), Windows 11 | Ubuntu 20.04 (or equivalent) Ubuntu 22.04 (or equivalent) |
MacOS 10.15 (or newer) |
CPU |
Any x86-64-v3 compatible: AMD Excavator Series, Intel Haswell Series or better Required Instruction Sets: x86-64-v2, AVX, BMI1, BMI2, F16C, FMA, MOVBE |
||
Any ARM64-v8.5-A compatible: Apple M1 Series or better | |||
Memory (RAM) | 16 GiB (total) or more | ||
Video (GPU) | DirectX 11 / OpenGL 3 capable, Shader Model 4, 4 GiB VRAM (total) or more | ||
Disk Space | 4 GiB (free) | ||
OBS Studio Version | 29.0.X | ||
Other | Microsoft Visual C/C++ Redistributable 2017-2022 |
Qt for obs-studio FFmpeg for obs-studio System Libraries must match chosen Ubuntu version! |
A working GPU |
The old two stage system didn't work out quite as I'd have hoped: It didn't communicate the dangers of Testing well, and did not differentiate between different stability levels. To solve this I've adopted a new release process now available in StreamFX, which follows the usual development cycle of Software itself: Alpha -> Beta -> Candidate -> Release. The further right you go in that graph, the more stable software is supposed to be, at the cost of new features and changes. The further left you go, the more up-to-date things will be, but you sacrifice stability and safety.
For quite some time, Shader Texture Inputs were haunted by ghosts from the past, also known as work-arounds and deprecated code. This resulted in Shader Texture Inputs keeping stale references around and requiring an OBS Studio restart to actually update. Several code modernization cycles later, this is now fixed and Shader Texture Inputs immediately update as expected - while also no longer keeping stale references around, so your Scene Collections are safe again.
This should have gone up in flames way sooner than it did, and yet it was almost completely invisible until OBS Studio 27.1. The bug dates as far back as v0.7 and is pretty severe: The Dynamic Mask filter would increment their own reference count every frame if no Input was selected, and would double-free the Input without clearing the pointer to it. And somehow, this didn't explode until now.
As StreamFX was built on a lot of legacy code that gradually gets replaced with modern code, one modernization introduced a bug that was invisible during testing. StreamFX does not rely on OBS Studio to tell it what Sources and Scenes exist at any moment in time, but instead uses its own hash map to figure out what Sources and Scenes exist. This code was modernized, and incorrectly introduced an additional reference to each Source and Scene - making it impossible to delete anything, and leaking Scene Collections into other scene collections. The bug has been fixed, and should no longer occur.
An oversight in the scripts that generate the binaries resulted in them incorrectly treating C++ code as C. While this didn't seem to cause any obvious problems, it still affected what is actually linked into the binaries, and may have caused completely compatible systems to be treated as incompatible. This has now been fixed, so Ubuntu users should have a better experience.
With OBS Studio 28.0 came the introduction of Loadable Bundles, a variation of MacOS's Bundle format. This format offers a lot of advantages for almost no drawbacks, and StreamFX from now on uses this packaging format on MacOS. As a bonus, FFmpeg Encoders should now be available on MacOS too.
As the packaging and installation method has changed, please follow the Uninstallation guide to clean up any left over old files. Failure to do so will result in undefined behavior and may render OBS Studio entirely unusable. You have been warned!
Investigation into how OBS Studio actually loads plugins revealed a change that had gone under the radar entirely. Since OBS Studio v0.15.0 it is possible to load plugins from %ProgramData%\obs-studio\plugins
, which is a much safer option and now the only supported System-wide installation mode for StreamFX. This functionality has been so hidden that even the official obs-plugintemplate doesn't make use of it. An added bonus is that this should support Steam users of OBS Studio.
As the packaging and installation method has changed, please follow the Uninstallation guide to clean up any left over old files. Failure to do so will result in undefined behavior and may render OBS Studio entirely unusable. You have been warned!
StreamFX can now be installed for individual users, instead of installing for everyone on the system! This is possible thanks to a PR by @abcdw, which allows us to set two environment variable to install and load plugins from %LocalAppData%\Programs\obs-studio\plugins
in addition to all the other locations. These installations will conflict with a System-wide install and as such can't coexist, but may still work with the Steam release of OBS Studio.
As the packaging and installation method has changed, please follow the Uninstallation guide to clean up any left over old files. Failure to do so will result in undefined behavior and may render OBS Studio entirely unusable. You have been warned!
A new contender for the visually lossless intermediate codec arrives: Avid DNxHR! Thanks to work done by @IceStormNG, it is now possible to use this encoder without configuration trickery and directly configure it with a proper user interface. As this encoder is based on the real codec specification, it may perform better than the Apple ProRes encoder while being way more compatible with video editing software.
All FFmpeg Encoders now support encoding a different framerate than OBS Studio itself is running at. This allows for streaming at 30 FPS while recording at 60 FPS, or even recording at 120 FPS, or other strange things. Note that this is quite literally breaking several specifications, so use at your own risk - if things break, be happy that at least they broke with a noticable impact!
Users on ARM64 devices can now enjoy native ARM64 binaries for less CPU usage, and as such more overall performance on CPU focused tasks. While StreamFX is mostly GPU workloads, some of the internal code does actually do very heavy lifting that benefits from this.
With HDR support in OBS Studio finally being available, it was necessary to finally tackle the issue of sRGB and HDR support once and for all. Many Sources/Filters/Transitions will get proper sRGB and HDR support over future releases to catch up with OBS Studio. You can check the Version Information on the wiki to see if a certain feature supports sRGB or HDR yet.
With OBS Studio 28.0 the old obs-amd-encoder project is finally laid to rest and a new AMD AMF integration is provided. This AMD AMF integration is technically and functionally superior to both the old obs-amd-encoder and FFmpegs AMD AMF integration. All users are urged to migrate as soon as possible, as no guarantees are made for how long this deprecated encoder will remain. Additionally, users on Linux should put their focus on the open Pull Requests for Linux support (1, 2).
With OBS Studio 27.2.4, the SVT-AV1 and AOM-AV1 encoders were integrated into OBS Studio directly. This integration is functionally identical, and as such replaces the StreamFX provided AOM-AV1 encoder. All users are urged to migrate as soon as possible, as no guaratees are made for how long this deprecated encoder will remain.
- code: Initialize worker count to 0 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1021
- project: Adjust clang-tidy configuration by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1024
- obs/source-tracker: Fix occasional leaked source reference by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1026
- ci: Remove build variants that will never be used by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1028
- Speed up builds on CI by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1029
- Clean up unused and duplicate files by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1030
- project: Update README to match latest info by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1031
- Fix license and copyright headers by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1027
- ci: Use https instead of http by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1019
- Improve (and/or fix) MacOS and Ubuntu builds by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1020
- Update Third-Party dependencies by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1013
- cmake: Require generation of PATCH and TWEAK variables by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1016
- updater: Compare all parts of the version number by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1018
- plugin: Only initialize GLAD on OpenGL graphics backend by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/983
- project: Improve templates and UX by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/984
- Code Cleanup by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/985
- gfx/blur/box: Initialize streamfx::gfx::util by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/986
- #818 Don't self-reference when masking is enabled by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/987
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/959
- Fix CI and update Third Party code by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/988
- Implement dynamically scaled Thread Pool by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/933
- Save configuration after ~100ms have passed by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/934
- templates/windows/installer: Don't create Icons in Portable mode by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/936
- templates/windows/installer: Implement
/Portable
installer flag for CLI users by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/935- cmake, templates: Remove code signing integration by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/938
- Don't show path selection for System & User mode by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/937
- Fix some Use-After-Free issues with the D3D11 integration with FFmpeg by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/953
- encoder/ffmpeg: Remove usage of
avcodec_close
by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/952- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/932
- Implement support for Color Spaces by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/968
- Dynamic Mask: Implement sRGB and HDR support, and fix #819 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/967
- cmake: Require nlohmann-json when building the front-end by @rmnvgr in https://github.com/Xaymar/obs-StreamFX/pull/914
- encoder/ffmpeg: Assume extra data and sei are present on first frame by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/919
- encoder/ffmpeg: Add split framerate with integer fractions by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/921
- encoder/ffmpeg: Improve software scaling quality by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/925
- Add support for HDR formats by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/922
- encoder/handler/prores_aw: Don't enable Key-Frame options by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/926
- encoder/handler/dnxhd: Use endian-independent formats by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/927
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/915
- Improve Windows installer with proper System install location, Current User install method, and better UI by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/930
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/928
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/907
- Improve Windows and Mac bundling by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/912
- #881: Texture inputs to Shaders are unstable by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/884
- Deprecate AMD AMF encoders by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/885
- Deprecate AOM AV1 encoder by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/886
- Add missing deprecation notices by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/889
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/867
- cmake: Fix bad version strings by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/887
- project: Updating contributing guidelines by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/894
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/890
- project: Updating contributing guidelines by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/895
- Fix a huge number of warnings by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/893
- third-party: Update obs-studio to 28.0.0 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/901
- code: Fix GCC warning diagnostic pragmas by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/902
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/897
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/817
- Improve GitHub integration by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/841
- project: Fix incorrect tabs in YAML by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/842
- Improve metadata generation by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/837
- cmake: Add support for Qt6 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/866
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/832
- Further improve CI and Github integration by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/843
- ci: Remove Code Signing with self-signed certificate by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/873
- Fix compilation errors with Debug and/or Profiling by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/876
- Deduplicate CI build pipeline by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/874
- Remove Auto-Dependency System by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/870
- Working on source code [Refactor] by @GermanAizek in https://github.com/Xaymar/obs-StreamFX/pull/836
- obs/gs/effect: Revert #836 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/880
- Update libOBS to 28.0.0-rc1 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/878
- Improve CMake build script(s) by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/813
- ci: Add GCC back to the build by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/820
- Add ClangCL, and update Windows SDK requirements by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/821
- ci: Allow failures for experimental CI tests by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/824
- ci: Use specific LLVM/Clang versions by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/825
- project: Add support for multi stage release cycles by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/823
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/778
- ffmpeg-encoder/dnxhr: Added Avid DNxHR Encoder based on FFmpeg by @IceStormNG in https://github.com/Xaymar/obs-StreamFX/pull/784
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/786
- Refactor C++ wrappers for libOBS by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/806
We had to remove binaries and source code due to a contributor submitting code that was not licensed under the GPLv2 "or later" license or any compatible license. While we were able to adjust the source code contained in the repository to exclude these license violations, we can't guarantee that binaries will be available again.
These releases are offered to Supporters with (early-)access to releases, and are not meant for Production usage. They are offered with no warranty or guarantees and the StreamFX project and its maintainers explicitly reject any responsibilities for damages or unexpected changes resulting from the use of these releases. Additionally, the project and its maintainers are not interested in any bugs, crashes or freezes found by using these releases, as we have enough automated tests to cover most functionality. Please use the Stable production-ready release if you do not wish to encounter unusual problems.
Maintaining a project like StreamFX requires time and money, of which both are in short supply. If you use any feature of StreamFX, please consider supporting StreamFX via Patreon. Even as little as 1€ per month matters a lot, plus you get a number of benefits!
The old two stage system didn't work out quite as I'd have hoped: It didn't communicate the dangers of Testing well, and did not differentiate between different stability levels. To solve this I've adopted a new release process now available in StreamFX, which follows the usual development cycle of Software itself: Alpha -> Beta -> Candidate -> Release. The further right you go in that graph, the more stable software is supposed to be, at the cost of new features and changes. The further left you go, the more up-to-date things will be, but you sacrifice stability and safety.
For quite some time, Shader Texture Inputs were haunted by ghosts from the past, also known as work-arounds and deprecated code. This resulted in Shader Texture Inputs keeping stale references around and requiring an OBS Studio restart to actually update. Several code modernization cycles later, this is now fixed and Shader Texture Inputs immediately update as expected - while also no longer keeping stale references around, so your Scene Collections are safe again.
This should have gone up in flames way sooner than it did, and yet it was almost completely invisible until OBS Studio 27.1. The bug dates as far back as v0.7 and is pretty severe: The Dynamic Mask filter would increment their own reference count every frame if no Input was selected, and would double-free the Input without clearing the pointer to it. And somehow, this didn't explode until now.
An oversight in the scripts that generate the binaries resulted in them incorrectly treating C++ code as C. While this didn't seem to cause any obvious problems, it still affected what is actually linked into the binaries, and may have caused completely compatible systems to be treated as incompatible. This has now been fixed, so Ubuntu users should have a better experience.
With OBS Studio 28.0 came the introduction of Loadable Bundles, a variation of MacOS's Bundle format. This format offers a lot of advantages for almost no drawbacks, and StreamFX from now on uses this packaging format on MacOS. As a bonus, FFmpeg Encoders should now be available on MacOS too.
As the packaging and installation method has changed, please follow the Uninstallation guide to clean up any left over old files. Failure to do so will result in undefined behavior and may render OBS Studio entirely unusable. You have been warned!
Investigation into how OBS Studio actually loads plugins revealed a change that had gone under the radar entirely. Since OBS Studio v0.15.0 it is possible to load plugins from %ProgramData%\obs-studio\plugins
, which is a much safer option and now the only supported System-wide installation mode for StreamFX. This functionality has been so hidden that even the official obs-plugintemplate doesn't make use of it. An added bonus is that this should support Steam users of OBS Studio.
StreamFX can now be installed for individual users, instead of installing for everyone on the system! This is possible thanks to a PR by @abcdw, which allows us to set two environment variable to install and load plugins from %LocalAppData%\Programs\obs-studio\plugins
in addition to all the other locations. These installations will conflict with a System-wide install and as such can't coexist, but may still work with the Steam release of OBS Studio.
A new contender for the visually lossless intermediate codec arrives: Avid DNxHR! Thanks to work done by @IceStormNG, it is now possible to use this encoder without configuration trickery and directly configure it with a proper user interface. As this encoder is based on the real codec specification, it may perform better than the Apple ProRes encoder while being way more compatible with video editing software.
All FFmpeg Encoders now support encoding a different framerate than OBS Studio itself is running at. This allows for streaming at 30 FPS while recording at 60 FPS, or even recording at 120 FPS, or other strange things. Note that this is quite literally breaking several specifications, so use at your own risk - if things break, be happy that at least they broke with a noticable impact!
Users on ARM64 devices can now enjoy native ARM64 binaries for less CPU usage, and as such more overall performance on CPU focused tasks. While StreamFX is mostly GPU workloads, some of the internal code does actually do very heavy lifting that benefits from this.
With HDR support in OBS Studio finally being available, it was necessary to finally tackle the issue of sRGB and HDR support once and for all. Many Sources/Filters/Transitions will get proper sRGB and HDR support over future releases to catch up with OBS Studio. You can check the Version Information on the wiki to see if a certain feature supports sRGB or HDR yet.
With OBS Studio 28.0 the old obs-amd-encoder project is finally laid to rest and a new AMD AMF integration is provided. This AMD AMF integration is technically and functionally superior to both the old obs-amd-encoder and FFmpegs AMD AMF integration. All users are urged to migrate as soon as possible, as no guarantees are made for how long this deprecated encoder will remain. Additionally, users on Linux should put their focus on the open Pull Requests for Linux support (1, 2).
With OBS Studio 27.2.4, the SVT-AV1 and AOM-AV1 encoders were integrated into OBS Studio directly. This integration is functionally identical, and as such replaces the StreamFX provided AOM-AV1 encoder. All users are urged to migrate as soon as possible, as no guaratees are made for how long this deprecated encoder will remain.
- code: Initialize worker count to 0 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1021
- project: Adjust clang-tidy configuration by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1024
- obs/source-tracker: Fix occasional leaked source reference by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1026
- ci: Remove build variants that will never be used by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1028
- Speed up builds on CI by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1029
- Clean up unused and duplicate files by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1030
- project: Update README to match latest info by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1031
- Fix license and copyright headers by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1027
- ci: Use https instead of http by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1019
- Improve (and/or fix) MacOS and Ubuntu builds by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1020
- Update Third-Party dependencies by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1013
- cmake: Require generation of PATCH and TWEAK variables by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1016
- updater: Compare all parts of the version number by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1018
- plugin: Only initialize GLAD on OpenGL graphics backend by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/983
- project: Improve templates and UX by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/984
- Code Cleanup by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/985
- gfx/blur/box: Initialize streamfx::gfx::util by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/986
- #818 Don't self-reference when masking is enabled by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/987
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/959
- Fix CI and update Third Party code by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/988
- Implement dynamically scaled Thread Pool by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/933
- Save configuration after ~100ms have passed by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/934
- templates/windows/installer: Don't create Icons in Portable mode by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/936
- templates/windows/installer: Implement
/Portable
installer flag for CLI users by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/935- cmake, templates: Remove code signing integration by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/938
- Don't show path selection for System & User mode by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/937
- Fix some Use-After-Free issues with the D3D11 integration with FFmpeg by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/953
- encoder/ffmpeg: Remove usage of
avcodec_close
by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/952- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/932
- Implement support for Color Spaces by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/968
- Dynamic Mask: Implement sRGB and HDR support, and fix #819 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/967
- cmake: Require nlohmann-json when building the front-end by @rmnvgr in https://github.com/Xaymar/obs-StreamFX/pull/914
- encoder/ffmpeg: Assume extra data and sei are present on first frame by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/919
- encoder/ffmpeg: Add split framerate with integer fractions by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/921
- encoder/ffmpeg: Improve software scaling quality by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/925
- Add support for HDR formats by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/922
- encoder/handler/prores_aw: Don't enable Key-Frame options by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/926
- encoder/handler/dnxhd: Use endian-independent formats by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/927
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/915
- Improve Windows installer with proper System install location, Current User install method, and better UI by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/930
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/928
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/907
- Improve Windows and Mac bundling by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/912
- #881: Texture inputs to Shaders are unstable by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/884
- Deprecate AMD AMF encoders by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/885
- Deprecate AOM AV1 encoder by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/886
- Add missing deprecation notices by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/889
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/867
- cmake: Fix bad version strings by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/887
- project: Updating contributing guidelines by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/894
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/890
- project: Updating contributing guidelines by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/895
- Fix a huge number of warnings by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/893
- third-party: Update obs-studio to 28.0.0 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/901
- code: Fix GCC warning diagnostic pragmas by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/902
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/897
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/817
- Improve GitHub integration by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/841
- project: Fix incorrect tabs in YAML by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/842
- Improve metadata generation by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/837
- cmake: Add support for Qt6 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/866
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/832
- Further improve CI and Github integration by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/843
- ci: Remove Code Signing with self-signed certificate by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/873
- Fix compilation errors with Debug and/or Profiling by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/876
- Deduplicate CI build pipeline by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/874
- Remove Auto-Dependency System by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/870
- Working on source code [Refactor] by @GermanAizek in https://github.com/Xaymar/obs-StreamFX/pull/836
- obs/gs/effect: Revert #836 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/880
- Update libOBS to 28.0.0-rc1 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/878
- Improve CMake build script(s) by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/813
- ci: Add GCC back to the build by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/820
- Add ClangCL, and update Windows SDK requirements by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/821
- ci: Allow failures for experimental CI tests by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/824
- ci: Use specific LLVM/Clang versions by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/825
- project: Add support for multi stage release cycles by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/823
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/778
- ffmpeg-encoder/dnxhr: Added Avid DNxHR Encoder based on FFmpeg by @IceStormNG in https://github.com/Xaymar/obs-StreamFX/pull/784
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/786
- Refactor C++ wrappers for libOBS by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/806
Please read the Installation Guide and System Requirements!
The installation of StreamFX requires that you follow certain instructions, as well as fulfill a minimum hardware and software requirement. Please ensure that you have read and verified both before asking for help, as many issues can be fixed by reading both of them in their entirety.
Windows |
Linux |
MacOS |
|
---|---|---|---|
OS | Windows 10 (21H2 or newer), Windows 11 | Ubuntu 20.04 (or equivalent) Ubuntu 22.04 (or equivalent) |
MacOS 10.15 (or newer) |
CPU |
Any x86-64-v3 compatible: AMD Excavator Series, Intel Haswell Series or better Required Instruction Sets: x86-64-v2, AVX, BMI1, BMI2, F16C, FMA, MOVBE |
||
Any ARM64-v8.5-A compatible: Apple M1 Series or better | |||
Memory (RAM) | 16 GiB (total) or more | ||
Video (GPU) | DirectX 11 / OpenGL 3 capable, Shader Model 4, 4 GiB VRAM (total) or more | ||
Disk Space | 4 GiB (free) | ||
OBS Studio Version | 29.0.0 | ||
Other | Microsoft Visual C/C++ Redistributable 2017-2022 |
Qt for obs-studio FFmpeg for obs-studio System Libraries must match chosen Ubuntu version! |
A working GPU |
We had to remove binaries and source code due to a contributor submitting code that was not licensed under the GPLv2 "or later" license or any compatible license. While we were able to adjust the source code contained in the repository to exclude these license violations, we can't guarantee that binaries will be available again.
These releases are offered to Supporters with (early-)access to releases, and are not meant for Production usage. They are offered with no warranty or guarantees and the StreamFX project and its maintainers explicitly reject any responsibilities for damages or unexpected changes resulting from the use of these releases. Additionally, the project and its maintainers are not interested in any bugs, crashes or freezes found by using these releases, as we have enough automated tests to cover most functionality. Please use the Stable production-ready release if you do not wish to encounter unusual problems.
Maintaining a project like StreamFX requires time and money, of which both are in short supply. If you use any feature of StreamFX, please consider supporting StreamFX via Patreon. Even as little as 1€ per month matters a lot, plus you get a number of benefits!
The old two stage system didn't work out quite as I'd have hoped: It didn't communicate the dangers of Testing well, and did not differentiate between different stability levels. To solve this I've adopted a new release process now available in StreamFX, which follows the usual development cycle of Software itself: Alpha -> Beta -> Candidate -> Release. The further right you go in that graph, the more stable software is supposed to be, at the cost of new features and changes. The further left you go, the more up-to-date things will be, but you sacrifice stability and safety.
For quite some time, Shader Texture Inputs were haunted by ghosts from the past, also known as work-arounds and deprecated code. This resulted in Shader Texture Inputs keeping stale references around and requiring an OBS Studio restart to actually update. Several code modernization cycles later, this is now fixed and Shader Texture Inputs immediately update as expected - while also no longer keeping stale references around, so your Scene Collections are safe again.
This should have gone up in flames way sooner than it did, and yet it was almost completely invisible until OBS Studio 27.1. The bug dates as far back as v0.7 and is pretty severe: The Dynamic Mask filter would increment their own reference count every frame if no Input was selected, and would double-free the Input without clearing the pointer to it. And somehow, this didn't explode until now.
An oversight in the scripts that generate the binaries resulted in them incorrectly treating C++ code as C. While this didn't seem to cause any obvious problems, it still affected what is actually linked into the binaries, and may have caused completely compatible systems to be treated as incompatible. This has now been fixed, so Ubuntu users should have a better experience.
With OBS Studio 28.0 came the introduction of Loadable Bundles, a variation of MacOS's Bundle format. This format offers a lot of advantages for almost no drawbacks, and StreamFX from now on uses this packaging format on MacOS. As a bonus, FFmpeg Encoders should now be available on MacOS too.
As the packaging and installation method has changed, please follow the Uninstallation guide to clean up any left over old files. Failure to do so will result in undefined behavior and may render OBS Studio entirely unusable. You have been warned!
Investigation into how OBS Studio actually loads plugins revealed a change that had gone under the radar entirely. Since OBS Studio v0.15.0 it is possible to load plugins from %ProgramData%\obs-studio\plugins
, which is a much safer option and now the only supported System-wide installation mode for StreamFX. This functionality has been so hidden that even the official obs-plugintemplate doesn't make use of it. An added bonus is that this should support Steam users of OBS Studio.
StreamFX can now be installed for individual users, instead of installing for everyone on the system! This is possible thanks to a PR by @abcdw, which allows us to set two environment variable to install and load plugins from %LocalAppData%\Programs\obs-studio\plugins
in addition to all the other locations. These installations will conflict with a System-wide install and as such can't coexist, but may still work with the Steam release of OBS Studio.
A new contender for the visually lossless intermediate codec arrives: Avid DNxHR! Thanks to work done by @IceStormNG, it is now possible to use this encoder without configuration trickery and directly configure it with a proper user interface. As this encoder is based on the real codec specification, it may perform better than the Apple ProRes encoder while being way more compatible with video editing software.
All FFmpeg Encoders now support encoding a different framerate than OBS Studio itself is running at. This allows for streaming at 30 FPS while recording at 60 FPS, or even recording at 120 FPS, or other strange things. Note that this is quite literally breaking several specifications, so use at your own risk - if things break, be happy that at least they broke with a noticable impact!
Users on ARM64 devices can now enjoy native ARM64 binaries for less CPU usage, and as such more overall performance on CPU focused tasks. While StreamFX is mostly GPU workloads, some of the internal code does actually do very heavy lifting that benefits from this.
With HDR support in OBS Studio finally being available, it was necessary to finally tackle the issue of sRGB and HDR support once and for all. Many Sources/Filters/Transitions will get proper sRGB and HDR support over future releases to catch up with OBS Studio. You can check the Version Information on the wiki to see if a certain feature supports sRGB or HDR yet.
With OBS Studio 28.0 the old obs-amd-encoder project is finally laid to rest and a new AMD AMF integration is provided. This AMD AMF integration is technically and functionally superior to both the old obs-amd-encoder and FFmpegs AMD AMF integration. All users are urged to migrate as soon as possible, as no guarantees are made for how long this deprecated encoder will remain. Additionally, users on Linux should put their focus on the open Pull Requests for Linux support (1, 2).
With OBS Studio 27.2.4, the SVT-AV1 and AOM-AV1 encoders were integrated into OBS Studio directly. This integration is functionally identical, and as such replaces the StreamFX provided AOM-AV1 encoder. All users are urged to migrate as soon as possible, as no guaratees are made for how long this deprecated encoder will remain.
- ci: Use https instead of http by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1019
- Improve (and/or fix) MacOS and Ubuntu builds by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1020
- Update Third-Party dependencies by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1013
- cmake: Require generation of PATCH and TWEAK variables by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1016
- updater: Compare all parts of the version number by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1018
- plugin: Only initialize GLAD on OpenGL graphics backend by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/983
- project: Improve templates and UX by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/984
- Code Cleanup by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/985
- gfx/blur/box: Initialize streamfx::gfx::util by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/986
- #818 Don't self-reference when masking is enabled by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/987
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/959
- Fix CI and update Third Party code by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/988
- Implement dynamically scaled Thread Pool by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/933
- Save configuration after ~100ms have passed by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/934
- templates/windows/installer: Don't create Icons in Portable mode by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/936
- templates/windows/installer: Implement
/Portable
installer flag for CLI users by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/935- cmake, templates: Remove code signing integration by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/938
- Don't show path selection for System & User mode by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/937
- Fix some Use-After-Free issues with the D3D11 integration with FFmpeg by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/953
- encoder/ffmpeg: Remove usage of
avcodec_close
by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/952- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/932
- Implement support for Color Spaces by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/968
- Dynamic Mask: Implement sRGB and HDR support, and fix #819 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/967
- cmake: Require nlohmann-json when building the front-end by @rmnvgr in https://github.com/Xaymar/obs-StreamFX/pull/914
- encoder/ffmpeg: Assume extra data and sei are present on first frame by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/919
- encoder/ffmpeg: Add split framerate with integer fractions by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/921
- encoder/ffmpeg: Improve software scaling quality by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/925
- Add support for HDR formats by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/922
- encoder/handler/prores_aw: Don't enable Key-Frame options by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/926
- encoder/handler/dnxhd: Use endian-independent formats by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/927
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/915
- Improve Windows installer with proper System install location, Current User install method, and better UI by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/930
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/928
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/907
- Improve Windows and Mac bundling by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/912
- #881: Texture inputs to Shaders are unstable by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/884
- Deprecate AMD AMF encoders by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/885
- Deprecate AOM AV1 encoder by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/886
- Add missing deprecation notices by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/889
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/867
- cmake: Fix bad version strings by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/887
- project: Updating contributing guidelines by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/894
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/890
- project: Updating contributing guidelines by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/895
- Fix a huge number of warnings by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/893
- third-party: Update obs-studio to 28.0.0 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/901
- code: Fix GCC warning diagnostic pragmas by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/902
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/897
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/817
- Improve GitHub integration by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/841
- project: Fix incorrect tabs in YAML by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/842
- Improve metadata generation by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/837
- cmake: Add support for Qt6 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/866
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/832
- Further improve CI and Github integration by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/843
- ci: Remove Code Signing with self-signed certificate by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/873
- Fix compilation errors with Debug and/or Profiling by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/876
- Deduplicate CI build pipeline by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/874
- Remove Auto-Dependency System by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/870
- Working on source code [Refactor] by @GermanAizek in https://github.com/Xaymar/obs-StreamFX/pull/836
- obs/gs/effect: Revert #836 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/880
- Update libOBS to 28.0.0-rc1 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/878
- Improve CMake build script(s) by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/813
- ci: Add GCC back to the build by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/820
- Add ClangCL, and update Windows SDK requirements by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/821
- ci: Allow failures for experimental CI tests by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/824
- ci: Use specific LLVM/Clang versions by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/825
- project: Add support for multi stage release cycles by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/823
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/778
- ffmpeg-encoder/dnxhr: Added Avid DNxHR Encoder based on FFmpeg by @IceStormNG in https://github.com/Xaymar/obs-StreamFX/pull/784
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/786
- Refactor C++ wrappers for libOBS by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/806
Please read the Installation Guide and System Requirements!
The installation of StreamFX requires that you follow certain instructions, as well as fulfill a minimum hardware and software requirement. Please ensure that you have read and verified both before asking for help, as many issues can be fixed by reading both of them in their entirety.
Windows |
Linux |
MacOS |
|
---|---|---|---|
OS | Windows 10 (21H2 or newer), Windows 11 | Ubuntu 20.04 (or equivalent) Ubuntu 22.04 (or equivalent) |
MacOS 10.15 (or newer) |
CPU |
Any x86-64-v3 compatible: AMD Excavator Series, Intel Haswell Series or better Required Instruction Sets: x86-64-v2, AVX, BMI1, BMI2, F16C, FMA, MOVBE |
||
Any ARM64-v8.5-A compatible: Apple M1 Series or better | |||
Memory (RAM) | 16 GiB (total) or more | ||
Video (GPU) | DirectX 11 / OpenGL 3 capable, Shader Model 4, 4 GiB VRAM (total) or more | ||
Disk Space | 4 GiB (free) | ||
OBS Studio Version | 29.0.0 | ||
Other | Microsoft Visual C/C++ Redistributable 2017-2022 |
Qt for obs-studio FFmpeg for obs-studio System Libraries must match chosen Ubuntu version! |
A working GPU |
We had to remove binaries and source code due to a contributor submitting code that was not licensed under the GPLv2 "or later" license or any compatible license. While we were able to adjust the source code contained in the repository to exclude these license violations, we can't guarantee that binaries will be available again.
These releases are offered for early adopter Supporters and are not meant for Production usage. They are offered with no warranty or guarantees and the StreamFX project and its maintainers explicitly reject any responsibilities for damages or unexpected changes resulting from the use of these releases. Additionally, the project and its maintainers are not interested in any bugs, crashes or freezes found by using these releases, as we have enough automated tests to cover most functionality. Please use the Stable production-ready release if you do not wish to encounter unusual problems.
Maintaining a project like StreamFX requires time and money, of which both are in short supply. If you use any feature of StreamFX, please consider supporting StreamFX via Patreon. Even as little as 1€ per month matters a lot, plus you get a number of benefits!
Please read the Installation Guide and System Requirements!
The installation of StreamFX requires that you follow certain instructions, as well as fulfill a minimum hardware and software requirement. Please ensure that you have read and verified both before asking for help, as many issues can be fixed by reading both of them in their entirety.
Windows |
Linux |
MacOS |
||
---|---|---|---|---|
OS | Minimum | Windows 10 21H2 (or newer) | Ubuntu 20.04 (or equivalent) Ubuntu 22.04 (or equivalent) |
MacOS 10.15 (or newer) |
Recommended | Windows 10 21H2 (or newer) | Ubuntu 20.04 (or equivalent) Ubuntu 22.04 (or equivalent) |
MacOS 12 (or newer) | |
CPU | Minimum |
Any x86-64-v3 compatible: AMD Excavator Series, Intel Haswell Series Required Instruction Sets: x86-64-v2, AVX, BMI1, BMI2, F16C, FMA, MOVBE |
||
Any ARM64-v8.5-A compatible: Apple M1 Series | ||||
Recommended |
Any x86-64-v3 compatible: AMD Zen 2 Series, Intel Comet Lake Series Required Instruction Sets: x86-64-v2, AVX, BMI1, BMI2, F16C, FMA, MOVBE |
|||
Any ARM64-v8.5-A compatible: Apple M1 Series | ||||
Memory (RAM) | Minimum | 4 GiB (free) | ||
Recommended | 8 GiB (free) | 6 GiB (free) | ||
Video (GPU) | Minimum | DirectX 11 / OpenGL 3 capable, Shader Model 4, 4 GiB VRAM (total) | ||
Recommended | DirectX 12 / OpenGL 4 capable, Shader Model 5, 6 GiB VRAM (total) | |||
Disk Space | Minimum | ~50 MiB (free) | ||
Recommended | ~50 MiB (free) | |||
OBS Version | Minimum | 29.0.0 | ||
Recommended | 29.0.0 | |||
Other | Microsoft Visual C/C++ Redistributable 2017-2022 |
Qt for obs-studio FFmpeg for obs-studio System Libraries must match chosen Ubuntu version! |
The old two stage system didn't work out quite as I'd have hoped: It didn't communicate the dangers of Testing well, and did not differentiate between different stability levels. To solve this I've adopted a new release process now available in StreamFX, which follows the usual development cycle of Software itself: Alpha -> Beta -> Candidate -> Release. The further right you go in that graph, the more stable software is supposed to be, at the cost of new features and changes. The further left you go, the more up-to-date things will be, but you sacrifice stability and safety.
For quite some time, Shader Texture Inputs were haunted by ghosts from the past, also known as work-arounds and deprecated code. This resulted in Shader Texture Inputs keeping stale references around and requiring an OBS Studio restart to actually update. Several code modernization cycles later, this is now fixed and Shader Texture Inputs immediately update as expected - while also no longer keeping stale references around, so your Scene Collections are safe again.
This should have gone up in flames way sooner than it did, and yet it was almost completely invisible until OBS Studio 27.1. The bug dates as far back as v0.7 and is pretty severe: The Dynamic Mask filter would increment their own reference count every frame if no Input was selected, and would double-free the Input without clearing the pointer to it. And somehow, this didn't explode until now.
With OBS Studio 28.0 came the introduction of Loadable Bundles, a variation of MacOS's Bundle format. This format offers a lot of advantages for almost no drawbacks, and StreamFX from now on uses this packaging format on MacOS. As a bonus, FFmpeg Encoders should now be available on MacOS too.
As the packaging and installation method has changed, please follow the Uninstallation guide to clean up any left over old files. Failure to do so will result in undefined behavior and may render OBS Studio entirely unusable. You have been warned!
Investigation into how OBS Studio actually loads plugins revealed a change that had gone under the radar entirely. Since OBS Studio v0.15.0 it is possible to load plugins from %ProgramData%\obs-studio\plugins
, which is a much safer option and now the only supported System-wide installation mode for StreamFX. This functionality has been so hidden that even the official obs-plugintemplate doesn't make use of it. An added bonus is that this should support Steam users of OBS Studio.
StreamFX can now be installed for individual users, instead of installing for everyone on the system! This is possible thanks to a PR by @abcdw, which allows us to set two environment variable to install and load plugins from %LocalAppData%\Programs\obs-studio\plugins
in addition to all the other locations. These installations will conflict with a System-wide install and as such can't coexist, but may still work with the Steam release of OBS Studio.
A new contender for the visually lossless intermediate codec arrives: Avid DNxHR! Thanks to work done by @IceStormNG, it is now possible to use this encoder without configuration trickery and directly configure it with a proper user interface. As this encoder is based on the real codec specification, it may perform better than the Apple ProRes encoder while being way more compatible with video editing software.
All FFmpeg Encoders now support encoding a different framerate than OBS Studio itself is running at. This allows for streaming at 30 FPS while recording at 60 FPS, or even recording at 120 FPS, or other strange things. Note that this is quite literally breaking several specifications, so use at your own risk - if things break, be happy that at least they broke with a noticable impact!
Users on ARM64 devices can now enjoy native ARM64 binaries for less CPU usage, and as such more overall performance on CPU focused tasks. While StreamFX is mostly GPU workloads, some of the internal code does actually do very heavy lifting that benefits from this.
With HDR support in OBS Studio finally being available, it was necessary to finally tackle the issue of sRGB and HDR support once and for all. Many Sources/Filters/Transitions will get proper sRGB and HDR support over future releases to catch up with OBS Studio. You can check the Version Information on the wiki to see if a certain feature supports sRGB or HDR yet.
With OBS Studio 28.0 the old obs-amd-encoder project is finally laid to rest and a new AMD AMF integration is provided. This AMD AMF integration is technically and functionally superior to both the old obs-amd-encoder and FFmpegs AMD AMF integration. All users are urged to migrate as soon as possible, as no guarantees are made for how long this deprecated encoder will remain. Additionally, users on Linux should put their focus on the open Pull Requests for Linux support (1, 2).
With OBS Studio 27.2.4, the SVT-AV1 and AOM-AV1 encoders were integrated into OBS Studio directly. This integration is functionally identical, and as such replaces the StreamFX provided AOM-AV1 encoder. All users are urged to migrate as soon as possible, as no guaratees are made for how long this deprecated encoder will remain.
- Update Third-Party dependencies by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1013
- cmake: Require generation of PATCH and TWEAK variables by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1016
- updater: Compare all parts of the version number by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/1018
- plugin: Only initialize GLAD on OpenGL graphics backend by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/983
- project: Improve templates and UX by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/984
- Code Cleanup by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/985
- gfx/blur/box: Initialize streamfx::gfx::util by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/986
- #818 Don't self-reference when masking is enabled by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/987
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/959
- Fix CI and update Third Party code by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/988
- Implement dynamically scaled Thread Pool by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/933
- Save configuration after ~100ms have passed by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/934
- templates/windows/installer: Don't create Icons in Portable mode by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/936
- templates/windows/installer: Implement
/Portable
installer flag for CLI users by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/935- cmake, templates: Remove code signing integration by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/938
- Don't show path selection for System & User mode by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/937
- Fix some Use-After-Free issues with the D3D11 integration with FFmpeg by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/953
- encoder/ffmpeg: Remove usage of
avcodec_close
by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/952- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/932
- Implement support for Color Spaces by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/968
- Dynamic Mask: Implement sRGB and HDR support, and fix #819 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/967
- cmake: Require nlohmann-json when building the front-end by @rmnvgr in https://github.com/Xaymar/obs-StreamFX/pull/914
- encoder/ffmpeg: Assume extra data and sei are present on first frame by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/919
- encoder/ffmpeg: Add split framerate with integer fractions by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/921
- encoder/ffmpeg: Improve software scaling quality by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/925
- Add support for HDR formats by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/922
- encoder/handler/prores_aw: Don't enable Key-Frame options by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/926
- encoder/handler/dnxhd: Use endian-independent formats by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/927
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/915
- Improve Windows installer with proper System install location, Current User install method, and better UI by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/930
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/928
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/907
- Improve Windows and Mac bundling by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/912
- #881: Texture inputs to Shaders are unstable by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/884
- Deprecate AMD AMF encoders by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/885
- Deprecate AOM AV1 encoder by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/886
- Add missing deprecation notices by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/889
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/867
- cmake: Fix bad version strings by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/887
- project: Updating contributing guidelines by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/894
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/890
- project: Updating contributing guidelines by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/895
- Fix a huge number of warnings by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/893
- third-party: Update obs-studio to 28.0.0 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/901
- code: Fix GCC warning diagnostic pragmas by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/902
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/897
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/817
- Improve GitHub integration by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/841
- project: Fix incorrect tabs in YAML by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/842
- Improve metadata generation by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/837
- cmake: Add support for Qt6 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/866
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/832
- Further improve CI and Github integration by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/843
- ci: Remove Code Signing with self-signed certificate by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/873
- Fix compilation errors with Debug and/or Profiling by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/876
- Deduplicate CI build pipeline by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/874
- Remove Auto-Dependency System by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/870
- Working on source code [Refactor] by @GermanAizek in https://github.com/Xaymar/obs-StreamFX/pull/836
- obs/gs/effect: Revert #836 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/880
- Update libOBS to 28.0.0-rc1 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/878
- Improve CMake build script(s) by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/813
- ci: Add GCC back to the build by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/820
- Add ClangCL, and update Windows SDK requirements by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/821
- ci: Allow failures for experimental CI tests by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/824
- ci: Use specific LLVM/Clang versions by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/825
- project: Add support for multi stage release cycles by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/823
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/778
- ffmpeg-encoder/dnxhr: Added Avid DNxHR Encoder based on FFmpeg by @IceStormNG in https://github.com/Xaymar/obs-StreamFX/pull/784
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/786
- Refactor C++ wrappers for libOBS by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/806
We had to remove binaries and source code due to a contributor submitting code that was not licensed under the GPLv2 "or later" license or any compatible license. While we were able to adjust the source code contained in the repository to exclude these license violations, we can't guarantee that binaries will be available again.
These releases are offered for early adopter Supporters and are not meant for Production usage. They are offered with no warranty or guarantees and the StreamFX project and its maintainers explicitly reject any responsibilities for damages or unexpected changes resulting from the use of these releases. Additionally, the project and its maintainers are not interested in any bugs, crashes or freezes found by using these releases, as we have enough automated tests to cover most functionality. Please use the Stable production-ready release if you do not wish to encounter unusual problems.
Maintaining a project like StreamFX requires time and money, of which both are in short supply. If you use any feature of StreamFX, please consider supporting StreamFX via Patreon. Even as little as 1€ per month matters a lot, plus you get a number of benefits!
Please read the Installation Guide and System Requirements!
The installation of StreamFX requires that you follow certain instructions, as well as fulfill a minimum hardware and software requirement. Please ensure that you have read and verified both before asking for help, as many issues can be fixed by reading both of them in their entirety.
Windows |
Linux |
MacOS |
||
---|---|---|---|---|
OS | Minimum | Windows 10 21H2 (or newer) | Ubuntu 20.04 (or equivalent) Ubuntu 22.04 (or equivalent) |
MacOS 10.15 (or newer) |
Recommended | Windows 10 21H2 (or newer) | Ubuntu 20.04 (or equivalent) Ubuntu 22.04 (or equivalent) |
MacOS 12 (or newer) | |
CPU | Minimum |
Any x86-64-v3 compatible: AMD Excavator Series, Intel Haswell Series Required Instruction Sets: x86-64-v2, AVX, BMI1, BMI2, F16C, FMA, MOVBE |
||
Any ARM64-v8.5-A compatible: Apple M1 Series | ||||
Recommended |
Any x86-64-v3 compatible: AMD Zen 2 Series, Intel Comet Lake Series Required Instruction Sets: x86-64-v2, AVX, BMI1, BMI2, F16C, FMA, MOVBE |
|||
Any ARM64-v8.5-A compatible: Apple M1 Series | ||||
Memory (RAM) | Minimum | 4 GiB (free) | ||
Recommended | 8 GiB (free) | 6 GiB (free) | ||
Video (GPU) | Minimum | DirectX 11 / OpenGL 3 capable, Shader Model 4, 4 GiB VRAM (total) | ||
Recommended | DirectX 12 / OpenGL 4 capable, Shader Model 5, 6 GiB VRAM (total) | |||
Disk Space | Minimum | ~50 MiB (free) | ||
Recommended | ~50 MiB (free) | |||
OBS Version | Minimum | 29.0.0-beta2 | ||
Recommended | ||||
Other | Microsoft Visual C/C++ Redistributable 2017-2022 |
Qt for obs-studio FFmpeg for obs-studio System Libraries must match chosen Ubuntu version! |
The old two stage system didn't work out quite as I'd have hoped: It didn't communicate the dangers of Testing well, and did not differentiate between different stability levels. To solve this I've adopted a new release process now available in StreamFX, which follows the usual development cycle of Software itself: Alpha -> Beta -> Candidate -> Release. The further right you go in that graph, the more stable software is supposed to be, at the cost of new features and changes. The further left you go, the more up-to-date things will be, but you sacrifice stability and safety.
For quite some time, Shader Texture Inputs were haunted by ghosts from the past, also known as work-arounds and deprecated code. This resulted in Shader Texture Inputs keeping stale references around and requiring an OBS Studio restart to actually update. Several code modernization cycles later, this is now fixed and Shader Texture Inputs immediately update as expected - while also no longer keeping stale references around, so your Scene Collections are safe again.
This should have gone up in flames way sooner than it did, and yet it was almost completely invisible until OBS Studio 27.1. The bug dates as far back as v0.7 and is pretty severe: The Dynamic Mask filter would increment their own reference count every frame if no Input was selected, and would double-free the Input without clearing the pointer to it. And somehow, this didn't explode until now.
With OBS Studio 28.0 came the introduction of Loadable Bundles, a variation of MacOS's Bundle format. This format offers a lot of advantages for almost no drawbacks, and StreamFX from now on uses this packaging format on MacOS. As a bonus, FFmpeg Encoders should now be available on MacOS too.
As the packaging and installation method has changed, please follow the Uninstallation guide to clean up any left over old files. Failure to do so will result in undefined behavior and may render OBS Studio entirely unusable. You have been warned!
Investigation into how OBS Studio actually loads plugins revealed a change that had gone under the radar entirely. Since OBS Studio v0.15.0 it is possible to load plugins from %ProgramData%\obs-studio\plugins
, which is a much safer option and now the only supported System-wide installation mode for StreamFX. This functionality has been so hidden that even the official obs-plugintemplate doesn't make use of it. An added bonus is that this should support Steam users of OBS Studio.
StreamFX can now be installed for individual users, instead of installing for everyone on the system! This is possible thanks to a PR by @abcdw, which allows us to set two environment variable to install and load plugins from %LocalAppData%\Programs\obs-studio\plugins
in addition to all the other locations. These installations will conflict with a System-wide install and as such can't coexist, but may still work with the Steam release of OBS Studio.
A new contender for the visually lossless intermediate codec arrives: Avid DNxHR! Thanks to work done by @IceStormNG, it is now possible to use this encoder without configuration trickery and directly configure it with a proper user interface. As this encoder is based on the real codec specification, it may perform better than the Apple ProRes encoder while being way more compatible with video editing software.
All FFmpeg Encoders now support encoding a different framerate than OBS Studio itself is running at. This allows for streaming at 30 FPS while recording at 60 FPS, or even recording at 120 FPS, or other strange things. Note that this is quite literally breaking several specifications, so use at your own risk - if things break, be happy that at least they broke with a noticable impact!
Users on ARM64 devices can now enjoy native ARM64 binaries for less CPU usage, and as such more overall performance on CPU focused tasks. While StreamFX is mostly GPU workloads, some of the internal code does actually do very heavy lifting that benefits from this.
With HDR support in OBS Studio finally being available, it was necessary to finally tackle the issue of sRGB and HDR support once and for all. Many Sources/Filters/Transitions will get proper sRGB and HDR support over future releases to catch up with OBS Studio. You can check the Version Information on the wiki to see if a certain feature supports sRGB or HDR yet.
With OBS Studio 28.0 the old obs-amd-encoder project is finally laid to rest and a new AMD AMF integration is provided. This AMD AMF integration is technically and functionally superior to both the old obs-amd-encoder and FFmpegs AMD AMF integration. All users are urged to migrate as soon as possible, as no guarantees are made for how long this deprecated encoder will remain. Additionally, users on Linux should put their focus on the open Pull Requests for Linux support (1, 2).
With OBS Studio 27.2.4, the SVT-AV1 and AOM-AV1 encoders were integrated into OBS Studio directly. This integration is functionally identical, and as such replaces the StreamFX provided AOM-AV1 encoder. All users are urged to migrate as soon as possible, as no guaratees are made for how long this deprecated encoder will remain.
- plugin: Only initialize GLAD on OpenGL graphics backend by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/983
- project: Improve templates and UX by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/984
- Code Cleanup by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/985
- gfx/blur/box: Initialize streamfx::gfx::util by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/986
- #818 Don't self-reference when masking is enabled by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/987
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/959
- Fix CI and update Third Party code by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/988
- Implement dynamically scaled Thread Pool by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/933
- Save configuration after ~100ms have passed by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/934
- templates/windows/installer: Don't create Icons in Portable mode by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/936
- templates/windows/installer: Implement
/Portable
installer flag for CLI users by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/935- cmake, templates: Remove code signing integration by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/938
- Don't show path selection for System & User mode by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/937
- Fix some Use-After-Free issues with the D3D11 integration with FFmpeg by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/953
- encoder/ffmpeg: Remove usage of
avcodec_close
by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/952- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/932
- Implement support for Color Spaces by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/968
- Dynamic Mask: Implement sRGB and HDR support, and fix #819 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/967
- cmake: Require nlohmann-json when building the front-end by @rmnvgr in https://github.com/Xaymar/obs-StreamFX/pull/914
- encoder/ffmpeg: Assume extra data and sei are present on first frame by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/919
- encoder/ffmpeg: Add split framerate with integer fractions by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/921
- encoder/ffmpeg: Improve software scaling quality by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/925
- Add support for HDR formats by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/922
- encoder/handler/prores_aw: Don't enable Key-Frame options by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/926
- encoder/handler/dnxhd: Use endian-independent formats by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/927
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/915
- Improve Windows installer with proper System install location, Current User install method, and better UI by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/930
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/928
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/907
- Improve Windows and Mac bundling by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/912
- #881: Texture inputs to Shaders are unstable by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/884
- Deprecate AMD AMF encoders by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/885
- Deprecate AOM AV1 encoder by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/886
- Add missing deprecation notices by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/889
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/867
- cmake: Fix bad version strings by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/887
- project: Updating contributing guidelines by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/894
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/890
- project: Updating contributing guidelines by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/895
- Fix a huge number of warnings by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/893
- third-party: Update obs-studio to 28.0.0 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/901
- code: Fix GCC warning diagnostic pragmas by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/902
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/897
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/817
- Improve GitHub integration by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/841
- project: Fix incorrect tabs in YAML by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/842
- Improve metadata generation by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/837
- cmake: Add support for Qt6 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/866
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/832
- Further improve CI and Github integration by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/843
- ci: Remove Code Signing with self-signed certificate by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/873
- Fix compilation errors with Debug and/or Profiling by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/876
- Deduplicate CI build pipeline by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/874
- Remove Auto-Dependency System by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/870
- Working on source code [Refactor] by @GermanAizek in https://github.com/Xaymar/obs-StreamFX/pull/836
- obs/gs/effect: Revert #836 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/880
- Update libOBS to 28.0.0-rc1 by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/878
- Improve CMake build script(s) by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/813
- ci: Add GCC back to the build by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/820
- Add ClangCL, and update Windows SDK requirements by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/821
- ci: Allow failures for experimental CI tests by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/824
- ci: Use specific LLVM/Clang versions by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/825
- project: Add support for multi stage release cycles by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/823
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/778
- ffmpeg-encoder/dnxhr: Added Avid DNxHR Encoder based on FFmpeg by @IceStormNG in https://github.com/Xaymar/obs-StreamFX/pull/784
- New Crowdin updates by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/786
- Refactor C++ wrappers for libOBS by @Xaymar in https://github.com/Xaymar/obs-StreamFX/pull/806