#plugins-and-tools
1 messages · Page 116 of 1
Guys, here I am again. I just installed GStreamer plugin in OBS on Linux and I have 2 troubles...
- How can I use VAAPI for it? It just doesn't present in the list;
- How TH can I use GStreamer source for game capture?
Yes, I copied the message, don't eat me pls >.<
So i'm trying to add python to obs and add the zoom and follow mouse python code. anyone got suggestions for this? It's on my google drive.
[zoom_and_follow_mouse.py] Traceback (most recent call last):
[zoom_and_follow_mouse.py] File "G:/My Drive/Streaming/Twitch/OBS Studio/data/obs-plugins/Scripts\zoom_and_follow_mouse.py", line 2, in <module>
[zoom_and_follow_mouse.py] import pywinctl as pwc # version >=0.0.30
[zoom_and_follow_mouse.py] ModuleNotFoundError: No module named 'pywinctl'
'pywinctl' is installed on the correct python version. no other python versions are on my pc.
Who's a smart person that knows how to fix this? 🤔
You might want to try the #scripting channel, which is for OBS script development.
If ndi tools / obs-ndi didnt work for yu. Then try using teleport plugin . That's another alternative for ndi.
https://obsproject.com/forum/resources/teleport.1445/
Just make sure you install it on both game pc and stream pc.
Ah it seems you tried installing the obs-ndi plugin from obs forums right. So. If obs-ndi doesnt work for yu. You can download ndi tools
https://www.ndi.tv/tools/#download-tools
(Yesh you needa fill out your details and download link will be on your email.)
Start > ndi tools > then you'll see alot of ndi apps. Use the hx capture (which uses your gpu) or screen capture ( remember ndi tools method is basically same as if you used a capture card. As it outputs your monitor/display feed.) Yesh ofc you can configure it and choose an window etc. From the ndi icon from system tray~
Most people use teleport / virtual cam filter / obs ndi
So that they can have moar control on what video feeds they send via obs.
So yea.
I hope this helps ya.
Also forgot bout this.
You can check if you have the plugin installed in obs via help > log files > view current log.
Just look for obs-ndi.dll i guess
And yesh this is how yu see wut all plugins you have installed. Too.
A sorry for this long long message. I hope it helps and you're able to get it working nee. Take care and have a great day Ahead!

Looks like this is the right place to ask about NDI
My setup is working but I do have a bit of an issue, the quality is absolutely terrible for the settings im using, and is nowhere even close to source.
Is NDI just inherently poor quality or is there something else you need to do other than install the runtime and plugin?
It looks like some kind of sharpening has been applied or perhaps just compression artifacting?
Im not sure how well itll show up but left is literally a recording then recompressed into a video and then uploaded and viewed on youtube
right is NDI capture on the second pc
it might not seem major but across the whole frame it looks seriously terrible
Hellou
yesterday I did a search and what seems the model of the AMD processor does not have SSSE3 so it did not appear is it true? it was a 2017 bug
i didnt know wut SSSE3 was until now, wah~ and also i saw this in ndi's website.
found more bout SSSE thingy~
so the main question becomes, wut's your processor? ig if it doesnt support, then try teleport and see how it goes~
I'm going to enter the pc now
Sec..
Will I throw the downloaded file in the folder directly?
I tried to run and it gave an error I have already disabled the anti virus
or should I move the files to folder?
my procss
I think the processor really doesn't work! the most fun and that it worked in a celeron
this low plug and now?
I understood everything about teleport and it worked
fck i love u ♥
I believe that the version of my processor will not be able to do NDI
Ohh good
Glad to hear that dayo~ ~ have fun nee 
Anyone have success using the Replay Buffer on the Source Record plugin for OBS?
Objective: Have a hotkey that when pressed will record the previous 3 minutes of my camera source (full 1920x1080) as well as the last 3 minutes of clean gameplay footage.
Setup: I've got Source Record and set it up as an Effects Filter to both the camera and the gameplay sources. I have "Replay Buffer" checked and set to 180s.
-If I do Record Mode: None with the effect "active" (eye on) and save the replay buffer that gets me nothing. It saves the normal replay buffer but not either of the ones I've set up in Source Record.
-If I set Record Mode: Always (or stream when it's active) with the effect active it will IMMEDIATELY start recording everything, like the whole 3 hour stream or recording. And still I get no 3 min clip with the replay buffer for each source.
It seems likely I'm misconfiguring something. Hopefully someone can point me in the right direction, a lot of videos on the plugin just brush over the Replay Buffer and don't tell you how to set it up to do what I want.
Thanks everyone!
@eager ocean i tried to repro your issue and broke my scene collection, but i think i'm making progress
@weak escarp it looks like the source record plugin will crash on exiting obs-studio in the following scenario: create a new "source record" filter, set "Record Mode" to "Streaming or Recording", enable replay buffer and set it to 180 seconds, then change the encoder to "NVENC"; this also corrupts the scene collection, rendering obs-studio unable to start (obs64.exe runs, but UI will not show up)
- 13.1% Rendering Lag
- Windows 10 21H2 (OK)
- No Output Session
AMD Ryzen 7 5800X - OK! / GeForce GTX 1080 Ti - OK!
Guys, I'm freaking done. I need step-by-step instructions for installing VKCapture...
Facepalm
I hate my stupidity
Daaamn...
Computers are not my universe
Sorry for this, guys
I'm just really too stupid
Hi Chiyo! I remember you helped me before with an issue I was having. Thank you so much for this!
I'm sorry I broke your stuff. 😦
It just doesn't want to compile it
@eager ocean of course i make backups before messing with settings, and even if i didn't, i'd learn from this and make backups from that point forward
That's why I hate to compile stuff
@eager ocean as for your issue, i think you might be able to circumvent this by setting start trigger to "virtual cam" and starting virtual camera, and also don't forget to set different filename patterns for each source record
So just to understand/clarify...
- Set SourceRecord filter to "Visible" (the eye) and the Record Mode as "Virtual Camera"
- Have the Replay Buffer running during stream (as normal)
- When I want a capture of the previous 3 minutes, I "Start Virtual Camera"?
What I'm not wrapping my head around is... wouldn't that just start recording the scene the moment I Start Virtual Camera? How do I make it so I'm only getting the PREVIOUS 3 minutes, and not a recording of what's currently happening until I turn it off?
@eager ocean no, start virtual camera so that the source record filters start their replay buffers
you won't be needing the virtual camera, but i don't see a way to tell source record to just start replay buffer and be ready to save replays
oh, and set the same hotkey to save all the replay buffers in settings>hotkeys
Okay...
Okay sounds good. I need to go out for a bit but I’m going to test this today once I’m back.
And can I just say you’re a very helpful member of the community. 🙂
Guys? :-;
Hey guys is there any follower goal plugin for facebook ? 
Your missing the VULKAN library...
are you trying to build the plugin for Ubuntu?
Is there a way to embed obs to my web site so people can watch me live?
Hi guys, i'm running super smash bros ultimate tournament and i would like to create a obs pluging for editing name, score, bo3/5 right inside of obs and avoid few mouse click and gain some times, i don't know if there is good tutorial to learn how to do it or if someone can take my "order" haha
There's roughly 38291674975t948828967127847829ft9ds7g7ds84954^84 scorebored resources on our forums you could look at.
I'd recommend starting there rather than from scratch.
well i scratch the forum with plugin and i don't find any of that so if you have a link, sure i will look at it
the best thing i find was this : https://github.com/joaorb64/TournamentStreamHelper
but it's in a separate software witch i don't want
but maybe i don't dig enought into the pluging section of obs !
There's a ton.
Most are just controlled through a web page, which is the most logical way to do it.
no, any web page I meant :p
I compiled it
I installed it
But it doesn't present in source list
WHAT THE HECK?!
I figured out...
🤦
Well, let's just hope that it'll work now...
bump, if someone has time :)
Who can help me integrate csv over http into obs as text sources for different graphics?
Try the support channels.
any have download for this old without chatbot?
Streamlabs Desktop is not maintained by us, and we are unable to provide support for it. Please go to https://support.streamlabs.com/hc/en-us/requests/new and submit your question there.
You can download it on their website as standalone. It's a little hidden away though.
ya i tried to search but will keep trying many thanks and sorry for confusion
can anyone help me properly set up my alerts and recommend a free overlay that looks cool lol new to streaming and know basically nothing
Hi, I'm looking for a nice way to add some kind of banner in the bottom with a name and affiliation of the person who is currently on video. Of course nice fade-in/out animations would be nice. Is there a plugin/script or something like that that helps me with that? Or shell I create something like that from scratch as for example a transparent PNG or so. It would be great when I could easily exchange the text without having to regenerate an image in photoshop or so every time.
For dynamic stuff, a lot of people turn to web sources, which can be very flexible.
Example: https://obs.infor-r.com/
you can of course make a pretty thing as a png, and slide it in with a text source for instance @snow crystal
That looks really beautiful. I have After Effects here as well, so maybe I will tweak the template a bit and then use the code with my template. The affiliation is usually way longer than the name.
Thanks for the hint!
or just use whatever image you want and a text source + built in show/hide transition (slide right in this case)
Hi all!
I am currently working on a custom rtmp ingest service, which would need additional UI widgets (buttons, input fields).
How can I do that?
I was assuming that adding obs_properties in rtmp_common_properties would do the trick. But it seems the UI elements are basically fixed in StreamSettingsUI, is that correct?
Possibly look at how the YouTube integration works in OBS
Is there a plugin for selecting sub-folders to put recordings into based on Game Capture Source or Scene or something?
Currently I have Profiles for every game I record, the only difference being the Filename Formatting in the Advanced Tab having a different sub-folder as a prefix
I just realised that it would be very weird if you switch Game or Scene mid recording so maybe there is no better solution (?)
Ah thanks.
I saw that. It just looks like it dug its claws deep into the core of OBS, and hoped there is a way that's less invasive.
no
From what I understand, OBS doesn't have any way to make big changes like that via plugins, which is probably why it took so long to get proper YouTube support.
say it with me: service objects in obs suck
Yeah we're trying to fix that.
Original plans were getting that into 28, I'm not that confident anymore though
I tried to download the cam plugin but I couldn't find it
ios cam
help
@wary escarp
Please don't ping people about support if they aren't already helping you.
I cannot find the source code of iOS Camera Plugin. It might violate the license of libobs.
There is a FAQ site for iOS Camera Plugin. Have you checked it and contacted to the author?
https://obs.camera/docs/getting-started/
Hey, I'm new to OBS and i'm looking to build a plugin that allows me to render web pages and do custom UI things with javascript and so forth
I've been studying how obs-browser works, specifically how the browser panels behave and it seems that I need to do something similar in my plugin
What i'm dealing with at the moment is that i have inherited a project that forks obs-browser and has a lot of custom code in obs-browser. I have been tasked
with making a plugin instead of forking obs-browser and I'm just trying to wrap my head around what this all entails
The first step that I am trying to achieve is to have a plugin that when loaded displays a box with a custom web page inside. I'm just looking for some high level guidance on how to build such a plugin. I greatly appreciate any help or where to start.
Seems a little vague;
If you're just looking to have either a source or a dock display a custom webpage that's already part of OBS?
so what i'm working on currently depends on browser-client.hpp and browser-app.hpp inside of obs-browser. If these change, the entire codebase will break and I want the plugin to be standalone.
Sorry to ask; what is you're trying to achieve? Outside of "making a plugin" what is the final thing you're trying to achieve with this?
Usually there's already solutions in place.
at a high level i'm trying to build something that talks to 3rd party web apis and renders web pages.
Wouldn't a regular page made in most languages and then added as a Browser Dock fulfil that?
This is very basic, jquery fetching information from a webserver.
https://streamable.com/kqh333
But as a proof of concept. I'm wondering what it is that the current system doesn't enable that you're trying to do :p
I'm still not 100% clear on why the obs-browser plugin was forked but there is so much custom stuff done here with CEF and state management.
Okay. Hard to know if there's an easier solution to what you're trying to accomplish without knowing what it is. Doesn't sound like you're too sure yourself yet? 
there's a whole website embedded in here requiring auth and a lot of stuff that's beyond just rendering a page.
yeah definitely not too sure, was thrown into the wild and just trying to grasp what I need to do
Anything you can auth on a webpage, you can auth in a browser dock to my knowledge.
A browser dock is essentially just rendering a website in an OBS window.
Using CEF, currently version 95 iirc.
probably best to strip down the requirements to see what the original goal of the inherited forked plugin was trying to do, and try to recreate that functionality with existing solutions/APIs first
once you have a better idea of what you need, you'll be able to ask more specific questions
ok, so the main goal is ultimately to expose a site and many of its features to users as a plugin while in obs. I just know that this was initially done using a fork of obs-browser and has a lot of reliance on internals of obs browser and i guess I can start by just building a plugin that users a browser dock.
is this preferred as a dock or as a new window?
are there multiple pages/windows/docks?
yep for sure. there are many windows
i want certain pieces of the site to be their own dock or window for example
with multiple pieces that you can move around side by side
sounds like it might be better as a separate application altogether? what is the reason for it being integrated into OBS?
it's targeted specifically towards obs users
Sounds like some StreamElements stuff.
yep exactly
have you familiarised yourself with OBS APIs outside of the context of the plugin you're working on?
i have not, i have just been noting everything that is being called currently.
Ah, that's a good place to start.
But yeah, definitely start high level first and introduce yourself to each bit rather than overwhelming yourself with how complex OBS and its browser component are on their own.
Why does obs have plugins and what do they do¿
sounds right, thank you. I think it also doesn't help that i'm totally unfamiliar with QT as well at the moment. I noticed a lot ofQDialog and I don't know how the obs frontend ui things differ from that.
Some things in OBS are just subclasses of existing Qt widgets
Quite a lot actually
So definitely good to familiarise yourself with Qt, although I think one can get away with making a plugin that doesn't involve Qt at all (through things like properties?)
i guess as a minimal POC, i'd love to just be able to put something together that uses whatever existing obs api's and just renders a hard coded web page. I think @harsh topaz provided a good example i'd like to try to reproduce here: https://streamable.com/kqh333
i much rather not concern myself with the internals of obs-browser if possible, so my library would just need to call the high level stuff
That example is the built-in browser docks though.
Might be easier to create a webpage that'll function in OBS, and simply have users add their unique URL to OBS Browser Docks.
Or have a page where they can log in through the browser dock.
That's generally better than a plugin (and instantly cross-platform!)
StreamElements ended up doing a lot of work with replacing the entire CEF. Ultimately it just resulted in a lot of issues for end-user.
All to get things, that they could literally add simply by adding a browser URL to a dock.
Sometimes the end product > the idea.
Not only do you have to maintain the website part of it, but you'll also have to dedicate time to constantly fix/update the plugin so users that have it don't find themselves having to uninstall or sit on old versions of OBS to have things work.
It's a lot of dev time dedicated that shouldn't be lightly decided upon, if there's easier or more approachable solutions to solve the same issue.
Ultimately, this is what happened when SE did it:
!se
Due to a number of incompatibilities with OBS 27.2 and newer, we are no longer able to provide support for instances of OBS with the StreamElements plugin (SE.live) installed.
If you need help with StreamElements products or services, please join their Discord server or submit a support ticket as we cannot provide further assistance here.
Normally the chance of a plugin breaking isn't that great - but you're messing with the CEF and what I've seen in that department makes me think plugin devs should try to avoid that :3
makes sense.
i don't really grasp the limitations of just adding a url to a dock so I would love for the solution to be that simple.
I think they're the same as any other browser. At least that's been my experience so far. But I'm sure people here will be more than happy to answer that.
Replacing cef was the easy part. It was the user experience that suffered. If tobocop says he has no interest going down that path, then they don't need the full backstory.
From what he wrote earlier it seemed like they were already modifying the CEF
Nope, just replacing with an older version, and then hacking the cookies.
Wasn't that exactly what SE was doing?
Yes that's what I'm saying. SE weren't modifying cef, they were replacing it. There's a huge difference.
So what they're doing here is.. more complicated
but there is so much custom stuff done here with CEF and state management
yeah calls to CEF are done directly
i'm trying to avoid having to depend on CEF at all at least directly, and using obs studio builtins
if possible haha
Because the existing plugin was built within obs browser, so calling cef functions directly seemed the easiest. The correct way is to handle all the complex stuff themselves, either in the site itself or as its own plugin, and then only talk to OBS (and launching docks) when necessary. Which is what @mortal harbor is doing.
Makes sense. And this wouldn't be affected by CEF updates?
You're the only one who has brought up cef. If you don't fully know how it works, better to let others answer.
But yes, a secondary plugin not built into obs browser would not care about cef
Here, yes, to say "the old way was unnecessary and I'm avoiding doing the same"
After that point, it's all about figuring out the requirements and then the right way to achieve them
The only challenge I see is initial auth ux. The rest could basically be handled by curl and an auth token for anything behind the scenes
Hey guys. I'm sorry if this is the wrong place to post this... Please let me know... So, i'm looking into starting a weather related stream where i do severe weather coverage of a particular event and i was wondering how i could grab the RSS/ATOM feeds from the NWS and have them displayed neatly in a graphic overlay in OBS when a warning is issued. And, maybe even have an audible alert aswell. I've been looking into this all night to no avail. Much appreciated!
how extensive is your web development/programming experience?
Uhm, well. None! if i had the money i'd love to pay someone to code something up like this. Not knowing how complex a system like this is one thing. My alternative is to just have a capture of the the IOWA state mesonet and have it update when a warning is issued....
Okay... I've messed around with node/java/c++ but as someone who is lower than a script kiddy. I essentially know nothing.
Sounds like a great learning project honestly
Learning Curves!
I think it's perfectly doable by a relatively experienced developer.
Long story short:
- RSS can't be subscribed to, so you'd have to fetch on a timer
- when the RSS feed contains a new entry, display an element & play a sound
- handle the RSS feed containing multiple entries at once
Depending on how complex you want it, this is probably a 1-3 hour job for someone who knows what they're doing. If you'd like to learn to do it yourself, I could easily see this only taking up to a day or so
Okay, what do you think a job like this would cost to develop on an app like... fiverr? is this even something you'd consider?
If you have experience in Node, then I think you'd be able to find your way around this. If the RSS feed is set up a certain way, nodejs would basically be required due to CORS.
I have a decent system to run whatever it needs. I'm in the works of getting my old pc in to stream for me, via elgato capture.
I'm kind of in a hustle because tomorrow the midwest is outlooked for a 3/5 for severe storms and i'm looking to get this whole thing started then. But, if i have too for a few days i can go without it.
I have no "experience" using it. i have the y'know "Go on github, find something, run it" experience....
I would definitely direct you towards obs-websocket for the OBS side. You'd want to make an image source and a text source
On new alert:
SetInputSettings- Change the text source to the text that you want the alert to haveSetSceneItemEnabled- Enable the text input (aka source)SetSceneItemEnabled- Enable the image input (behind the text)SetSceneItemEnabled- Enable a VLC input with your alert sound- You'd set the source to stop when not visible, so that when it's shown it plays the sound from the beginning
- Wait for the period that you want the alert to display
SetSceneItemEnabled- Disable the VLC input's itemSetSceneItemEnabled- Disable the image input's itemSetSceneItemEnabled- Disable the text input's item
Cost on fiverr really depends on how fancy you want it. Something basic? maybe $50. Something fancy, $100? As long as you properly communicate what you're after and the person you're talking to has some idea of what alerts look like.
Though in my example I'd do this via a pretty basic webpage.
You can also do a webpage if you'd like, as matt is suggesting
Awsome, so. Matt. If you're me what would your course of action be for now?
Step 1, find existing alerts/systems that look/behave the way you want so you know what requirements to communicate.
Step 2, find a web developer with some spare time.
Awsome! Thanks so much. hopefully i'll figure this out! i appreciate man
thank you for your help!
for some reason i can't find the basic timer people use for speedruns and stuff would anyone know where to get it
@boreal hearth hey. I tried the new build from 5 days ago, and it's crashing on me when I try to add a widget.
Unhandled exception: e06d7363
Date/Time: 2022-05-04, 17:45:30
Fault address: 7FF956414F69 (c:\windows\system32\kernelbase.dll)
libobs version: 27.2.4 (64-bit)
Windows version: 10.0 build 19044 (release: 2009; revision: 1645; 64-bit)
CPU: Intel(R) Core(TM) i9-10900X CPU @ 3.70GHz
Thread 8A94: (Crashed)
Stack EIP Arg0 Arg1 Arg2 Arg3 Address
000000686F500D30 00007FF956414F69 000000686F500E90 00007FF88A123599 0000006800000010 00007FF94D803220 kernelbase.dll!0x7ff956414f69
000000686F500E10 00007FF94DA26480 000001A19C3FC8F0 0000000000000000 0000000000000000 000001A19C3FC960 vcruntime140.dll!0x7ff94da26480
000000686F500E70 00007FF94D793626 000001A19C3FCA00 000000686F500FE0 000000686F501050 000001A19C3FC8F0 msvcp140.dll!0x7ff94d793626
000000686F500ED0 00007FF94D7935D1 000001A2136E3350 00007FF9588947B1 000001A19C3FCA00 000001A1AD530000 msvcp140.dll!0x7ff94d7935d1
000000686F500F00 00007FF92736BC8D 000000686F501040 000001A19573BC00 000001A19C3FCA00 000000686F501050 durchblick.dll!Layout::Save+0x1ed
000000686F500F80 00007FF927366A2F 000001A2136E3350 000001A19573BC60 000001A21133BF90 000001A1956EA480 durchblick.dll!Durchblick::Save+0x48f
000000686F501010 00007FF9273714AF 000001A100000000 000001A100000008 000001A2136F3EC0 000001A19573BC60 durchblick.dll!Config::Save+0x9f
000000686F5010D0 00007FF927368ECA 000001A21133BF90 000000686F505BF0 0000000000000000 00007FF800000002 durchblick.dll!Layout::AddWidget+0x11a
000000686F501150 00007FF92736DED2 0000000000000001 000000686F501271 0000000000000000 00007FF88AB2AF02 durchblick.dll!NewItemDialog::ok_clicked+0xa2
000000686F5011A0 00007FF88A0E0B37 000001A213394090 000001A200000007 000001A19BCA3820 0000001600000001 qt5core.dll!0x7ff88a0e0b37
000000686F5012F0 00007FF88ABEEB81 000001A1AD5989C0 000001A1AD5989C0 000001A213394090 00007FF88AB667E3 qt5widgets.dll!0x7ff88abeeb81
000000686F501320 00007FF88ABEF5C7 0000000900000023 000001A1AD5989C0 000000686F5013B8 000000686F501CE0 qt5widgets.dll!0x7ff88abef5c7
000000686F501350 00007FF88AB477FC 000001A1AD5989C0 000001A1AD5989C0 000000686F501CE0 000000686F501CE0 qt5widgets.dll!0x7ff88ab477fc
000000686F5013E0 00007FF88AB24980 000000686F501CE0 000000686F501510 0000000000000000 000000686F501510 qt5widgets.dll!0x7ff88ab24980
000000686F501410 00007FF88AB228A0 0000000000000000 000001A1AD540540 000000686F501CE0 000001A1AD540540 qt5widgets.dll!0x7ff88ab228a0
Is this expected? I grabbed this one: https://github.com/univrsal/durchblick/actions/runs/2248004750 - wondering if I took the wrong one.
nah that's the right build, I assume you still have a layout from the last version that is being loaded?
It was blank (because scene collection switching emptied it). Not sure what defines as "previous being loaded".
an existing layout file I guess. Can you try deleting it? It should be somwhere in %appdata%/obs-studio/
I don't know the exact folder right now but there should be a plugin config folder which contains a durchblick folder with a layouts.json file
I'll give it a try, hold up 🙂
@boreal hearth deleted file - still crashed.
strange, I'll see if I can reproduce it
It didn't crash until I right clicked > add widget > selected a source and pressed 'ok'
Then it crashed.
And it didn't seem to re-create a 'layout.json'
Folder is at least empty.
yeah it crashes when saving
👍
@harsh topaz can you try the latest nightly? It should (hopefully) work now
I'll give it a try, hold up! 🙂
@boreal hearth That version doesn't seem to have a problem. I deleted layout.json in advance just to be sure this time. Added a source, np. Changed scene collection and back - seems to have remembered my setup 
nice
Are there any plugins that adds more transitions to the image slideshow? I'm looking for a "flip" option that would spin the image to the other side to reveal the next image. I'm struggling to find anything 
Are there any plugins that are useful for YouTube streaming? If anyone knows of a plugin that would bring in info similar to the Twitch Activity feed and Stream info Docks that we have for Twitch? As far as I can tell those dont pop out like they do on Twitch so I can't make custom docks.
Okay I am going to throw out a rather broad question but I am at a total loss and I feel this maybe a super easy fix. On animated lower thirds I click on Main and it turns blue. I click on any lower third underneath and they do not turn blue. Any advice?
Hello just wondering if any one could help me I use obs to stream to Facebook and my Facebook chat dose no longer come up on obs
Hey people! I am wondering if it is possible to disable a window capture when you're not clicked on it? I'm gonna be starting my dnd stream soon, and I want my character sheet to pop up ONLY when i'm clicked into the window...
hi, I think you're in the wrong section, maybe you meant the #ideas-suggestions channel? that being said it's a good suggestion for a feature
It's the correct place.
Can I get directed in the right direction? Cause I just got told to put it here...
Download the plugin "Advanced Scene Switcher"
Make a macro that shows a source when 'program is in :focus'
🙂
Hm. Do I have to restart my obs for that? I'm guessing so.
Do you mean something like this?
(Just making sure I'm not misunderstanding)
Yes, you need to restart OBS to install plugins.
Kind of. But it's something i'm using. Such as scrolling, clicking etc. So not a browser source
Okay so you could for example scroll in that source?
What OBS does here is:
Make a scene =>
Add a source to scene (Your program) =>
Add a show/hide transition on that source =>
Use the plugin (Advanced Scene Switcher) to show/hide that source depending on whether or not you're focused on whateverprogram.exe
So it's a combination of OBS & Plugin.
Alright i'll try that out when I finish streaming,.
So every time you click into the program; it would show the program on your scene, and whatever you're doing in there.
Alright 🙂
I don't quite understand.
I have the program but it ain't working
You have to go to 'Macros' and create a macro.
Add one in the bottom left corner. Then on the right side, you have two halves. Top = Conditions, bottom = Actions.
Conditions = "If this happens then"
Actions = "Do this"
So in conditions you'd want "If process myprogram.exe is running and CHECK is focused"
And on actions you'd want "Show scene item visibility of MYPROGRAM SOURCEE to show"
But what if there's multiple pages o
Once you get the basics of Adv-ss it's fairly intuitive, and vastly powerful.
Of the same program
Doesn't matter. It just checks "If you're inside this program, show source"
and your source will be the program added to OBS as Capture Window (probably)
So to the right is my character sheet, and in the middle (same program (Edge)) is the map and stuff.
I'm always on the map
So I'm not entirely sure how it manages multiple application sources. I'd try and just add it? Worst case scenario, use two browsers.
Chrome/Edge are essentially the same browser these days 
It doesn't appear it's currently able to differentiate between different windows of same process.
Damn....
I asked the dev if that's possible to implement. I'll let you know what he comes back with. Warmuptil is pretty epic at feature requests 🙂
Awesome!
Haha, it's already in there. It's just not something I've messed with before.
It's under its own condition 'Window'.
🙏
@harsh topaz Ok, I've tried the StreamFX Corner Pin finally. It works great overall but yeah, without antialiased edges it is a bit harsh in some use cases. It's better than any other solutions I've tried though. I talked to Xaymar before about anti-aliasing what I was working on, but never got something working. I'm going to look into it some though and see if there's an easy way to do it.
hey is there a documented way of depending on an existing plugin? I want to depend on obs-browser at run time and access its available API. I found one plugin that does this here: https://github.com/own3d/own3dpro-obs-plugin
But this doesn't build on my m1 mac and also they're dependent on custom and out dates releases. I tried mimicking their mechanism myself and making a very simple plugin that depends on the official obs studio template:
https://github.com/tobocop2/obs-studio-plugin-demo
^^ code compiles fine but completely crashes obs studio when installing it on both mac/windows. The goal for my initial POC is to just print the obs browser version when launching obs studio but I'm at a loss and i'm not super experienced with C++ and in general building anything like this (i come from a strictly server side web background)
The technique used in the own3d plugin seems like magic to me, it's loading the library at runtime and copying the interface into the plugin and accessing information using os_dlsym
I greatly appreciate any guidance.
I found the code that the StreamFX corner pin is based on, written (and credited) to Inigo Quilez. Inigo's shader on Shadertoy has somewhat smoothed edges but on closer inspection it is because he is drawing an antialiased border around the image, but if you comment that out, then it is not anti-aliased either.
https://www.shadertoy.com/view/lsBSDm
I think the way to anti-alias the edge of corner pin, might be detecting edge pixels and calculating how far into the pixel the vector edge is, and use that as a threshold to smoothstep() to blend the source pixel with background
not quite sure how to do that though
Anyone know anything about NDI ?
All I know about NDI is when I tried to not buy a cap card and got to watch my audio slowly drift out of sync, every stream. 😦
I figured your reasoning wasn't the same as my cheap at the time ass. 🙂
lol
What about it are you trying to accomplish?
Trying to figure out why since i installed the ndi plugin my main system on the bottom is experiencing major rendering lag whether or not the upper system is on or off its been about 2 weeks now! Todays full rebuild and clean install has dramatically reduced it but it’s still present.
How are you connecting the two machines?
Is it the obs NDI plug-in or actual NDI?
Or both?
@harsh topaz I almost got antialiasing working with Corner pin!
got it
That's with the original on Shadertoy. Now to figure out how to make it work in StreamFX 🙂
Wdym control?
Wdym?
I thought a New plug came out lately that could do that. For now every voice are in 1 Channel . I d like to control the volume of any voicechat user from discord in obs.
I have 1 Channel audio from discord this IS Split with my other audio sources
But i want to change the volume of the voices that are inside a discord voice channel in obs and not in discord
Do i Make sense
discord does not support splitting individual people into their own audio channels
Owww
So no way to have every discord user on a separate track in obs....arfffff.....how Can i stream 1 Guy on 2 but still Hear both of them
Seems Like discord does it. U can. Manage the voice chat of every user inside the channel( inside discord)....( Sry idk Shit about all this )
But inside OBS u just get one audio track.e
IS it possible to even do that? seems Like i cant...but IS a plug-in could be made?
This is not a possibility. Discord doesn't expose more than one audio channel to the OS. Skype does, however, if you configure it correctly. I don't know exactly how, I just know Skype can do it.
Ok Ty again guys...Hope they will make something to be able to do that
If it s even possible on day^^
is there a plugin that allows me to retrieve foobar2000 playing information for OBS?
i can't access skipyrich's site unfortunately and i don't know why
@maiden prairie i think i have it downloaded
^ this goes into "components"
you'll also need this one
and then save into a json file, with this formatting:
{ "nowplaying": { "playing": $replace(%isplaying%,'?','0'), "paused": $replace(%ispaused%,'?','0'), "albumartist": "$replace(%album artist%,'"','\"','\','\\')", "album": "$replace(%album%,'"','\"','\','\\')", "artist": "$replace(%artist%,'"','\"','\','\\')", "title": "$replace(%title%,'"','\"','\','\\')", "tracknumber": $add($replace(%track number%,'?','0'),0), "length": $replace(%length_seconds%,'?','0'), "elapsed": $replace(%playback_time_seconds%,'?','0'), "path": "$replace($directory_path(%path%),'"','\"','\','\\')" }, "config": { "fadeout": 4 } }
fadeout can be tweaked
thanks
whats a good plugin for cam shaders/ FX? like earthquake, color changes etc.. ive checked out Nutty's OBS shaderfilter video, but it's a broken link to obs studio forums.
i was able to find that, but im not sure how to download and install from there
Also this one
https://github.com/Limeth/obs-shaderfilter-plus
oh thats an updated version?
ok i think i got it, dll in plugin folder
Not entirely sure. And yea, it looks like the releases are no longer on github for the first one I linked. But there are install directions.
Sucks when good assets get yeeted from obs site but apparently the author was being kind of a jerk
oh, thats not cool. i usually go for open source projects. i tend to avoid paid stuff from big companies. that project seemed very nice, in adding viewer interaction with the stream, and mostly creating funny/goofy moments
Yea. Shaders are hella fun

hmm, apparently stream FX can do those things, i just need to figure out redeems and how to transit from normal cam to shaders and back to normal cam
Ndi plugin on both the cam host only runs the camera plugin the main system pulls them in as sources
Streamer.bot can easily enable/disable filters upon actions or channel point redemption or commands
thats for my "demon cam" filter
im unto it. im just not sure how to make everything in OBS. do i need to duplicate my scenes? or multiple mirrors of my cam scene?
i need a tutorial but so far i havent found a good from zero to hero tutorial XD
i use source mirrors for my cam because i crop it differently in different scenes. for shader filters alone, you wouldnt need that
because filters can have an off/on state
those can be accessed by streamerbot?
yes. see my example above
hidden = off
visible = on
I highly suggest checking out andi lippi on YT. He has several tutorials
oh ive seen some of his videos, thanks, ill go check more
Shaderfilter got banned from OBS forums, but here is the direct link: https://github.com/Oncorporation/obs-shaderfilter/releases/download/v1.21/obs-shaderfilter-win.zip
No, OBS Shaderfilter Plus is a completely different shader filter written in Rust with GLSL support, and FFTs. It is not a drop in replacement for OBS Shaderfilter despite the confusingly similar name they are unrelated to each other.
OBS Shaderfilter Plus is primarily more for developers who want to write their own shaders in GLSL instead of OBS's HLSL derived shader language, or who want to write their own custom audio visualiizations using its FFT support.
It's not of much use to non-developer end users (like most of the 7 or 8 shader plugins). Non-developer end users pretty much should stick to using OBS Shaderfilter which comes with around 100 or so usable shaders and doesn't require custom development to use, and StreamFX's shader support which is overall more capable but not as many ready to use examples. I recommend having both of these plugins as they are a good combination together.
Just note that OBS Shaderfilter is more or less unmaintained at this point so may stop working in a future OBS release unless someone forks it and takes up maintenance.
I wouldn't let that discourage using it though.
yeah ill try some of the features in streamFX for now
Note that it is mostly trivial to convert a shader from one of the plugins to one of the other plugins if one knows how to code shaders. Usually takes between 3-20m or so.
thats not something im familiar with
The author of Shaderfilter actually ported a shader or few of them from his own plugin to StreamFX a while back, although I don't think he followed up with more since. Haven't seen him around anywhere in ages.
That suggested to me that he is probably using StreamFX for shaders himself nowadays and not using his own fork of Shaderfilter anymore
I don't think anyone is interested at this point in taking over Shaderfilter though, it's quite a niche thing to begin with and there are a number of limitations and problems with it, none of which take away at all from its current utility for end use mind you. 🙂
I use it heavily so plan to try to fix the bugs I know of myself, but if I do that I will probably only post source code updates in a fork on github as I don't want to maintain a public binary of it either.
(I just discovered last night that Shaderfilter leaks tonnes of memory)
Simple solution to leaky memory. Just download more
I did! 🙂
Who needs to fix memory leaks when you can just have enough RAM to not care right? 😛
hey uhh.... anyone know the OBS Midi plugin? Has anyone ever thought of fixing the midi mapping loss after obs relaunch? Or is there like an alternative that doesn't lose the midi mappings. I myself have thought of trying to fix it but then I remembered, I can't program obs plugins lol
It's kinda annoying to have to remap my custom made streamdeck, it takes a bit but eh. Really it's not that bothering, but imagine having to remap your elgato streamdeck each time you launched obs.
ngl I think that using midi devices to control obs stuff should be like a in-built feature.
[wait there's an external program that can be used to do this.... might work...]
There are a number of MIDI plugins for OBS, but I'm not sure which ones are the most recommended and maintained currently.
It's something I need to dig into myself very soon though too.
there obviously is obs-midi which is very simple, works great, but tends to just clear all your mappings after an obs restart. there is midi control but it's an external program which makes use of the obs-websocket plugin to send commands, trust me I'm too lazy to do all that websocket stuff, I just want it all to be in obs lol
there is also obs-websocket-midi... my god how many websocket things does obs have
ok nope not obs-websocket-midi, it can only switch scenes lol
Websocket is a powerful way to control OBS externally, and the added benefit is that it can be done across a network, and that if the software crashes, leaks memory etc. it isn't crashing OBS itself, nor leaking memory inside of OBS.
The more things that can be implemented via websockets outside of OBS the better.
aight, might try to use it, also what does it mean when a program "leaks memory"? Like I've heard this phrase so much but I don't know what it means lol
Good question! Programs dynamically allocate memory as needed for things at runtime, which requests an amount of memory be given to them by the operating system. One of the more common ways to do this is using the malloc() memory allocator. If the operating system can oblige the request, it returns a memory address pointer to the program that is to the size of the memory block it requested. It is then the responsibility of the program to keep track of this memory pointer, and when it is no longer needing/using the memory to free the memory back up, giving it back to the operating system with free(). A memory leak occurs when a program allocates memory, and then due to programmer error, forgets to free the memory when it is no longer in use and loses the address that references the memory, so it is memory currently allocated to the program but that the program can no longer use for any useful purpose because it doesn't remember it has it or where it is.
Kind of like someone buying bitcoin and then losing their bitcoin wallet so they can never access it again.
🙂
So, if this memory leaking occurs multiple times, due for example to the function in the program that is leaking memory being called multiple times, then you end up with multiple memory allocations that get lost and accumulate consumed memory as long as the program is running. Only when the program finally exits does the operating system recover the leaked memory back into the pool for use by other programs.
huh, I mean, I've never had any program leak any memory on me, at least not that I can remember, I've got 8gb of ram so if there would be any leaks I'm sure that I'd do just fine, unless the leaks would be huge... [good thing I installed some mods for mc to reduce ram usage]
I can guarantee you that you have experienced programs that leak memory as it is one of the most common programming bugs of all time in the C programming language (and many others). You wouldn't necessarily notice anything however unless it becomes problematic.
OBS 27.2.4 I just confirmed last night, when ran once and exited, leaks memory (it reports it in the log file)
would random slow-downs after closing/running a program be a sign of memory leakage?
What is even worse, is when drivers or other operating system code leak memory, because that is usually in non-paged memory pool which is physical RAM, so a driver leaking will gradually eat up all system memory and cause an out-of-memory condition that can only be recovered by a reboot.
A common symptom of a problematic memory leak is random slowdown of the computer after a while, followed by random programs that were running getting killed.
some context, I've been having slow-downs when running spotify on my pc. stuff like opening folders and using keyboard functions got a bit slower, a noticable bit that is
that could just be because spotify uses my cpu more than like windows groove music
i wouldn't trust spotify with their desktop software, i'd run it in a web browser
What happens is that as the memory leaks accumulate and the process leaking them gets larger, if the memory was actually used by the program, it consumes physical RAM. Eventually it will consume all physical RAM and the operating system will page out least recently used RAM to the swap file, freeing up more physical RAM for programs to use. This will eventually either max out the maxiumum swap file size and cause an out-of-memory condition to occur, or if a dynamic swap file size is used it will cause the OS to keep adding more and more swap space, essentially turning your HDD or SDD into more RAM continuously. But since swap is significantly slower than RAM, eventually the ratio of physical RAM to swap ends up causing a condition known as swap thrashing in which the system will grind to a halt basically livelocked, all of the resources basically spent continuously swapping things to and from disk without much actual work being done. The only recovery from this usually is to hard reset the computer.
I mean... well it's just an app, it definitely does have tracking stuff like discord does, but tbh I'd rather not use the webpage as my crap internet connection makes web apps unstable, that's why I prefer desktop apps
When out-of-memory condition occurs, the operating system tries to make intelligent diagnosis of what program(s) are going wild on memory use, and kills them one at a time until the problem stops, which is why you see random programs get killed
It's hard to determine is something using a lot of memory because it just needs a lot of memory, or is it using a lot of memory because of bad programming.
Obviously the OS wants to kill the latter and not the former, but it can't always get that right. 🙂
yeah that is true, I have some programming and computer knowledge of my own and I'd say that determining if a program uses a lot of memory by default or leaking memory is like trying to differentiate from a sheet of printer paper and arts paper, they're seemingly the same thing, but one thing is easier to print on than the other
Another possible sign of something leaking memory, is if you look at it with task manager details or similar program with all of the memory related columns enabled, and you see the program's working set increasing regularly over time ongoing, and there is no obvious reason why it should be doing that.
When system sluggishness or randomly crashing programs occur if one suspects something may be leaking memory, a good thing to do is to check task manager to see if any running programs have ridiculously oversized amount of memory use beyond what seems reasonable, and if so it's probably leaking memory somehow. If no programs seem to be in that state, then look at the non-paged pool.
If the non-paged pool is excessively large compared to the total amount of physical memory in the system, this usually indicates you have a bad video or audio driver or some other bad driver that is leaking unswappable memory.
ye cool, didn't know that windows had an non-paged pool counter in the performance tab
might also want to check commit charge, memory swapping causes slowdowns on SSDs too, but HDDs are noticeably worse
ok I tried that midi control program aaaand it does not recognize my streamdeck, sooo yeah that's going in the bin lol, I'll leave the obs websocket plugin tho
Well, if you have a Stream Deck, various things on the Stream Deck use websockets to communicate with OBS
well it's a custom made streamdeck that runs on an arduino pro micro (aka a tiny arduino leonardo) and welp, the program did recognize my controller, after a relaunch
Still, that program was a bit jank, I'll use the plugin for now, it might get an update one day which fixes the midi map loss
Have you tried the Color Grading filter from StreamFX?
Nah can i get linked it?
The StreamFX plugin is available at: https://obsproject.com/forum/resources/streamfx-for-obs®-studio.578/ Be sure to read the installation guide, system and software requirements.
TY
Is there a Restream chat plugin?
To enable Chat docks for Twitch, Restream and YouTube, you will need to connect your account via Settings -> Stream.
If you'd like to enable chat docks for other services, you can use the Docks menu in the top menu bar, then select Custom Browser Docks. This allows you to include any webpage in OBS.
What do you mean? Like a way to watch youtube & twitch chat in one chat?
also, small q, how do I make custom transitions in obs? Just out of curiousity, I'm currently using the default Luma Wipe: Swipe from top-left transition as it is nice, although I wanna try making custom transitions like it switches to an animated image or smth and then to the scene I want it to go to
ye ik those... I wanna do something really custom, that is what I specified, scene a - transition to image/animation - transition to scene b
Add file. Decide when it changes from scene a/b. Possibly add track matte for showing both scene a/b at the same time.
ty
so with the stinger thing, I need like an animation with a black/green/red/blue bg for where the video feed is going to be?
If you're using track matte, white/black.
If you're using regular transition you just need transparency where you want it - and fullscreen your transition with something where you want to make the transition (transition point).
so, .vp9 > .webm
or .mov if you don't care about file size.
ProRes or something.
so let's say the transition animation was made in like krita or smth, I would need to have it in .vp9 with a black/white background where the feed is supposed to be, got it
When using trackmatte, black/white represents Scene A/B.
When not, transition point determines when the scene changes from A > B.
So obviously you'd want transition point to be at a place where the screen is all covered in an animation so you don't see it change.
so let's say the animation takes 300ms, and the point of covering the entire screen is at 150ms, so I'd just have to put the transition there and I'd be fine right?
Yes
Cool
Yep...and trovo
bumping for visibility, greatly appreciate any guidance towards getting my basic example to run.
Not aware of anything for Trovo. I believe socialstream.ninja works for FB/Twitch/YT
Thanks
I’m looking for a plugin that can play specific audio tracks in a video file and mute others. Anyone know of anything like this?
hey uhh, is there a plugin for capturing the twitch chat and showing it on the video feed? Same for alerts and stuff, obs doesn't seem to have that built-in, ik that there exists streamlabs obs which already has this stuff set up but trust me, I've tried it, it uses way too much of my cpu and streams are just a black screen with choppy audio. through regular obs I can stream at least decently
this doesn't exist as far as i know. you'd have to use an editor to mute/unmute the tracks you want to.
you'd use an alerts/widget provider like streamelements or streamlabs and add their stuff as a browser source.
huh, so alright, I guess I'll go for no chat/alerts for viewers. I'll just have to check the twitch activity panel in obs from time to time for stuff like donations and subs, and also do the same for chat
(I'm too lazy to set all this up lol)
i mean, getting a chat on your stream is about 2 minutes of setup so its fairly easy
@harsh topaz First successful anti-aliased corner pin experiment...
streamfx?
soon... I had some difficulty trying to modify the StreamFX shader so I temporarily converted it to OBS Shaderfilter which is my working test case currently. Once I polish it off and look for optimizations, I'll be converting it back to StreamFX and possibly submitting it for consideration to StreamFX
No noticeable GPU cost that I can see from the method I am using
Basically it is the same way I anti-aliased the rounded rect, and other stuff lately, it is a method that works great.
Heya 🙂 A while ago I was given a link to a plugin that can enable OBS to control the volumes of separate programs without needing Voicemeter Banana but I can't find the link now. Does anyone know the link please ?
To capture audio from selected applications only, similar to Discord, you can try the new OBS audio capture plugin (Windows 10 2004 and above only)
THAT's the one 🙂 Thanks very much 🙂
Here's a comparison: Original corner pin on left, my anti-aliased version on right:
Yea looks good.
hey, I know I've probably asked a lot of questions in one day, but does there exist a plugin which adds a timer to the "add source" tab?
ty
that is a lua script and idk how to run those, also like once ran does it work like a plugin or more of like external stuff? 'cuz I'm looking for more of a plugin
You add it under tools > scripts
Then you set it up how you want it. Point it to the source you want it to work on.
Then you go to settings > hotkeys and set a hotkey for the timer.
huh, cool
where exactly is this directory if I may ask?
is it obs-studio/data/obs-scripting?
You can put the file anywhere I believe and just select it.
ok now I know how to do it, it's the tools tab, ye I'm dumb sometimes lol
Hello
Using the NDI source and Screen Capture HX to capture a monitor on another computer for streaming. Should the captured monitor be the same resolution as the OBS canvas?
It's ideal for the best 1 to 1 relationship between the device being captured and what OBS will be outputting but it isn't a requirement. It's ideal to set your canvas size to whatever resolution you will be streaming and/or recording at, whichever is larger, then scale up or down your sources to fit.
2 answers in one. Thanks very much!
Also, if the source is something that may have a resolution that changes, such as a game capture depending on the game and how it is configured, if you change the transform to use Center positional alignment, center the source on the screen and then apply a Scaling/Aspect filter to it set to "Scale to Canvas", the source will always fill the canvas even if the resolution changes.
Good to know.
I've looked into this a bit deeper. It wasn' a concept I was immediately familiar with, but algorithmically it seems simple. I'm going to take a stab at creating a pixel shader to implement that.
Much appreciate that
I've got a beginning prototype that works, but it suffers from the same problems that selective color does on live video. I'm curious what your usage case is, ie: what type of content are you wishing to apply the effect to?
I ask because if it is to perform secondary color correction on still images such as a background image, that should be done in an image editing program so as to not cause runtime GPU wastage processing a still image on the GPU continuously. If it is for pre-recorded video, footage, then it should be done in a video editor so that it is precalculated and again does not incur runtime GPU cost. If it is for live video from any video capture source of live video, then it is a bit tricky, because however it is configured, they are static configuration that will apply to the entire source/scene it is applied to with no variation, so if the content changes dynamically, a lot of color error could occur, much like with the selective_color shader from Shaderfilter (although it's still a fun shader).
Like many filters, it also does not work well with images or video which have been encoded with lossy codec algorithms. The whole "the human eye can't tell the difference" aspect of lossy video is only somewhat true with enough data bitrate, but goes in the trash can when post processing is done on the lossy content turning the "human eye can't see it" parts into "the human eye bleeds from all corners". 🙂
There is also no trivial way to perform live video motion tracking that would work well enough to eliminate sources of error with masking.
Someone could write something in OpenCV, but it'd be spotty at best I reckon.
Anyhow, I'm curious what the usage case is, as it may help to envision better ways to solve some of the problems for a given use case.
Inadvertently, it can be used for selective color function now too with the addition of a greyscale background option. Ok, so maybe not entirely inadvertently. 🙂
Jesus frigging Jaundice 
Im having a little issue and that is that win-capture audio for OBS isnt working for me, i installed it many times and its still not working and showing for me in OBS
Well. When ever i edit my videos i uses a small color correction in vegas pro to help colors come out more. So i thought to help streams to do the same. With the plugin suggested i tried to match the settings. I use vegas pro to edit so these would be the "changes" i do So i just wanted to match for stream so it looks good across videos and streams. As for what id use it for in stream content it would be across anything i stream since im variety of stuff.
All of the controls I see there are available in the OBS Color Correction filter, but there are things scrolled off the bottom of the window in your screenshot that I can't see. I don't have access to Vegas though. I've got Blender and DaVinci, but haven't used the latter.
I'd recommend trying the OBS Color Correction filter, and StreamFX Color Grading filter, and if there is a particular feature missing that you'd like to see, screenshot it and perhaps make a video demonstrating how it works or something like that if possible, showing all the controls. I do have something working here as shown above, but it's probably no where near complete to something like what the pro NLEs can do. 🙂
No DMs please, this channel is both for help with, and development of plugins and tools, so our discussion is on topic here. (it's in the Development category technically)
does anyone know how to get Shaderfilter to work on cropped sources ?
Please explain in more detail because shaderfilter works on any source, whether it is cropped or not. Also, how are you doing the cropping, in the transform menu, or using a Crop/Pad filter?
Mind you, if you are cropping a source, you SHOULD be using the Crop/Pad filter before applying any other filters/shaders to the source rather than the Transform dialog's crop (the drag and drop stuff), otherwise the filter/shader is processing the entire source, then throwing away a lot of what it just did because it gets cropped after.
Crop/Pad should be placed before any expensive filters.
ah i see, so using the crop / pad filter is preferable to holding ALT and cropping ?
It depends on the use case. The Transform crop/pad is done after the scene is composited completely, meaning all of the filters/shaders applied have done their work, then crop happens. If there are no filters then it is fine, however if there are filters, it wastes GPU resources having the filters do all of the work on the entire image, then cropping part of it away. For example, it is like taking a 4'x8' sheet of plywood, then putting expensive paint on the entire sheet first, then cutting it with a saw later and throwing away all of the scraps. Big waste of expensive paint. This is the digital equivalent. Cut first, paint second. 🙂
Still curious what your shaderfilter problem is though.
im using shader filter to round edges on a source, but if i want to crop the source (previously just using ALT dragging instead of padding) it wouldnt adjust the size of the filter, 1 solution i found was to put the filter on a group and then crop the source within the group, as the group will resize itself the filter is always correct
Ah yes, because you're rounding the corners of the original source, and then cropping it off after. The Crop/Pad filter placed before the source instead will fix that.
and is more sensible gpu wise ?
Yeah, it's always more sensible to do math on less pixels rather than more, if they're going to be discarded anyway.
The one gotcha, is that it is not immediately obvious when OBS is applying the transform crop from the user interface, but it is at the very end before display.
I saw this late I'm very sorry!
Here this would be my Vegas settings
And this is my trying to replicate it one to one in obs
I tried to the best of my understanding to make things one to one to each other but im fairly certain theres something i did wrong
My current code operates in the HSL color space and more or less does most of the above minus the smoothing part which I wanted to explore next, and the chrominance part which I'm not completely sure what that's doing
Also a bit confused by Hue, Saturation, Luminance being the names, as HSL is Hue, Saturation, Lightness. Would need more info on what color space they're using more explicitly to try to clone it. But I can just wing it with HSL too, or even put a chooser to select a color space.
Not sure what the mask options are doing but if they are motion tracking, that's off the table for sure. 🙂
For static masks, the OBS Image Mask can be used in conjunction, or the StreamFX dynamic mask although I'm not sure how one would combine that into something useful per se. I'd probably have to use the tool a bit to see how it works.
That could work. I had to wing it when inputting the values seeing as obs uses percentage while Vegas was decimals.
I think the saturation and all gain values were where I winged it because I couldn't from my understanding do it one to one
Everything's done in floating point inside the shaders
So the top photo is Vegas, what is the 2nd photo from?
Also Vegas its under the custom tab but still same FX
I checked DaVinci (which I'm not yet savvy with) and didn't see similar function in it yet, but I know it is the king of color management so I might have missed something.
ah ok, just a different UI to the same funcitonality?
I am a bit confused by the combined terminology of Hue, Saturation and Luminance though. HSL = Hue, Saturation, Lightness and Lightness is not the same as Luminance
Yes
HSV is Hue/Saturation/Value(Brightness), also not the same as Luminance. So I'm wondering what actual colorspace they're using there, and if they're just calling it Luminance for human reasons
I mean, tonnes of programs use the terms Luminance and Luma interchangeably, and while they're related they aren't the same thing.
so finding another misused term wouldn't be shocking 🙂
Well limit luminance limit saturation and limit hue are all default valued. I never touched those settings. So i wouldnt know
The way my current shader works, there is a calibration toggle to turn on, then use the color picker and toggle the shader visibility off (like with chroma keying), sample a color from the image, then toggle the shader back on. It now shows up in calibration mode.
Well the values im most concerned on and i believe i miss translated would be the saturation and Gain values
Then, there are sliders to massage the hue/sat/lightness to fine tune it which would be roughly like the rotate hue, saturation, gain/offset controls in your screenshot. Then I've got Hue_Similarity, Sat_Similarity, Lightness_Similarity which are like the hue width, and the low/high range on the other controls.
Having separate high/low might be better for the sat/lightness controls than a center + width controls
I didn't have enable checkboxes but I should add that as it was kind of annoying having to reset things to 0 🙂
so gain and offset are basically contrast and brightness
I guess ill have to fool around with it. As it stands i looked at it as math values and converted decimal to percentages but even then that didnt work one to one exactly here as you can see
and toss in an opacity/alpha slider
Yeah, you probably made a common mistake in conversion
Saturation i know i did wrong when converting because making it 147.50% in obs made it look WAY off
value = round(int / (max_int - 1))
Different programs handle their controls a bit differently. One might be 0 based and go positive and negative, while another goes from 0-100% or some other thing.
Its a pain thats for sure lol
In OBS it is best to use percentages as OBS limits to 2 decimals of precision, so using 0.00 to 100.00 gives 10000 steps
wut, my math above is weird
I havent done serious math in so long i cant even remember how to do it right
I'm pretty tired, been up for around 30 hours so.. 🙂
Oof. We can circle back after you rest. Hopefully then we can convert the values a bit better
round(n * 1.0 / (maxint - 1)) ish
Also again very sorry on the DM @quiet bramble
np... this server doesn't allow DMs, as there are 200000 people here roughly so it's easy for people to get swarmed
I don't think servers have the power to control their users from getting dms from other users
no, but of course server rule #6 tells people to not DM others for support 🙂
@atomic horizon Could you perhaps show me or elaborate how the mask feature there works, it is possible I might be able to do that also, but don't want to assume what it is doing.
If it is just a built in Image Mask filter type thing I could do that
From what i see in vegas when i show mask the preview footage turns white. When i enable invert mask it shows the footage without the effects on
But im no expert on that since i never use it
This is kind of a ballpark of the options, repatterned based on the UI screenshots. Code does most of that already just different wording, and no smoothing yet.
// Enable calibration, use color chooser to pick pixel of image.
uniform float4 Target_Color = { 1.0, 1.0, 1.0, 1.0 };
uniform bool Calibration_Mode = false;
// Output
uniform float Hue_Rotate = 0.00; // 0.00-360.00
uniform float Saturation = 0.00; // +/-
//uniform float Gamma = 1.00;
uniform float Gain = 1.00;
uniform float Offset = 0.00;
uniform float Opacity = 1.00;
uniform bool Show_Mask = false;
uniform bool Invert_Mask = false;
// Limit Lightness
uniform bool Limit_Lightness = false;
uniform float Lightness_Low = 0.00;
uniform float Lightness_High = 100.00;
uniform float Lightness_Smooth = 0.00;
// Limit Saturation
uniform bool Limit_Saturation = false;
uniform float Lightness_Low = 0.00;
uniform float Lightness_High = 100.00;
uniform float Lightness_Smooth = 0.00;
// Limit Hue
uniform bool Limit_Hue = false;
uniform float Hue_Center = 0.00;
uniform float Hue_Width = 360.00;
uniform float Hue_Smooth = 0.00;
literally understands nothing what im looking at lol
Oh, perhaps their mask options are similar to my calibration mode
Just a preview of the option names
If you click on that "Select effect range" button what happens?
Lets me select anything on screen and it adjusts to it i think
This one is going to warrant being turned into a LUA script once I get the basic shader sorted, so it can have a slightly better UI properties layout.
Ah, ok then that is like the color chooser
I really hope im helping cause a lot i dont understand and im winging it trying my best to understand and provide the right info
yeah 🙂
You just happened to have an interesting problem to solve, and I love manipulating color. LOL
Cool!
I'm going to add a selective color option to it also, as it's basically already there.
Got the foundation together, going to chill for a bit and crash. Should be interesting to see all the fruity colors tomorrow though. 🙂
I think I figured out part of my confusion earlier with Vegas there. I was assuming they were doing everything in one colorspace, but they are probably converting to HSL for H and S, but computing luminance separately to use as a limiting factor only, but not adjusting it. Gain and Offset are probably being applied to the HSL Lightness.
I wonder if Vegas is free demo or something
hits up da GOOGZ
@atomic horizon Looks like they have a free trial of Vegas for 30 days. That's plenty of time for me to experiment with it and try to glean how it's working using generated test patterns to confirm or change my hypotheses.
Idk that lets go
@weak escarp for the directory watch media plugin, would it be possible to add multiple file formats instead of just one
So basically if its set to find the newest file created, the file can be either in png or jpg format
@weak escarp Had a chance to peek @ #48 on Source Record?
if you don't set an extension it should support all extensions
No, not much coding atm, busy renovating my house.
Ah I see, thanks but still would it be ok if the plugin can support selected formats
, like if we type (png, jpg) it would only target files with that format ?
Becuz I have a lot of files in a folder with all different formats, so I would want the plugin to specifically target the formats that I set for it
Is there any like YouTube videos, articles, forum posts, anything on making plugins?
hi all, do you use any input overlay on linux?
from Arch Linux's AUR I use aur/obs-plugin-input-overlay
which is this https://github.com/univrsal/input-overlay
for gamepad, my DualShock 4 needs remapping, as when I push square it displays triangle and vice versa
I 'fixed it' by using https://gamepadviewer.com/#menu and browser input
it allows remapping, easy change of skin, power meter on L2,R2, pretty good, although I would like to have this running as local server or 'obs application'
I am not really happy with the input-overlay skin for qwerty and mouse
I like this way more https://obsproject.com/forum/resources/input-overlay-plugin-based-on-html.1291/ but it's windows only, some .net thing or something
so I guess my best bet is something like gamepadviewer for mouse and keyboard
Ah I see. Best of luck with that 🙏
that last link works via wine, but it's functions detecting input are windows only, so welp
The only thing available that I'm aware of is the OBS development documentation which covers the various APIs, and the OBS build documentation which covers how to build OBS from source locally, which is required to be able to make plugins against it. There is also a plugin template available to use as a guide, as well as looking at the source code of any other plugins. Making OBS plugins is not a large-audience type of thing which is likely why there is no content out there specifically teaching how to do it.
!docs
Developer documentation for OBS can be found here: https://obsproject.com/docs/
!build
Instructions on how to install or build OBS Studio can be found here:
Not sure where the plugin template is
!plugintemplate
A template for new OBS plugins including boilerplate code and CI scripts can be found at https://github.com/obsproject/obs-plugintemplate
Thanks, and good timing... the shader I am making right now I am rapidly coming to the conclusion would be better as a script or proper plugin for UI experience with the large number of properties. 🙂
As an update on our conversations from yesterday @atomic horizon, I've got things further along with the secondary color correction. I've watched some video tutorials on people using it in Vegas, and downloaded a trial version of the software myself. I haven't tried it yet, but from the tutorials I can see some of the utility of their user interface. On the math side of things it is doable in shaders, but on the user interface side of things there are great limitations so not as friendly overall. I'm going to continue to flesh out the shader in any case, but to have a better user interface it'll need to be made as a script or plugin as I alluded to a minute ago. I'm still not too savvy with the OBS API, so this may take some time to get right. 🙂 Mind you, it's as good a time as any to "git gud" as they say. 😛
Fair enough
When I have the shader working enough in a usable manner I can throw it your way to poke with though
Alright
Hello all, fairly new to streaming and super new to streaming on youtube - what are some common plugins to use and where can I get them? e.g. showing chat on screen, showing on screen when someone subscribes etc.
@atomic horizon getting there! 🙂
Thats so cool!!
yeah, main problem right now is that you either have to type the numbers in yourself manually, or click the +/- to change the setting in 0.01 increments which is too fine, or use slider mode in Shaderfilter which is hard coded to -1000 to 1000, which is far too large. In short the UI sucks rocks.
I could convert it to StreamFX which would give super fine grained control over each property, but would have to rename them all to start with numbers to force them to be in the same order as shown.
So, I'm thinking it needs to be turned into a LUA script
it is, but it has to be able to have full precision to match what the hardware can display also. The options are to use floating point normalized values, which means numbers from 0.00 to 1.00, which gives 100 steps of 0.01, which is too grainy even for 8-bit per channel color which has 256 steps. So that means to not throw away precision you have to go to a range of 0.00 to 10.00 minimum which gives you 1000 steps of 0.01. That is enough to handle 8-bit hardware output, but it isn't enough to handle 10 or 12 bit in the future.
10-bit is 1024, and 12-bit is 4096
So to handle that you end up going from 0.00 to 100.00 as a percentage as the easiest solution, but you can only adjust it in 0.01 increments by default, or 0.1 if you hold down the CTRL key.
The other option is to have each control duplicated with a "Fine" control under it for fine tuning.
Then you end up with 2x as many sliders 🙂
But it's important to me, whatever precision is used that it does not restrict the accuracy of what the hardware is capable of just to have an easier user interface.
The configurability of it all would be much better as a LUA script or native plugin though.
It does this even in areas where it's clearly not needed. Like Perspective & Corner Pin.
Go into perspective, start scrolling and tell me how it goes 
With corner pin's corner coordinates, you could do it as normalized numbers, which is 0.00 to 1.00, which is the main coordinate system used in shaders, however while shader math uses higher precision, the OBS user interface does not allow displaying more than 2 decimals of precision.
So you would have 100 steps max of precision and be unable to align your corner on a pixel boundary this way. To get more precision, you have to use a higher range than 0.00 to 1.00. Using a multiple of 10 would give 1000 steps, which is still not large enough to handle today's resolutions in increments of 0.01. Also, a range of 0 to 10 is what units? From a user interface perspective it's kind of ambiguous, whereas 0 to 100 can be seen as a percentage at least and make sense.
I hope vegas has been helpful if you got questions on it ill try my best to answer
And gives 10000 steps of precision, and since it is signed, that is 20000 total, which can handle just about any resolution we're likely to see for years. It also has to account for out off canvas coordinates as well.
What would be more ideal, is having Corner Pin work on pixel coordinates instead of percentage, as you don't really need sub-pixel placement capability IMHO.
But, the problem with doing that, is that the amount of movement of the property you have to make, varies with size of texture.
I was thinking about this the other day when I made my anti-aliased variant of corner pin. I'd like to experiment with using percentage, but then internally quantizing it to the nearest pixel offset
For sliders that would be nicer at least.
If you have any other ideas throw them my way tho
right now a lot of things are kind of stuck between "not enough precision" and "way too much precision"
Yeah, I haven't fired up Vegas yet, I wanted to get some working code first, then fire up Vegas to compare and adjust from there, but I'm sure it'll be helpful.
Are shader filters working on Linux (Flatpak version)? When I try some shaders or it crashes OBS and no log messages (running with --verbose --unfiltered_log ) or it does nothing on the screen... nor via filter dialog nor via Shader as source
Hey everyone, I have a problem and I have NO idea how to solve
I’m recording a Podcast using OBS, My set up includes 2 mics, 1 for the Host and 1 for the Guest and 3 cameras, 1 for the host, 1 for the Guest and 1 global, that captures the whole room; BUT, I don’t have anyone behind the scenes on the switcher, I switch the scenes my self as a talk, through the keyboard, which can get REALLY hard
Im trying to find a plug in that can Switch automatically to Whoever is speaking, BUT, and here’s the problem, that also switches to the 3rd camera that captures the Whole room when both of us are talking kinda at the same time, or when there’s any overlapping
I can’t find a way to do it anywhere, the closest thing I could find is a Plug-in that changes only between both of us, but we tend to have a lot of overlapping and the Plug-in just don’t know what to do, it just gets crazy changing between the both until one of the mics gets silent
That's a hell of a problem to solve, and generally why people are in charge of the switching, unfortunately.
"loudest speaker" is easy enough, but going to room camera when both are speaking is where it gets messy.
Shaders work in Linux, however Linux and Mac both use OpenGL, so the shaders need to be written in the GLSL shader language. The overwhelming majority of shaders written for the shader plugins however were written on Windows, and OBS uses DirectX by default on Windows, so the shaders are written in OBS's shader language derived from Microsoft HLSL. When these shaders are used on Linux or Mac, they get converted by OBS into GLSL automatically but this is a "hope for the best" situation that does not always work out in the end as there are language constructs that the automatic conversion does not handle well.
In this case, one can manually convert the shader into GLSL by hand, which only takes 2-20m or so on average if you know both languages or can learn quick. For those who are not developers or not familiar with shader programming however, the only thing you can do is report that the shader does not work on Linux/Mac to the author of the shader and hope that they're able to tweak it so it converts to GLSL better, or find someone else who is able/willing to give it a whirl.
I don't know of any ready-made solution that can do that, however someone could make a custom LUA script or plugin to do it using an FFT library for the audio level, and having OBS switch scenes based on that. I would make it a little laggy though so there isn't excessive switching in short bursts of input.
I agree with Fenrir on the loudest speaker thing. If both people are speaking at the same time, one of them should probably not be? 🙂
One possible algorithm, is when someone new starts talking whose mic was silent for N seconds, switch to the room camera. If this person continues talking while person B's mic is silent for M seconds, switch to camera B.
This way whenever a new person speaks, if they speak for less than say 10 seconds, and there is back and forth chatter always less than 10 seconds it stays on the room camera, but if one person dominates for more than 10 seconds it switches to them.
Another option is to pass the mics through a DAW like Reaper, and have Reaper set up to trigger MIDI events on audio input levels, put the logic for it all in Reaper (or whatever DAW can do it), and use a MIDI plugin with OBS for triggering camera changes
If you don't have the money to hire a producer to run the live show, you'll have to do it all in post with something like Davinci Resolve...
Secondary Color Correction in action!
Now all we need is a banjo, a fiddle, and a mandolin!
selective color mode:
Need to get the "smoothness" functionality working next...
Yeah, i mean, if i could at least use the one that automatically changes between who’s speaking I could get read of the 3rd camera, but it just doesn’t work when we’re talking at the same time
Indeed. I don't think I've seen a single conferencing application do it well that wasn't run off of a $25k+ full-room hardware setup.
Jeez, I can’t even pay a guy lol
Keeping track of how long the current mic has been active, and reset that to zero after a certain inactivity (release time), then logically anding the two together if their active time exceeds a configured threshold, would keep it on the current speaker, and only switch to the other if the current mic is silent for a given release time, and the other mic is active presently. Also, if neither mic is active for a certain time, probably good idea to switch to room camera also.
okay i may be way off here, but if the audio is coming through as separate sources, couldn't you set it to send a midi signal when either is above a certain threshold and then use that midi signal to control what's going on in obs?
i know it's more complicated than that but as a basic idea i think it is doable.
yeah, I suggested that earlier also. It's probably the easiest non-programming way to do it.
I found another example of problems with property precision. I've got a shader that takes an input in degrees, from 0.00 to 360.00. With a 1920x1080p canvas, mapping the hue to the X coordinate, a one pixel wide strip would be 0.1875 degrees, however with 2 digits of precision, I can only enter 0.18 or 0.19. Rounding it up to 0.19 the result is larger than a pixel and if I animate this width across the screen with time, the results are a strip that varies in width, even if the stepping of it is 1 pixel wide.
Guys, I just got started on obs lua scripts, are there any known General issues with using lua scripts in obs or even maybe drawbacks to using them
Just curious :)
actually might make this a little project of mine as i'm pretty sure i know how to do it. will update in a few days when i get a chance.
Well, sure, this sound good and probably would work, but how to I do That
I’m not an expert in OBS at all, I actually ONLY learned the specific things I needed to record the podcast, so I know the basics
Ur saying there’s a way to do it in the plug in? Or with a native thing?
my thought would be the ReaGate VST on the audio source for my implementation as that can send a specific midi note/channel when volume passes a threshold iirc. then there's a plugin to control OBS w/ midi iirc.
@quiet bramble hows progress going?
Yeah, let us know if you get it working. I put it in my infinite pool of future ideas to explore also, but who knows when I'd get around to that. 🙂
I'd like to actually trigger some things in OBS based on which notes I hit on guitar in the future also, using a GK-3
Software engineering + math mostly. If you're not a software dev yourself, there are people on Fiverr that do software development, which is a common place to look.
Got pretty far yesterday. I've got all the basics working for hue, but need to tweak the saturation and luminance side of things a bit. After that is getting the smoothness functions to work, but I'm not sure how exactly they function in Vegas so I might fire it up to experiment, do some screenshots, then fiddle around in the shader and see if I can approximate it. It's probably relatively simple, but time will tell. 🙂 Once I get the crux of it working, I am going to focus on building a LUA script to house it so that I can make the user interface better. In particular one thing I want to do, is have it automatically pre-configure some of the controls based on the user selected target color, so that saturation/luminance low and high are preset to the targeted colour. I'll see how Vegas handles that also.
No idea how to do any of that in LUA yet, but armed with the power of The Google, and The Hundreds of Pre-Existing LUA scripts out there for OBS, I'm sure I'll figure out everything I need to. That's ultimately how I learned shader programming so... 😛
never underestimate the powah of teh Gooagel!
Anywhere i can help lmk!
anyone has a quick tutorial for the streamfx plugin, for voicemods?
or its vst plugin
oh, its reaper.fm
so let me re-ask that.. anyone has a good video for voicemods using reaper.fm .. is there premade files for a quicker setup?
I have a slight issue. So I'm trying to get this machine ready for broadcast at the station I work at, as we have our election results broadcast coming up next Tuesday, but I'm having some trouble here. Whenever I launch OBS, it crashes. According to the crash file, it's due to the "win-decklink.dll" file, but I know without it, OBS won't recognize or let me configure the Decklink SDI output for the Blackmagic SDI Card that's on the system. Anything I can do to resolve this issue? Kind of has to use SDI as that's what connection passes to the video router.
If you need help or have questions about OBS, check out our #support-portal first!
anyone help me with wht the sequence tab isnt showing up in advanced scene switcher?
In the general tab, uncehck the "hide tabs which cab be represented by macros"
But u don't need that tab for sequence
It's been integrated into macros
can it also be used to shut off a stream after switching to a scene after a period of time?
nvm i got it
Hi, after updating to the latest OBS - the WebSocket plugin only responds when OBS window is in focus. If it's minimized to tray, nothing responds until the window is in focus. Anyone else experienced that issue?
OBS 27.2.4 (64-bit, windows) | Portable | [obs-websocket] you can haz websockets (version 4.9.1)
Hello, does a scale plugin exist for sources?
Scale plugin? You can resize any source you want already.
ya
but its "complicated"
a Scale plugin which can be added to a source.. is a bit smarter xD
or a "scale filter" 😄
You mean this?
To crop a source, unlock it. Hold 'Alt', and drag the corners.
Ya, but that is so much "work" to get to this goal
this exists as well
i may tried that and it wasnt what i want, lemme check
I do wonder why a filter like that was even added when the functionality is already present.
Peculiar.
Because you can get exact resolution much easier
Well scaling filter has no difference.
Some sources don't let you enter a resolution
you can also do that via the Edit Transform dialog
Lots of ways to skin a cat
funny filter.. but it isnt that what i want 😄
Lets say in photoshop u have a Smart Object
That's just another way to back up my statement 
I assume it's so you don't have to crop the same source multiple times if you always want the same cropped
Only advantage I can immediately see, is that filters are Copy Pastable, in a sense.
Yes. We are speaking the same language but a different dialect haha
inside the smart object u have a picture.. u can scale it out of the resolution (look like cropping + scaling
does anyone speak german ? XD
Little annoying that some things aren't copy pastable in OBS.
Transforms are copy-pasteable though
so, no germans in here huh?
Scale Filtering I've also spent a lot of time pressing when doing work on a lot of sources.
yes, there are (like me), but keeping it in English makes sure everyone can follow
ok can i dm u with some german words? XD
And Transform is only copy pastable in a functioning sense because of Source Copy atm, if you ask me 
if you only want to explain what you need, I guess here could be fine tbh
in german? ok
OBS 28 👀
I don't think there's a problem explaining it in German - if someone who speaks German is willing to read what is said and help.
I know right?! Prays to every God in every known Religion that CEF update makes it in and saves me
Also.. was ich will ist ... das der "Rahmen" Quasi s obleibt wie er ist.. aber das Bild von der Kamera halt skaliert wird.. ich kann es umständlich mit transformation machen.. aber ein Filter plugin was das tut.. wäre halt geil 😄
What's their issue?
thats a task for a filter programmer in here xD
basically zooming in and out, and far as I understand
but keeping the transform bounds the same
Might be possible if you're only working on the source itself.
And aren't relying on camera functions.
I believe both Move Transition & Adv-ss has ways to set specific Transformation Settings.
Zooming in and out but keeping the bounds? Crop filter!
i already have pos saved for move transition .. but i try it in the cmaera source
CropFilter ?
that'll mess with the transform, won't it?
Nope
Crop filter won’t, crop transformation would
So long as a bounding box type is set
I guess you could animate Crop/Pad filter Move Value ?
oh yeah that exists 😄
First, right click the source -> Transform -> Edit transform -> Set "Bounding Box Type" to "Stretch to bounds"
Then set the "Crop/Pad Filter" in the filters dialog and cut off what you want
keep in mind it can look "weird" if you don't make sure the aspect ration of the source stays the same
i don't disagree, but I don't think anyone has made something like that yet
but maybe a programmer is reading xD
I read the conversation (although not the German bit), and it isn't solid what the existing combination of OBS Transform Edit options, plus Scaling/Aspect filter and/or other existing plugins can't already do.
The Crop/Pad filter built into OBS.
There's also the 3D Transform filter in StreamFX, which does Corner Pin, Perspective, and Orthographic scaling.
or a custom vertex shader
StreamFX has a lot of features, what feature(s) did you have performance issues with?
It's totally possible to use some of the filters in StreamFX in a way that can be resource heavy on one's system. In particular over-use of heavy blur filters, which is a very GPU expensive operation. One has to learn how to optimize how to use things like that to get the desired end result, without the performance hit.
Same thing with the SDF filter, that is very GPU intensive.
And to be clear, these are not "StreamFX is slow", but that the complexity of what it is doing is very math intensive.
Most of the other filters should have little to no performance impact at all.
Don't mean to intrude in the conversation, but which section of this discord can help with the ndi plugin?
U are asking in the correct channel
how do i make sure that the obs ndi plugin instal 64bit and not 32bit. I belive it is causing communication problems between my 2 computers
i have an 5900x and the cpu is sweating if i use streamFX 😄
with preset slow
3D Transform is that what i want 😄
Hi, I'm trying to set up the Replay Source plugin, but even though I follow all the steps, the videos always stay the same time
I don't know how to find what's causing the issue
Because it stays only for 5 seconds, while I want to extend for about 12-15 sec
@weak escarp
anyone willing to help me set up advance scene switcher?
Have u tried fllwing the guide provided with the plugin
Anyone know a plugin/vst effect which would resample audio (e.g. resample audio from say 48khz down to 11khz)? (NVM found my own answer: xfer delta modulator)
Not sure what you're doing wrong then, as I've used StreamFX with an AMD FX8350 (10 years old), an Intel mobile 7700HQ, and now a Ryzen 5950X, and have never had any CPU usage issues. Most of the work done by StreamFX is done on the GPU not the CPU. If you are using x264 video encoding however, that by definition is software encoding done on the CPU, and it does have a CPU cost, but that isn't because of StreamFX doing anything wrong, but by user choice to use their CPU to do encoding instead of their GPU.
Ah, this suggests to me that you are in fact using software CPU encoding via StreamFX, in which case the burden on your CPU has nothing to do with StreamFX itself, but with how you choose to configure the software encoding of x264. The x264 encoding is identical to that which is built into OBS, the only thing StreamFX does is expose more of the options that are available to the user. It is up to the user to appropriately configure the codec to what their computer can handle. Ideally you should be using the NVENC Nvidia hardware encoder however, if you have Nvidia hardware.
Having said that, I use x264 software encoding here at 1080p and 1440p using default settings, modified to 2s keyframe interval rather than auto, and it barely makes any dent in my 5950X. Ditto using CPQ with default settings for recording.
Again though, none of this has anything to do with the StreamFX plugin, but rather with how to configure video encoders appropriately for the given computer capability.
If you need help with that at all, #encoding-talk might be a good place.
I do recommend using NVENC instead though. I use x264 because I have a 10 year old AMD GPU, and AMD's H.264 encoder is terrible.
I'm able to use x264 slower preset no problem, however even x264 medium is better quality than the AMD AMF encoder (which I believe has the quality of x264 veryfast or similar)
Could anyone give a hand on that one?
Hello All! I need some help with obs and the NDI plug-in. My issue is, I'm using two computers to send a video source from computer A to computer B through the NDI but I don't see the video source. But once I send the video source from computer B to computer A then now I can see the video source. Any one know what's going on? Thank!
Make sure that if either computer has a firewall, that you open the ports that NDI uses to communicate on both of them. A common failure some people have, is a firewall running that blocks the NDI traffic on either or both computers.
Thank you for the response! I'm going to make some changes!
Ooo, I just thought of a neat idea for a new filter.
A filter that softens the edges of transparent images or video, so that edge pixels blend into the background anti-aliased rather than having sharp contrasted aliased edges.
I recently made a filter that kind of does the opposite of that, by doing alpha thresholding to remove partially transparent pixels, and it just got me thinking...
Like a vignette then?
No, although I wrote a vignette shader also. This would determine if a pixel is on an edge, by checking the pixels around it to see if they are fully transparent, and then use one of several algorithms to determine if the alpha channel should be altered on this pixel to blend in with what is underneath it.
I'll have to experiment to see what kernel patterns work best.
Doing smoothing beyond 2 pixel widths would start to get prohibitively expensive on the GPU though.
Are you going to use gaussian blur for alpha channel?
No, using smoothstep() to set the alpha channel algorithmically.
First iteration is going to just apply some alpha to all edge pixels, but that will look bad on horizontal and vertical edges so I'm going to experiment with edge patterns in computing the alpha also.
Actually it might not look bad per se, but it depends on the use case, so I want to have different options. It'll be the same GPU cost to manage 1 row versus 2 rows of pixels, so going to stick with that and see how it looks.
Anyone familiar using the Advanced Scene Switcher? I've installed it and I don't have all the tabs and options available to me that I see everyone else in tutorials using.
Don't use those tabs, that's why.
The tabs are getting outsourced - use Macros
It can do all the tabs could do; and more.
Basically; the tutorials are outdated.
@harsh topaz Works for me. You too busy to help me figure out the macros I want? I think I only need 2.
You can try and ask here; I'm not the only person with adv-ss knowledge. Am about to hit dinner though but it depends on the complexity of the macros.
Basically, it's fair straight forward:
Top = Condition
Bottom = Action.
Condition = "If this"
Action = "Then do this"
Primary thing I'd make sure, is that unless you know you want it to spam check it; enable "Perform actions only on condition change" top right.
In my opinion, that option should be selected default - but the dev disagrees 
Let's start with the simple one. I have two scenes. I want an automatic transition from Scene 1 to Scene 2 after the Media Source in Scene 1 ends.
Then bottom select Scene, and transition
Obviously you can change the "state" to "Ended" etc as well.
I just do it like this so I can fade the video out :p
1 sec left on video => 1 sec fade = 👍
Hold on here, digesting and figuring out what you just told me...
Here's where I'm at so far. @harsh topaz
Enable that every macro, unless you want it to literally check and perform the action OVER AND OVER every 200ms (5x a second)
done
I know I don't have the bottom part filled out correctly.
I mean... I think I Don't.
Where do I do this?
The "Wait" checkfield means "Perform this action, and don't do more actions until the transition is done"
so it'll basically wait 3 sec because you got 3 sec fade.
This means the action is halting anything else from happening until its done.
General > Start
You can also go to Docks > Advanced Scene Switcher and get a dock.
👍
Okay, one more
On Scene 2, I want to create a "splash screen". I have a logo that covers the screen that I want to fade out to 0% opacity after a few seconds, revealing everything else below.
You have to break that down into more specific steps
And you probably need Move Transition if you want to fade over time.
So just saying "On Scene 2" doesn't explain enough.
Do you want to go from scene X to Scene 2, and when you get to Scene 2 the image is showing, and full screened - then fades to 0% over X time?
Correct!
You have Move Transition?
I was using Move Value
Exactly, yea that's Move Transition Plugin
oh, right
So what you need is something akin to "Scene active: Scene 2" (Perform action only once on match) in condition
and bottom will be "Enable Image on Scene 2"
In the macro or filter?
"Filter > Scene 2 > Filter name > Move Value: opacity 0 (then in move filter set that to whatever seconds)"
And then make sure you have a 2nd filter with "Move Value 100"
Got both of those already
Then you just do the above - and make sure you "show image" in another macro, and "move value 100" whenever you're on like your intro scene or something.
So it resets itself and is ready for next stream/scene.
Give it an attempt and I can help you try and correct it. Brb.
Already lost here.
Between macros, scene filters, and source filters.
Now I'm screwing stuff up...
Break down what it is you want to do.
Remember every action you do needs to be explicitly set.
Show me what you put 😛
I couldn't convince you to do a call and then I just screen share?
Sorry, don't do one on one stuff
Mrek. I'm short on vocabulary for describing what I want/what I'm doing.
Okay, let's start with what I'm trying to do:
Start show:
Open Scene 1. This plays a 9 second video.
When video ends, transition to Scene 2.
When Scene 2 opens, there is a logo taking up the whole screen.
Wait approx 8 seconds.
Fade out logo, revealing video and other stuff beneath.
I just deleted the filters I had from before so I can start fresh.
This is the only macro I have set up right now.
Which is successfully transitioning me from Scene 1 to Scene 2 when the media from Scene 1 is complete.
So I know I need to use Move Value and color correction for the fading in and making sure the logo starts 100 opaque, but I don't know how to set it up with the filters and macros.
@indigo gust sorry, went to eat food.
In the first macro remove the "wait for transition to end".
Create a 2nd macro:
Condition "If scene 2"
Action: "Enable Filter" > Move Value 0
Then inside the Move Value filter, make sure the duration is set to whatever you want (like 3000ms to fade over 3 seconds).
You have the Move Value on the image, and have another Color Correction filter (the one that does the opacity) and you use Move Value to change the opacity of your image.
Then you just need a way to make sure that the filter Move Value > 100 --- and the Image that you're showing (the splash) is set to the proper start values. You can do that by adding it for example to a third macro for example "If scene = Intro" (assuming you have an intro scene).
Action: Show (Splash image).
Filter: Scene 2 > Filter > Move Value > Splash Image > 100
Just got back
@harsh topaz My kids required attention.
Okay, I got the Splash image to come up
Using the macro
Gyah... now I screwed this up again...
When I add a second macro the first one stops working.
@indigo gust By the way, if you want a tool that can help you figure the macro out easier, go to the Cogwheel under the macro and enable at least these two
Done.
The first one is set to only trigger when a "condition change" is made. So if the condition is "If on Scene 1" you have to switch to another scene, then back to Scene 1 for it to work.
So it doesn't trigger over and over when on Scene 1
That's unnecessary - what does your 2nd macro look like? Make screenshot
Hold on, now my first macro isn't working again.
First macro doesn't stop working just because you make another macro.
Only thing that can happen is if you use functions that essentially add a "wait", in the 2nd macro.
Such a wait or wait for transition to end.
In that case you need to enable Run macro in parallel for it to work 🙂
I deleted the other macros to get this first one working again.
That's my first macro. Scene isn't switching now.
You should only need 3 for the whole thing.
- When on intro, show image, set move value 100.
- When Video on Scene 1 ends, switch to scene 2.
- When on scene 2, filter move 0 on image source.
Instead of 0.15 sec, just set "Ended".
I don't think there's a point in 0.15 sec.
"Ended"? You mean set to 0?
Oh, there it is.
Okay, that fixed the first macro.
Great.
Here's what I have for second macro
Okay, 2nd macro is working by bringing up the logo
Trying third macro now...
So, you want the logo to be enabled before you switch to the scene, correct?
Or do you want to Switch to scene > see scene > enable logo
Yes.
The first or the 2nd?
How many times will this thing occur?
Is it "one time" thing?
As in once per stream.
(I'm rendering a video right now and I'm getting a big delay on Discord. Seeing your messages slow and typing my own slow.)
Once per stream.
Okay- You have an intro scene, correct?
The Intro scene is Scene 1
Okay. Third macro:
If Scene 1, Enable Logo Scene 2
If Scene 1, Filter Logo Move Value 100 Scene 2
Check that in Macro 3
3 seconds? I want it to wait 8 seconds before starting, too.
Then add a wait infront of it.
Beware, if you do this ALL macros are haulted for 8 seconds UNLESS *you enable the parallel option at the top.
wait is an action.
The bottom field.
You can add multiple things.
Then in the new field, find Wait
Drag it above Filter
And change it to 8 sec.
Now enable "Run parallel" at the top of that.
Because you used Wait
So to avoid stopping other macros from running.
Alright, almpost works.
And then you can simply go to scene 5, and switch to Scene 1 and it should work.
Automatic transition from Scene 1 to Scene 2 works, the logo comes up fine, waits 8 seconds, then starts to fade out, but immediately comes back.
Sounds more like a filter issue
Start Logo makes sure the logo Opacity is set to 1
Make sure the filters are on your image source
Filters are indeed on the image source
In Scene 1 you set Value 1,
In Scene 3 you set Value 0
So it fades.
You can test your filter on the image by manually clicking the eye
See if it fades in and out.
You mean in Scene 2 I set Value to 0?
Got it. Yea that's Scene 2.
Ok
Well, going back and forth and trying to identify where it doesn't do quite what you want - is part of the fun of building automation 
Once you got it working perfectly it's so nice 🙂
It worked the first time. Second time I tried it, the logo didn't come back on.
