#plugins-and-tools
1 messages · Page 37 of 1
I'm here! I'm here
whats up?
nothing sorry I pinged you too quick
someone had a crash with background removal, but ddu solved it
should have thought of that before pinging you
Looked like a crash.. Nvidia cuda is the culprit
Y'all are the best I tell you!
OBS plugin community ftw
Hi guys, i have a problem with my obs teleport. In gaming pc i have rtx 3080, i5 13500 and in streaming pc i have i7 4771 and gtx 1070 ti and for some reason when im using teleport, picture on streaming pc is very laggay and have a delay for about 15 seconds, does anyone know how can I fix this? Thanks 🙂
does it still happen if you reduce the quality/resolution/fps of the teleport stream
yes
reduce to what?
!cleanlog
just to see send a log from the pc that's sending the teleport?
To help resolve your issue, we need to view a log file from a fresh launch of OBS Studio containing an output session. Follow these instructions to upload a clean log file:
- Restart OBS Studio first!
- Start your stream/recording replicating any issues (meaning having any games/apps open and captured, etc.)
- Stop your stream/recording after 30 seconds or after the issue has occurred
- Click the Help menu → Log Files → Upload Current Log File
- Paste the URL into this Discord channel
ok please wait for few second
- Wi-Fi Streaming
- Windows 10 22H2 (OK)
- Not Admin
- Stream Delay
- Third-Party Plugins (2)
Intel Core i5-13500 - OK! / GeForce RTX 3080 - OK!
and you're trying to use teleport over a wireless connection?
yes, i have tplink with 300mbps
and that's clearly not enough.
how much i need?
okay ill give it a try, thanks for help!
Anyone know of a plugin that creates a count down timer on screen that I can control from my streamdeck?
anyon got the link to bongo cat plugin ?
It's jank AF and unmaintained
So good luck getting it to A)work and B)work consistently
I am making some changes in the vlc plugin.
I've achieved everything but I'm trying to list scenes in the vlc properties page and add them to the dropdown box.
I think the only way to list scenes is to use frontend-api.
obs_source_t *source = obs_frontend_get_current_scene();
but I couldn't manage to do this no matter how hard I tried. do you have any idea how I can access frontend-api?
hmmm, trying to think how to do this... i have 4 move actions, to change the hub locations, I know you can asign hotkeys, but ultimately Id like to use one button on the stream deck to do all 4 moves after each press, SD only has 2 multi action buttons.. is there a plugin/script to cycle through multiple hotkeys?
seems like advanced scene switcher could do this... just trying to think of how to cycle through the actions
are you linking against the frontend api? You'll need something like this https://github.com/obsproject/obs-browser/blob/bbe8c74b1516fa610a8108212e48f8406cd9da40/CMakeLists.txt#L48 (just the OBS::frontend-api part) in the CMakeLists.txt of the plugin
Is anyone else having issues with the obs-plugin template today, and MacOS packages? It looks to me like the Packages.dmg file that is grabbed from http://s.sudre.free.fr/Software/files/Packages.dmg, suddenly has a different checksum. Now that package hasn't (according to the http://s.sudre.free.fr/ website) been updated since Feb of 2022, so a sudden change in checksum is a bit concerning. I'm seeing the issue both in my Github Actions build, as well as if I try to run the pacakge script locally on my mac.
(note- the MacOS packaging has worked perfectly for me for some time now.. this is a sudden change as of this morning)
hello does anyone know how to change plugins or where plugin settings are. i load OBS and get a error.
- Integrated GPU
- Windows 11 22H2 (OK)
- Not Admin
- No Output Session
- Third-Party Plugins (1)
Intel Core i7-1165G7 @ 2.80GHz - OK! / Intel Iris Xe - Possible bottleneck
OBS Studio supports a variety of plugins that provide new kinds of sources, filters, and additional features.
- For a list of plugins, see OBS Studio Resources: Plugins
- To learn how to install or remove plugins, see the Plugins Guide
- To see if the plugins you use are available for the latest version of OBS Studio, see the OBS Studio 28 Plugin Compatibility table
just updated ashmanix blur filter, and is crashing my obs 30 beta 3, https://obsproject.com/logs/f2PwLBxEO09lV4Rl
sorry, wrong error https://obsproject.com/logs/fInp7Y7pxp0uk7LG
not sure about that but maybe try this blur filter instead? https://github.com/FiniteSingularity/obs-composite-blur
It’s also in the forum: https://obsproject.com/forum/resources/composite-blur.1780/
And works well with the OBS 30 beta on my machine.
yeah that one works well, just have read the ashmanix one has a new gaussian algorithm was trying to find out is it's better than Dual Kawase in this one
i would recommend filing an issue on the plugins github page, that is normally the best way to get help with it.
It depends on your definition of "Better". Gaussian is a higher quality blur algorithm, but much more resource intensive (my composite blur plugin has about as efficient a Gaussian blur algorithm as can be written, and it is still orders of magnitude more resource intensive than Dual Kawase).
Gaussian will typically look nicer, but depending on your GPU, and how much you need to blur, may not be the best choice.
right now composite blur works amazingly well trying to create a glassmorphism effect for browser sources, y have two copies of the same source, one injecting CSS so all the background color are solid, and one where sobe background color are semi transparent and the one wirh the solid colors, are aplied as mask for the blur, what you think about my method ?
I think that sounds like the creative/cool stuff I was hoping people would come up with for using the mask options. I’d love to see how it looks. 😁
I built a little sample that sounds similar (but not as complex or unique) that used a twitch chat browser source, and the background of the chat bubbles to add a glassy blur behind the text.
with obswebsocket 5.0 how do I change a source's properties? Trying to change a GDI's text and it seems like "request.SetTextGDIPlusProperties(source = "source_name", text = "BLAAAA")" doesn't work anymore? Using pythobn
So input settings are settings for any object, and if you want params for them use getinputsettings and dump it?
Inputs is the backend name for what the frontend calls sources.
If you want to know what's the name of a given parameter (what goes in inputSettings) then either use GetInputSettings, or have a look at it in the scene collection file since it'll be the same keys.
for the text param of a text source, I'm pretty sure the key would be "text"
Ah okay. At first I thought input was like hotkey stuff
nah basically, to the backend "sources" is a general term for four different things : scenes, filters, transitions and inputs, with inputs being what the frontend calls sources
How does this work with sources on different scenes with the same name
/describe
Looks great!
Good morning. Sorry for the inconvenience, could someone tell me how I can see the chat of a live broadcast on Twitter from OBS (x)?🤔
Please help I am a little streamer and I would like an animated Pepe Who always opens his mouth when I speak (i have no camera)
I'm trying to find a plugin that would allow me to select form a set of transitions I have set up in OBS and pick one of those at random. Sort of like the Transition Table plugin, but I would be able to tell it to pick a transition from the list at random (or control how likely it is to choose from the transitions)
use this
https://veado.tube/
how do i fit 800 x 600 resoulution on obs
you can set any resolution you want for the canvas in settings > video
i'm also having this issue today, did you find out anything more about this?
Yes. It has to do with a new (un-documented) update to the Packages.dmg download, so it now has a different checksum. If you take a look at this issue: https://github.com/obsproject/obs-plugintemplate/issues/91 grab the wayback link I provided, and replace the URL for Packages.dmg in your buildspec.json with the wayback link.
excellent, thank you
Sup, I have a question. I already asked once but I did not managed to resolve the problem.
I animated lower 3rds (photo below) and I want them to show up every 5 minutes in OBS. 1st five mins Twitch, 2nd 5 mins IG and so on.
I rendered them in alpha channel only so they do not have a background (like png photo) and OBS shows them right but I need to add "timing" them to gradually display exactly as I mentioned above but I do not know how to do that.
Do anyone know how to do this? Thank you fo your time ❤️
You can use powerful macros in OBS Studio using timers, cursor detection, window detection, and more to automate switching between scenes, toggle sources, and many other options.
To get started, install the Advanced Scene Switcher plugin and see the GitHub project wiki to learn how to use it.
Sorry for potential double ping, but using the wayback machine link results in the checksum changing everytime a build is attempted. If I download it normally and Get-FileHash on the package file, it gives the correct checksum however. Trying the Package dev provided link to 1.2.10 is still a different checksum, but when checksum is updated, the build instead fails when trying to attach the image. Do you have any guidance on if this is just my error, or is there something else going on here?
have you tried Exeldro's source switcher ? https://obsproject.com/forum/resources/source-switcher.941/
I'm not sure whats going on with what you're seeing. The wayback machine link for me has the same checksum every time (as it should), and that checksum matches the original checksum in the template (it starts with 6afd and ends in 16c9.
Are you trying this on your Mac, or in the github action?
Github action
strange. Its working fine for me. Can you post your buildspec.json file?
(The wayback machine link should be a snapshot of the file that was hosted in July of this year.. unless there is some weird caching going on)
Sure, just give me a moment, i'm doing another test to make sure I didn't do anything dumb first
Here it is (honestly i'm expecting it to be some small issue that I just wasn't aware I was doing wrong): https://github.com/dspstanky/pixel-art/blob/main/buildspec.json
So here is what I'm seeing for that file:
❯ curl https://web.archive.org/web/20230727054218/http://s.sudre.free.fr/Software/files/Packages.dmg --output Packages.dmg
❯ sha256sum Packages.dmg
6afdd25386295974dad8f078b8f1e41cabebd08e72d970bf92f707c7e48b16c9 Packages.dmg
so the checksum should match what you've got in your buildspec
Right, but when I try to trigger a build action I get a different checksum:
I wonder if there is some weird caching goinng on?
Thats very strange.
I dont see anything wrong with your buildspec.. it all looks correct to me.
Let me check the checksum on the file the developer provided. Give me one minute
I will say, just biting the bullet and trying the latest version and checksum also fails, but with this error:
Thats not good. I wasn't willing to use the latest "version" as what the dev of packages is doing sets off a bunch of red flags/alarms in my head (perhaps un-neccessarily)
1 more second, and I'll grab the checksum of the "old" version that the original author is now providing.
have you tried with the original checksum and this url? http://s.sudre.free.fr/Software/files/Packages_1210_1.dmg
that file checksums out properly to the original Packages.dmg that was available up until yesterday.
I'll try it again real quick
Another mismatch for me:
Wow.. I'm completely baffled as to why GH actions is doing that. You might get better assistance posting what you're doing/seeing in that issues thread.
I know that PatTheMav is working on a new MacOS packaging action that is going to get rid of Packages, though I have no idea how long it will take for that to be available.
I can only assume i've done something wrong somewhere, that's typically a safe bet, but i'll make a post in the thread. At the very least it'll be a good source of learning for me regardless of outcome/solution
Absolutely. I only know enough about GH actions to be dangerous.. so about all I can offer at this point is a shrug and a "Well it seems to work for me." which does you no good at all 😄
There you go @reef helm- looks like Pat just pushed a PR that should remove packages altogether.
waiting with baited breath to fetch the changes
might take some time before my PR is reviewed because we have a reviewer-bandwidth-issue right now 😄
but CI is all green on the PR so if you're in a rush you probably can pull those changes in locally already
FWIW the pkg file inside the DMG hadn't changed, its checksum was the same as in February 2022 when it was first submitted to virustotal - they really only changed the symlink in the DMG
it's unfortunate they surreptitiously just changed the file, but that's what hash checks are for after all
Thats good (I never thought to check the file inside the DMG). My concern with their setup is a bit further reaching though. If the dev cant be bothered to do something as simple as set up SSL, and their webserver compile date was in Jan of 2019 (yes, I realize patches are sometimes done that dont update the version info the server sends out), when a checksum suddenly changes, my confidence drops to near zero. Especially when what they are providing is an application that installs software on a users' machine, sometimes asking for elevated permissions, AND when all of their source is available on github. My mind immediately goes to "Someone may have compiled a new version and put some exploit in it, gotten through an unpatched security hole in the web server from circa 2019," and you know the rest.
But absolutely fantastic that y'all were checking the checksum of the dmg. Two big thumbs up to y'all for that!
we introduced hash checks on all dependencies a while ago - we also check the hashes of all dependencies we pull in for the precompiled dependencies on obs-deps for the same reason
and we check the hashes of patch files applied to those, etc.
it's not fort knox, but a bit of supply chain due diligence
Absolutely.
just successfully created a notarised release with the PR applied on my fork - I'm still suspicious because it all just seems to work, but that's the developer life for ya
Well a quick word of thanks @rancid fossil, for setting up the non-Packages action. I'll definitely be looking at it to integrate with the plugins I am working on. As I mentioned off topic, I'd also appreciate any hits/tips you might have on using a non-in-tree-build with the Visual Studio debugger. I'd like to move to the new build system the template uses, but without being able to properly debug, its difficult. Are there any docs anywhere on this?
(I get pretty lost with cmake, and Visual Studio in general.. was a big automake, linux C++ dev in a prior life)
I usually just set a breakpoint where libobs initialises a plugin and step into the function, which moves the IDE into the source of the plugin - I can then set breakpoints there
at least Xcode has no trouble finding the sources for the plugin in local development
Gotcha. I wonder how well that would work in Visual Studio. I'll have to give it a try.
the symbols part is usually not much of an issue, it's getting the IDE to browse into the corresponding source files to set breakpoints in the first place
exactly- and that is the part I've struggled with using Visual Studio.
Lua script called "Visability Timer" super easy
set a breakpoint in obs_init_module on the line for module->loaded = module->load();
set a breakpoint condition for mod_name to only break when your plugin is about to be loaded
then step into the function call
Makles sense. Thank you for the tip! I'll give that a try here soon.
when you need to do that with a version off CI you might need to do extra steps. On macOS you need to:
- Load the debug symbols into the debugger once libobs has actually loaded the library:
add-dsym '~/Library/Application Support/obs-studio/plugins/obs-plugintemplate.plugin.dSYM' - Map the source directory used on CI to the local source directory:
settings set target.source-map '/Users/runner/work/obs-plugintemplate/obs-plugintemplate/src' '<GIT DIRECTORY>/obs-plugintemplate/src'
Then, once you step into the load function, it will allow you to debug using the actual source files
dunno how that works in MSVC but would be surprised if you cannot do essentially the same thing
oh I forgot - to get the actual paths used to generate the binary and debug symbols, run dwarfdump --show-sources on the dSYM file
Thank you, I will try it ❤️
Thank you too ❤️
Well, it does what I wanted but I can do it only for one source
Just make as many copies of the Lua Script as you need, then rename them 1,2,3, ect add them each in and set as desired. Job done 😄
Good evening, sorry for the trouble .I wanted to ask if a hand was possible. I have an MSI and an Acer in the MSI game and with the acer I do the streming.ho downloaded the plugin obs ndi but pero when I open OBS and put the sources there is NDI.spero I explained well.thank you in advance and good evening
- Integrated GPU
- Capture Interference
- Insufficient Hardware
- Windows 11 22H2 (OK)
- Not Admin
- No Output Session
Intel Core i3-1005G1 @ 1.20GHz - Possible bottleneck / Intel UHD Graphics - Possible bottleneck
you don't have the plugin installed
but when I download it it gives me downloaded.....thanks for the help
but did you install it?
Yes, I went through the entire installation procedure and at the end of everything I get the message that the installation was successful.
did you restart obs afterwards?
not the first time so I deleted the first installation, closed OBS and re-downloaded the plugin but nothing. Can I send you a video here to show you the procedure?
downloading means nothing. close obs, run the installer, reopen obs
I have already tried many times with OBS but it doesn't work. During the installation when I click the "Next" button it doesn't give me the path to the file and installs it immediately. I don't know if this means anything.
did you actually do what I said, exactly
Can I send you a video to show you how I downloaded it? I'm really sorry for the inconvenience, I don't want to waste your time but I can't understand why
how you download it does not in any way matter
once again, did you the following, exactly, without skipping a step :
close obs,
run the installer till the end,
reopen obs
I searched on Google for "OBS NDI plugin I clicked on "go to download" and I downloaded the file "obs-ndi-4.11.0-windows-x64.istaller.exe" I downloaded the file I clicked on "download file" it gave me I asked for authorization to download it, I gave the ok and it opened the "informative license" window I clicked next it went to the installation page I clicked "install" it loaded and this image came out which I sent I open OBS and then SOURCES but there is no NDI. Is this how you download or have I forgotten some steps? Thanks again
did you have obs closed when you did all this?
Yes
right click the shortcut you use to open OBS, click on "properties" and show me the window that comes up
go to C:\Program Files\obs-studio\obs-plugins\64bit and check whether there's a file named obs-ndi.dll in that folder
there is not
uninstall avira antivirus, restart computer, try the ndi installer again
I'll try right away and let you know. Thank you very much
I uninstalled Avira, I restarted the computer, I tried to download the plugin again but nothing is there on OBS
is there a list of obs plugins?
OBS Studio supports a variety of plugins that provide new kinds of sources, filters, and additional features.
- For a list of plugins, see OBS Studio Resources: Plugins
- To learn how to install or remove plugins, see the Plugins Guide
- To see if the plugins you use are available for the latest version of OBS Studio, see the OBS Studio 28 Plugin Compatibility table
I succeeded, thank you so much, you were really kind!!!!
Hello,
I have created a playlist to my clips on Twitch via the VLC video source links. Now I have a picture but no sound in OBS (monitor and output enabled).
When I open the link in the browser I have sound and when I open the link directly via the VLC player I also have sound. A rash is also not present in OBS.
Thanks
Sandersbeek
- Mismatched Sample Rates
- Multiple Game Capture
- Windows 10 22H2 (OK)
- No Output Session
- Third-Party Plugins (1)
Intel Core i7-10875H @ 2.30GHz - OK! / GeForce RTX 2070 SUPER - OK!
- MP4/MOV Recording
- Hardware-accelerated GPU Scheduler
- Old Version (27.0.1)
- 7.5% GPU Encoder Overload
- Non-Standard Framerate
- Excessively High Framerate
- Windows 10 22H2 (OK)
- 0.2% Rendering Lag
- Third-Party Plugins (1)
Intel Core i5-9400F @ 2.90GHz - OK! / GeForce GTX 1660 Ti - OK!
Hi, I have created different objects in SE and per URL-copy successfully transmitted to OBS. What I am missing: in all the YT - vids it's shown thats then it's possible, after saving, to call the SE-Editor from OBS. But not for me...is this due to the "age" of these vids or did I make a mistake?
That requires using their plugin
Which I don't suggest
But if you want their plugin, and help with it, ask them
!sehelp
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.
Has anyone had an issue where the windows installer generated by InnoSetup for their plugin gets flagged as a trojan/virus by Windows Defender? I've got a really weird one happening, where my new plugin installer gets flagged, but only on a small number of machines. I've had a couple of users inform me that Defender considers the installer a virus, but on my machine, running the same Defender definition file, it installs just fine and isn't flagged.
Has anyone had trouble with the VLC playlists option in sources recently?
I just migrated a portable version of OBS over to a new PC. Old PC was Win 10, new one is Win 11. I am trying to get my VLC playlists to show up as a source option but it's not there
? I have the latest VLC release installed. What am I missing?
happening all the time with any installers, AVs just suck 🤷♂️
it's heuristics, which in terms of AV is nothing but an euphemism for "random" 😛
meaning you can build one installer and it's deemed fine by the AV, then you repackage with nothing changed but a slightly redesigned icon file and all of a suddenly it's the worst thing the AV has ever seen and needs to be quarantined into hell
Is the whole "Heuristics" part the reason it gets flagged on a small number of machines, but on others (that are also running Windows Defender) its all fine? This is so confusing.. LUL
but I also never had defender flag an installer on the machine I built it, if I had to guess I'd say the fact that the installer has been created on my machine somehow plays a role, dunno whether it's smart enough to actually detect an installer building process by common install systems or it's just the fact that it sees the file being written to disk by something that is not a browser, meaning the file is not coming from the internet = more safe
Ahh.. that might also be the case.. (however there were several others who I spoke with who downloaded the installer, and it went without any issue)
it had also happened to me that I built an installer on my dev machine where it was fine, copied it over to my gaming machine that is running the same OS with lots of similar software and update level and on the gaming PC defender didn't like it
actually, no, not copied it over, now that I think about it - the cases where I copied it through local network was fine, but recently I got a detection warning when I downloaded it from github
further supporting my theory about having it written by a browser making it seem more dangerous for defender
Got it. So essentially there is nothing to do about it? Just some people will not be able to use the installer? Eek.. that seems.. not so optimal.
and are you sure it was not a timing thing? nowadays AV solutions are all talking to each other through the cloud, if enough AV instances have seen a file being run without problems they will remove the flag - you will usually not get alerts for files that have been around on the internet a while
The weird thing in this case- it is actually flagging the file as a particular virus/trojan.
can't you just tell defender to fuck off and run it nonetheless?
since defender is the most widespread AV solution being used it might be worth to just put up some instructions on how to handle the situation
yeah, I am quite sure you always can
you need to teach people how to do it tho
e.g. in that pic, the "Allowed threats" link might be where you can add this installer to some sort of whitelist
Sure, I can... but my concern is some random user downloading that then gets suspicious. And in this case, flagging it as a specific trojan (it was a different virus it was flagged as last night for the one person) it actually nukes the file before you can even attempt to open it.
I guess my point of view- if I was downloading an OBS plugin, and windows was telling me "Hey.. this is a virus/trojan.. stay away!" I'd probably listen to Windows Defender... well maybe not now that I'm more educated about it.
but it sounds like there is not much that can be done about it. :/
(And the zipped, non-installer files check out fine.. it seems to be the installer itself that is flagging)
that's the one I recently had, it seems straightforward, but the "Run anyway" button is not visible from the start, you first have to click a small "More info" link, which isn't often obvious to the average user
Yup.. that one I'm aware of- the whole "Unrecognized developer". Need to spend $$$ to get a signing cert to make that go away.
I'm wondering if I should just distribute my plugin without a windows installer (just the zip file) to not get tweeted at that my plugin is a virus 
well, that's up to you, but I learned that many people are totally lost without an installer
I know.. 😦 Ugh.
I recently had that person who sent 5 angry posts or so to my plugin's discussions thread about not being able to download and install the plugin, because...there is no download button 
😄
and went on about being an IT expert for 30 years and totally knowing their way with computers so it must be totally the fault of the plugin
Thanks for the feedback on this.. got some things to think about. Maybe I can switch it up to a different installer than InnoSetup, as some googling shows that its notorious for getting marked as a trojan.
so I guess you need the people who are IT experts for 40 years to be able to get the plugin running without an installer 😏
That'll cut my potential user count down quite a bit 😄
yeah, I also learned that putting BETA in the plugin name really scares people away 😄
I'd actually like to drop it soon, the last version was really stable, but hard to tell how stable it really is when you don't get feedback 😛
Yup.. I was intentionally doing that until I release.. My newest plugin is ready for release, but now this issue.. shrug.
I guess I am just too careful - should just remove "BETA" from it and see what happens 🤷♂️
just put a b in the version number
I guess then I could as well just remove it from the version number completely and write in the middle of the description text that it's beta, people don't read that anyway 😛
@serene echo I haven't tried this myself, might be worth a shot: https://www.microsoft.com/en-us/wdsi/filesubmission
Submit files you think are malware or files that you believe have been incorrectly classified as malware.
I will give that a try.. though apparently it can take a few days to a week to get cleared, and if you're not using a signing cert, you have to resubmit for every. single. update. though it may be worth it.
(and I'm not even convinced its not a user machine issue.. according to my github stats, the installer has been downloaded 300 times, and 2 people have had an issue)
well, only do it for the ones that get flagged, but yeah, you have to do it every time
well, 2 people that have told me.
the problem is that usually the feedback rate of issues is a lot lower than us devs like to make ourselves believe
absolutely.. though one of the people who had the issue is a friend.. he was streaming at the time.. and 10 people in his chat downloaded the installer, and all were able to run it without issue. so that was a good data point.
people be like "let's tell them it's broken - oh, what, I have to create an OBS project account first? nah. but there is github, oh no, also need an account there" *closes the browser tab and moves on*
in best case they find your name and mention you when they tweet about it
Yup.
even with heuristics I wonder why it's differing so much from machine to machine - certainly they won't differ so much in definition update state, maybe the AV solution is adapting to the user habits somehow? or things like which browser you used play a role, e.g. when people used edge or chrome for downloading the AV think's it's safer than when they used a different browser? I wish I knew
This is exactly the part that has me completely confused. I'd think it would be consistent across machines. At least then I could try to figure out what in particular is triggering it, and try to fix it.
it's unlikely that you find out - AV vendors don't want you to know - well, mostly they don't want virus devs to know, but for all they know you might be one 😛
that btw might also be the reason
that there is literally some random factor involved
just to make it not too consistent for virus producers to analyze
I think my first step is to look into other packaging/installer options.. the more I read, the more I see specifically other InnoSetup generated installers flagging the exact same virus and trojan that I was flagged with. Its not like I need some super complex installation.. the files just need to be copied to the Obs Studio root. I bet there are some other, more simple installers out there that might do it without getting flagged.
I imagine they use some sort of scoring system, like, "downloaded by a browser? -> + 1 evilness. wants to self-extract? -> +1 evilness. wants to write to protected space (program files directory)? -> +1 evilness. the user I am running for is generally often running into detections? -> +1 evilness. and last but not least: roll a dice: -> +0 or +1 evilness.
at least for the heuristics part
That definitely makes sense.
and then on 4 evilness they warn and on 5 evilness they insta-quarantine-f-it-all
if you say you got a very specific detection I think there is also that part where they detect not whole file checksums (that's easily circumvented nowadays by adding some randomness to the files) but checksum for smaller parts that are typical for a virus - and you just have bad luck getting a collision with this, because these parts being so small make collisions more likely
yo could someone help me with obs rq on omegelw
If you need help or have questions about OBS, check out our #support-portal first!
I am using NSIS and also recently had a user report a detection from defender, but ofc that's anecdotical, I have no idea whether Inno or NSIS or any installer system produces more detections than others
in the end they all are downloaded fresh from the internet, are executable files, self-extract and then write to a protected directory - that's a lot of red flags you can't avoid
and in case of a fresh plugin release it's a file the AV hasn't ever seen before
the only thing you could actually give a try that might be safer is a standard zip or 7z self-extractor - the AV should be able to recognize the self-extracting code of these and trust them more - and iirc you can set a default extraction path for them and then you only need to have the correct directory structure inside so that all the files are copied to the right places
the downside is that users get not uninstaller for this, so you might get complaints from users who want to remove the plugin and can't because they don't know how, this can be scary to some users
you could include some removal script with the extracted files, but you will still need to put directions for users somewhere how to navigate there and execute it - or make it part of your plugin GUI
using adv scn switcher.. I have 8 macros that turn on a filter when a specific scene is showing, then another 8 to hide those filters when scene X isnt visable... I feel this is likely the hard way, anyone know of an easier way? like could it all be done in 2, or need the 8 indv scenes and 1 to hide... I dont know
just trying to get a deeper learning of it, if its not possible, then shrug
Is it 8 filters that show for when 1 scene shows?
Has the update come out to enable “else” statement support? If so your macro could say if you are on a scene enable, else disable.
i dont think so, havnt seen an update in a few weeks now
#plugins-and-tools message
Yes this is what I remember seeing
installed the beta, ill give it a shot
whats a good discord for video questions? (like normalizing audio, etc) adobe one never answers
If you need more in-depth technical help for your computer issues outside of OBS, you can join the /r/TechSupport Discord server
wish there was a disable all filters option
yeah i cant get the beta to work, maybe doing it wrong
if the condition is the same fir the 8 actions you deffo can group them i. the same macro
Hello can someone help me
i downloaded obs and wantet to have a overlay for streaming but in tools its doesnt show own3d pro how do i fix this
You'd need to ask them for help as we can't assist with their plugin.
what no it doesnt shows it in tools doesnt care wich plugin i am trying to download
i klick download then they show me what i have to do in obs like click on tools then on own3d pro but there is no own3d pro
for it to appear in tools, you need to install the own3d plugin.
If you need help with that plugin, you should ask own3d for support
yea how do i ask them or where can i download the plugin
they have a discord server
where can i find the dc
a google search for "own3d discord server" should easily give you a link
Hello, is there obs multi rtmp that works on macbook high ci sierra?
there's only one multi rtmp plugin : https://obsproject.com/forum/resources/multiple-rtmp-outputs-plugin.964/
I use it, how do I add it? I installed the package but it doesn't appear
- Old Version (24.0.6)
- 5.3% Rendering Lag
- Non-Standard Aspect Ratio
- macOS 10.15 (OK)
- Third-Party Plugins (4)
Intel Core i5-2415M @ 2.30GHz - Below minimum requirements / Intel HD 3000 - Below minimum requirements
for mac 10.15, use obs 29.0.2
https://github.com/obsproject/obs-studio/releases/29.0.2
what is version i use in arm64 or x86_64
what is version i use in arm64 or x86_64
unless I'm mistaken, x86_64
!sehelp
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.
- Old Version (29.0.2)
- Non-Standard Aspect Ratio
- macOS 10.15 (OK)
- 1.1% Rendering Lag
Intel Core i5-2415M @ 2.30GHz - Below minimum requirements / Intel HD 3000 - Below minimum requirements
There is no multistream in the obs dock.
is not there way..
Try to reinstall the plugin now that you are updated. Are you downloading the latest version?
I did, but it's not like that.
obs 29.0.2
rtmp 0.5.0.1
Shouldn't rtmp appear in the dock?
You asked about which mac version you should use. Perhaps you need to try the other one.
nah
in finder, press Shift + Cmd + G then in the prompt that appears, paste /Library/Application Support/obs-studio/plugins and show me the contents of the folder that it brings up
copy that file aand paste it in ~/Library/Application Support/obs-studio/plugins (notice, for this one, there is a ~ at the start) then restaart obs
It's already in it, but you want to add it again?
it's both in ~/Library/Application Support/obs-studio/plugins and /Library/Application Support/obs-studio/plugins?
Isn't it the same address?
no, as I said, there's one with a ~ at the start, one without
There is no folder with ~.
it's not a folder
press shitf + cmd +g and paste the whole thing with the ~
~ stands for your home folder
HOME FORDER?
don't worry about that, just do the thing with shift + cmd +g
I DID but library is only one.. not two..
what do you mean?
what is mean this..
this
show me a screenshot of what comes up when you press shift +cmd +g and paste ~/Library/Application Support/obs-studio/plugins in it
i did in finer shift cmd g and did ur adreess cd copy and put it sad adreess
show me
is that /Library or ~/Library
/Library or ~/Library?
yes
no that's not a question that can be answered by yes
it's either one or the other, which one is it
Are there two libraries, one with ~ and one without?
show me a screenshot of both, each showing the whole window
was it already like that?
???
was it already like that or did you copy the file from one folder to the other?
It was already like that. I also copied it
close obs, reopen it, send a log
- Old Version (29.0.2)
- Non-Standard Aspect Ratio
- macOS 10.15 (OK)
- No Output Session
Intel Core i5-2415M @ 2.30GHz - Below minimum requirements / Intel HD 3000 - Below minimum requirements
try this version instead :
https://github.com/sorayuki/obs-multi-rtmp/releases/tag/0.3.0.2
do not appear... so sad...
omg...
restart after installing it
nah, send a log again?
- Old Version (29.0.2)
- Non-Standard Aspect Ratio
- macOS 10.15 (OK)
- No Output Session
Intel Core i5-2415M @ 2.30GHz - Below minimum requirements / Intel HD 3000 - Below minimum requirements
delete all the obs-multi-rtmp files in both of those folders, then install the plugin again, the precise version I gave you
yes
and make sure you're using this file
Since it didn't appear, I copied the plugin from a library without ~ to a library with ~. Why does this happen? Is one a system library and one a user library? Where does it have to be for it to work?
ok, but which plugin, the one I linked you?
yes
and it's working now?
yes
👍
basically the one without ~ is an old install method that's outdated nowadays afaik
I haven't tried it yet, but I think I'd be against it.
against what?
It's not obs, but can I ask something else?
if it's not obs, probably better in #tech-talk
is u american??
If I were rich, I would have given money. If I make a lot of money, I will reward you.
You can support OBS development by either becoming a patron on the OBS Patreon or by becoming a sponsor on the OBS Open Collective.
Find out more here: https://obsproject.com/contribute
If you travel to Korea, please find me
👍
Hello everyone!
I'm making some new visuals for my Game Scene, and I'd like to know if there are any Plugins that allow to apply Blending Modes "Overlay" to a Source, like on PhotoShop software !
I've found a few native Blending Modes in OBS, but the ones I wanted...
Welcome to the official OBS Community Discord server! Unfortunately, our support volunteers can only provide support in English. Most of our support documents and guides are also only in English. If you feel comfortable using a service like Google Translate, feel free to use that to send messages to us. We'll do our best to understand your intent, and we'll try to help you as much as we can.
Translate
sorry
素晴らしい最初のメッセージ 
anyone know of a plugin to allow a program output, like projector, to be sent to a blackmagic decklink pro port... or to allow a blakcmagic decklink pro port to be an option in the projector output??
Found it! 🙂
Did anyone work to implement firebase auth in obs plugin
Hey all question is the a tool or method to make a page turning animation transition that will work in OBS?
One could convert a Shadertoy shader to a StreamFX transition shader to do that
I have two internets and two systems, with one router I share the screen from computer one to computer two. I want the obs to use the internet of the second router for streaming, because I don't want to create traffic on the shared screen plz help me .
Hi all, Does any one know if the official version of OBS now has webrtc output?
I turn on highlight recent played macro in advss, its not normal to see other macros not involved in current scene firing right? extra cpu usage?
also when you uncheck something, doesnt that mean its disabled? I was on the beta then, but those kept firing whether checked or not...
the current beta does, yeah.
now i am seeing you posted elsewhere and my reply is eerily similar to fenrirs
i see it has WHIP output. but can it ingest WHIP ? for example vdo.ninja to OBS using WHIP
advss cant control apps right? just launch, like could it mute itunes?
hotkeys, dammit sometimes I ask dumb questions
not that anyone is paying attention 😉 one last question before bed, how can I run an elevated program from advss
I am trying to use OBS NDI plugin with NDI bridge the get a source from a PC on another network, but when viewing the NDI source here theres pretty significant desync between audio and video with audio delayed by over a second, this is my first time using NDI, anyone got experience with sending OBS over NDI bridge?
to be clear the delay is introduced by bridge as far as i can tell since viewing the source on its local network has no audio delay
Hi. I have 5 different streams coming in to my Nimble stream server. They are web IP cams from high mountains. I would want to "switch" cycle between them. Is there a good workflow or how to switch and cycle between them each minute?
Automatically
Hey, all. I've been using https://webcaptioner.com/ but it's going away. It suggested this captions plugin https://github.com/ratwithacompiler/OBS-captions-plugin but I can't figure out how to get the captions to show up on live stream. It saves to an .srt file, which is great if I want to upload to YouTube, but can anyone help me figure out either how to get the captions to show up on a live stream, or a better plugin I could use? I'm on Windows 10 64 bit, Intel i5 processor.
@hearty vault where are you streaming to?
Twitch is the easiest one as it's just a matter of tweaking the settings for it and users enabling the CC option from the video player.
thanks for the info i have no idea what you are talking about but i have astartin point thank
Twitch. How would I tweak those settings?
iirc it should be under the Google closed captions options under the tool menu.
Actually its Cloud Closed Captions
Yeah, I've been in there and I'm having trouble finding the relevant option. I have "Output To" set to "Streams & Local Recordings"
Screenshot that window for me. Trying to wing it from memory and the slightly dated pics on the repo.
What the heck, it disappears when I go to take a screen snip. Hold on, trying other methods.
settings > general
untick "hide obs from screen capture"
Thank you!
You have the first option which uses the out of box natively supported option via the twitch player option and the 3rd tab (open captions) which should do a "hardcoded overlay" source if it was on a website that didn't support it.
The first option being the stuff under general.
I see the captions come up in a separate box in OBS but not on my preview screen.
Regarding the open captions tab you can try adding a text source and then choosing that in the dropdown from your screenshot. Can't help with that unfortunately.
Okay, thanks. I'll see what I can figure out from here.
Have you tried https://github.com/obs-ai/obs-localvocal ?
No cloud, no fees, no network. AI locally your PC
smh shilling for yourself :3
I mean tbh for streaming the cloud caption plugin works very well, and since you need network to stream anyways, it's not like needing to be connected is an issue
The 💸 though
Google transcription services are not
the plugin is free and costs no money to run
Yep. But to run it needs cloud API services which cost money
at no point does it cost any money to the end-user to make that plugin work
Well somebody's paying because Google speech services are not free beyond a certain amount. There are cheaper faster and better cloud transcription services like this very recent one https://console.deepgram.com/signup
check DMs, roy
can I run an elevated program from advss
figured it out... you guys are sooo helpful
people help when they can, in their free time. that type of comment isn't really necessary.
this has nothing to do with obs plugins?
what about #ideas-suggestions
no, that would be suggestion of things to implement in obs
which this is not
I'm not even sure what exactly you're trying to say
i can see what people play on
yeah, that's a basic functionality of discord
no actually its called vencord
Hey all, I'm looking for something a bit unique and I don't know a) if its possible and/or b) if it already exists.
Basically, I currently run a 2 pc setup and have spotify playing on my streaming pc but controlled via my gaming pc (spotify open on both pcs etc).
What I want to do, is for the streaming pc to change scene when spotify is paused.
I currently know I can somewhat do this via advanced scene switcher by audio detection but I was looking for something a bit more hands on, to react to the multimedia keys being pressed to actually play/pause spotify ?
honestly, if it works, it works.
If you do want something more proper, have a look at the spotify API, hopefully they might have some sort of events that fire off when it gets paused.
Transferring inputs between computer is a bit of a tall order, easiest I could think of would be to make use of obs websocket
I have no idea where to even begin honestly and was kinda hoping someone knew of a solution that already existed 😂
honestly, the by far best solution already exists, it's the one you're using
anything else would afaik require some amount of either making it yourself or paying someone to
curious, what would be gained from it being toggled by a key press vs. when audio is playing in spotify?
honestly that's kinda why I say their current solution is the best, I don't see what advantages other solutions would have
well yeah, that is why i'm asking 😄
that being said, cross-obs input transfer via websocket sounds like smth I'd really like doing
and I could do it with scripts god it'd be such an abomination I love it
realistically, I COULD do it with my streamdeck but I have musclememory from 20 years of using the play/pause multimedia keys on my keyboard lol
that and medication brain means I forget to hit the change scene hotkey on my streamdeck far too often than I;d like to admit
so its just trying to streamline everything
I haven't tried it in a "live" environment yet but offline, it works.
cause every solution I can see are more complex to setup and easier to break, but they won't work better. just as well
the issue I have is if I turn off music or the song doesn't start playing for whatever reason (spotify being weird) it changes the scene when not needed/required
hence why I prefer a hotkey over audio detection
at that point, for those situations you can likely just manually override it
yeah, im looking into options available and i think one of the many software bots will do the trick
was hoping to avoid them if possible but if needs must
so can someone help me im trying to get the virtual camera to appear in tools but its not there nor will it pop up in discord cameras
i dont even know if i have the right one
@hard jay
- Slow Network Connection
- Windows 11 22H2 (OK)
- Not Admin
AMD Ryzen 5 1400 - OK! / Radeon RX 580 - OK!
In the dock where the start streaming button is, do you have a start virtual camera button?
i do but for some reason its not on tools and i got it from steam so when i launch obs and start the birtual cam it doesnt pop up on discord during test
The plugins that would be in the tools menu are outdated and no longer work.
Are you able to choose "OBS virtual camera" in Discord, or does what you are choosing have a slightly different name?
no im not able to choose it at all
Can you screenshot the camera choices dropdown in Discord Voice and Video settings?
it just has my camera on it
!win10privacy Check that discord is allowed in this setting 👇
Windows has privacy settings for microphones and video capture devices (primarily webcams and capture cards), which may block them from being used in OBS. If you are having issues capturing them, follow these steps to check that OBS is allowed to access them.
- Open the Settings app.
- Go to Privacy -> Camera for capture cards and webcams, and turn "Allow apps to access your camera" on.
- Go to Privacy -> Microphones, and turn "Allow apps to access your microphone" on.
those are on already
Try to fully close discord, make sure it doesn't minimize to tray) then reopen it.
nothing
Dang. Move to the #windows-support channel (since there are no plugins involved) and ask your question again to see if someone else knows how to help
@mystic forum While I have this thought in my head: OBS captions gives the option for a "hardcoded" subtitle overlay instead of the clientside optional one that twitch gives or am I reading the purpose wrong?
yep Open Captions just outputs to the user selected text source for hardcoded ones
So simply add an empty text source, select the option in settings, and it'll do its thing?
Yep
Would having the mic muted in a way it doesn't audibly output to the stream but still trigger the captions work as intended or does that cause funky things?
Saying this as I wanna try go do some streaming again but walls be thin AF >.<
So rather than not use mic I'd at least settle for having subtitles.
so in the settings theres the "caption when" and by default (with caption source is heard on stream) it will mute captions when the caption audio source is muted, so you can either set that setting to mute source is heard on stream then a 2nd source selction box shows up for selecting a mute source, so it will caption the caption source but mute based on the mute status of the mute source.
or alternatively probably easier to just have the mic unmuted but unchecked on every track (since it doesnt check for that just muted status)
Yeah. The latter would probably be my best bet.
also I'm horrible at explaining things or making understandable UIs, I apologize
You did fine enough and have just what I want to use.

how to remove extension added to obs
@mortal harbor
OBS Studio supports a variety of plugins that provide new kinds of sources, filters, and additional features.
- For a list of plugins, see OBS Studio Resources: Plugins
- To learn how to install or remove plugins, see the Plugins Guide
- To see if the plugins you use are available for the latest version of OBS Studio, see the OBS Studio 28 Plugin Compatibility table
hey not able to remove plugings
I disagree, UI is pretty good
plugin is all around pretty good tbh
what are you trying to do and what doesn't work
I have installed plugins and want to remove
ok, did you check the guide you were linked?
But from there in my mack m1 2020
Nothing coming such like it mentioned in the guide
press cmd +shift +g and paste the following in the prompt that comes up ; ~/Library/Application Support/obs-studio/plugins
you are gr8 bro
one more help please
for multiple streaming at time i was trying to install plugin but its not reflecting in amc
mac
nor in obs
yeah it's a bit fucked up on mac right now.
Install it as you normally would.
Then press cmd +shift +g thing then paste in /Library/Application Support/obs-studio/plugins (pay attention, it's not the same as before, it doesn't have ~ at the start, that's important) that will open a different folder and inside that folder there will be the multi-rtmp.plugin file.
Copy that and paste it in the previous folder I had you open (the one with ~ at the start)
(if any of this is unclear tell me and we'll o step by step)
ouki, so first of all which version of macos and obs?
ok, so, download obs-multi-rtmp-0.5.0.1-macos-universal.pkg from here : https://github.com/sorayuki/obs-multi-rtmp/releases/tag/0.5.0.1
and use it to install the plugin
yee that's "normal"
solution
I'm typing
ok, now press shift +cmd +g and paste in /Library/Application Support/obs-studio/plugins
that will open a folder, inside you should see a file named obs-multi-rtmp.plugin
is that not the case?
ouki, now press shift +cmd +g and paste in ~/Library/Application Support/obs-studio/plugins
pay attention, it's not the same, there is a ~ at the start of it
that will open another folder, in which there won't be a file named obs-multi-rtmp.plugin
you need to copy the obs-multi-rtmp.plugin file from the first folder to the second
then restart obs
wait
this without ~ not able to find
you're sure you're pasting the right thing?
yes
if you just paste /Library/Application Support/obs-studio, does it find it?
ok, that's not normal and I don't know enough about macos to know why it's not working, sorry
see
yeah, I'm sorry I don't know
what's the full path to that folder?
~/Library/Application Support/obs-studio/plugins
and that one doesn't have an obs-multi-rtmp.plugin file in it, right?
r u there
yes?
it has
ok, then I'm unsure why it doesn't work, sorry
Is there any iOS teleprompter apps that work really well with OBS? I want to have something that will run on tablet and phone so I can use it in the office and from a remote site? Any recommendations?
can anyone help me with a plugin? quite frustrated
Welcome to the OBS community support channel. If you have a question, go ahead and ask it, and if someone is available to help they'll respond. Try to be detailed, and provide a log if you are having issues with streaming/recording (Help -> Log Files -> Upload Current Log). Please be patient if someone doesn't respond right away!
How can I do multi audio channel recording in obs ?
what do you mean by multi audio channel?
do you mean multiple tracks, or do you mean more than stereo, like 5.1 or 7.1
No , I mean multiple tracks
I think it’s possible isn’t?
!multitrack
yeah it's perfectly possible, and I kinda guessed that's what you meant but I just wanted to ask because usually channel means mono/stereo/surround etc
To record multiple audio tracks in one file, particularly for video editing purposes, follow the Multiple Audio Track Recording Guide
Ok so I have OBS studio and use 3rd party called own3dpro for my overlays ect I had the plugin under my tools in OBS but dont anymore not sure if I did anything. I have uninstalled both programs and tried installing first obs then own3d with the plugin still not in OBS can someone walk me thru some troubleshooting steps?
Ok
Thank you very much 😁
👍
honestly, the first troubleshooting step would be to ask own3d support about it. they'll know their plugin far better than pretty much anyone on this server
yea chat lady gave up on me pretty fast said could be an issue with my system
!log
fucking stellar lmao
send a log I'll see if I can figure smth out
- Hardware-accelerated GPU Scheduler
- Windows 11 22H2 (OK)
- Not Admin
- No Output Session
- Third-Party Plugins (2)
- No Scenes/Sources
AMD Ryzen 5 5600X - OK! / GeForce RTX 3080 - OK!
there's only one thing I could see :
uninstall ESET security, reinstall obs and the plugin, check if that orks
ok ill try that thanks
!install
- To learn how to install OBS Studio, see our Install Instructions
- To learn how to build OBS Studio from source, see our Build Instructions for details on the build system and dependencies, then specific instructions for Windows, macOS, Linux, or FreeBSD
Hi @ocean cliff first of all, thank you very, very much for taking the time to help with the PR I submitted. I've been going mad with a handful of streamer friends trying to resolve this mess ever since Discord revamped the Stream Kit website by stripping out all of the IDs and then adding Strict-XSS on top of it.
As for Flexbox, that... appeared to be what the element was that I am selecting with the following code:
li:has(img[src*="86586182175035392"]) { display:block!important; z-index:50!important; order:50!important; }
If I can select that object, I'd be able to hide avatars without a big ugly gap appearing by setting specific people to display:none
Flexbox is a CSS layout style is why it confuses me, but I think it's just a terminology mixup
It is the <li class="Voice_voiceState__OCoZh"> element I'm trying to modify above users
~~@ocean cliff heya, im following #394 in obs-browser, and don't wanna post my own really tiny correction due to cluttering the PR, as you've said. I did want to talk about this statement:
If it was re-enabled again, another potential workaround would be to upload the icons to Discord and use the attachment URL. I doubt they would block a subset of their own CDN.
There's a decent chance that Discord may actually block their own CDN here in the coming months. Discord has recently started putting authentication tags onto attachments from their CDN. This is to curb its use as a generic file host, because hosting all this is probably very expensive. Although we've been told this will be transparent to the user (theoretically), I doubt it'll apply to StreamKit, as I believe their invisible implementation may only create valid authentication tags with the Discord client only.~~
someone else made a comment in the pr lol
ignore me ^^
Flexbox refers to setting an element to display: flex; and thus using the flexbox layout instead of the normal block layout
My CSS is using display:flex in the code
Ah okay
As is I... thought the website?
In any case, the has() selector is the only way to do what you want (Which is, to style a parent element based on a childs elements contents)
wow.. I guess the old website used Flexbox and when they changed it, all this time I was just overriding it back to Flexbox
That's generally been impossible until that selector (on purpose) since it has performance impact to go backwards up the tree, but alas, modern web dev has made it useful in some cases
In this scenario, you could work around needing it with some CSS structure adjustments
Yah. It's brutal after Discord changed the StreamKit website
It busted things for VTubers everywhere
Basically you'd make the <li> tags size based on their contents, and do your changes and styling inside them instead
Sorry, my main skill set is writing PowerShell scripts and repairing computers. I'm an amature coder as best. Can you laymans that a bit for me?
I can also back up @ocean cliff in that since that one time DIscord revamped Stream Kit, my own code continues to work.
Here is the before/after of mine that you can use as reference https://gist.github.com/WizardCM/cc83e30345d169466c3f277dbb835746
I didn't know it was possible in CSS for me to rip out the elements in the Stream Kit website and redo the layout
The top file is the old stuff, the bottom file is what works at the moment
You can't rip out elements but you can hide them
My own code literally says /* v2, when classes became worse */
Very accruate Matt
Uhh.. know what, I might make you guys cry when you see my code for how ugly it is but...
So here's the stream kit set to display: flex; on the <ul> container
And i've hidden one of the <li> elements by hiding it's child elements
.Voice_avatar__htiqH[src^="https://cdn.discordapp.com/avatars/166718342466502656/"],
.Voice_avatar__htiqH[src^="https://cdn.discordapp.com/avatars/166718342466502656/"] ~ .Voice_user__8fGwX {
display: none;
}```
body { overflow:hidden; display:block; position:absolute; bottom:0; height:100%; width:100%;}
div>ul[class^="Voice_voiceStates"]{ display:flex!important; flex-direction:row; flex-wrap:nowrap; padding-right:95px!important; justify-content:space-evenly; align-items:flex-end; vertical-align:bottom; position:absolute; bottom:0; left:0; right:0; width:100%;}
li[class^="Voice_voiceState_"]{ display:block; z-index:99; order:99; position:relative; margin:0!important; width:200px;}
div[class^="Voice_user"]{ padding-top:0px!important;}
div>span[class^="Voice_name"]{ display:block; width:fit-content; }
li>img[class^="Voice_avatar"]{ position:absolute; padding:5px; bottom:50px; height:115px!important; width:115px!important; border-radius:50%!important; margin:31!important; border:none!important; transition: filter .1s linear; background-size:auto 100%; background-position:bottom center; background-repeat:no-repeat; filter: brightness(100%); text-align:center; border:none!important}
li>img[class*="Speaking"]{ border:5px solid rgba(0, 199, 33, 0.836)!important; padding:0px; animation-name: speak-now; animation-duration: 1s; animation-fill-mode:forwards; filter: brightness(100%); }
@keyframes speak-now { 0% { transform:translate(0px,0px); } 10% { transform:translate(0px,10px); } 30% { transform:translate(0px,-20px); } 60% { transform:translate(0px,0px); } }
li:has(img[src*="86586182175035392"]) { display:block!important; z-index:50!important; order:50!important; }
@keyframes Dav-speak { 0% { transform:translate(0px,0px); } 10% { transform:translate(0px,10px); } 20% { transform:translate(0px,0px); } 50% { transform:translate(0px,-60px); } 100% { transform:translate(0px,0px); } }
li>img[class^="Voice_avatar"][src*="86586182175035392"] { content:url(https://media.discordapp.net/attachments/896181322404474921/925558817817784341/Davwyn2_passive_200px.png); border:none!important; bottom:15px!important; border-radius:0!important; height:200px!important; width:200px!important;} /* Davwyn */
li>img[class*="Speaking"][src*="86586182175035392"] { content:url(https://media.discordapp.net/attachments/896181322404474921/925558824096661544/Davwyn2_talk_200px.png); border:none!important; bottom:15px!important; border-radius:0!important; height:200px!important; width:200px!important;}
This is the code with repeating elements ripped out
When I wrote my v2 I went under the assumption that the htiqH bit could change. Might not have, though.
Probably. Using a starts with selector is better
I just did it quickly to show it was still possible
Is there a reason you minify it, other than to torture yourself?
I know too much about CSS 😂
li[class^="Voice_voiceState_"]{ display:block; z-index:99; order:99; position:relative; margin:0!important; width:200px;}
This is the key thing you'd have to adjust
You're setting an explicit width on the <li> element
I did pull out the W3C manuals and figured out the :has statement with a lot of pain over the course of 3 days getting that has statement I shared earlier
Instead you should set it on the child elements
Humm, okay. Trying to figure out if I should pitch mine and follow Matt's example, or try to mend mine
first, throw yours into a CSS formatter like https://www.cleancss.com/css-beautify/ so that you can actually read it
then you can use mine as a reference point to get yours functional
Wow, that is a lot easier on the eyes
Looks like one of the things you're doing is making it so that you're always the first person
also I'm quite sure you can't use content: to change what file an <img> points to?
So rip out the width there, and give the width to the dev Voice_user?
Yeah :)
Yes in this example. The goal is for the streamer to always float right or left depending on their stage
There's probably some elaborate way we could pull that off without has() but you could also just, have a second browser source that hides anyone that isn't You
And hide You in the Other People source CSS
Goal is for Streamer and Users to be together, just the Streamer float left/right or up/down depending on direction
When Streamer does separate, the streamer does a display:none on their avatar, which currently left a big ugly gap.
My trick is rename myself in the server in question to #Matt so that I'm at the top, then just crop the source.
In my very old code I just used to display:none here:
.avatar.speaking[data-reactid*="86586182175035392"] { content:url(https://xxx/Davwyn2_talk_200px.png); border:none!important; bottom:15px!important; border-radius:0!important; height:200px!important; width:200px!important;}```
Yeah you're applying display: none to the avatar and hiding their icon, but you set width: 200px on the <li> element
so the <li> will still take up space, just the icon inside isn't visible
From earlier instructions, I moved the width: from li Voice_voiceState to div Voice_user I assume that's what you wanted me to do above
Could display: none the <li> or size the avatar element itself, and let <li> size be auto (Need to do the latter without access to has() )
As another CSS aside, using !important usually means you're doing something wrong
do I need to be explicit to auto it, or leave it blank to assume auto?
CSS is applied based on specificity, so the more specific a rule is, the higher it's priority
I had all those !important to keep forcing the avatar images I wanted
if I can discard the !important`s I shall
I remember the last time I worked on it, if I didn't have them in, it broke
I'm kind of amazed you can do content: '' on an img element and override it tbh
In my example I posted, I'm actually hiding the Video_user <img> element entirely
and creating a pseudo element on the Voice_user element which has the image
Yah, I noticed a lot of people were setting background-image instead of content: and was confused by that
So, the meat of my code that isn't redundant now is this...
body {
overflow:hidden;
display:block;
position:absolute;
bottom:0;
height:100%;
width:100%;
}
div>ul[class^="Voice_voiceStates"]{
display:flex!important;
flex-direction:row;
flex-wrap:nowrap;
padding-right:95px!important;
justify-content:space-evenly;
align-items:flex-end;
vertical-align:bottom;
position:absolute;
bottom:0;
left:0;
right:0;
width:100%;
}
li[class^="Voice_voiceState_"]{
display:block;
z-index:99;
order:99;
position:relative;
margin:0!important;
}
div[class^="Voice_user"]{
padding-top:0px!important;
width:200px;
}
div>span[class^="Voice_name"]{
display:block;
width:fit-content;
}
li>img[class^="Voice_avatar"]{
position:absolute;
padding:5px;
bottom:50px;
height:115px!important;
width:115px!important;
border-radius:50%!important;
margin:31!important;
border:none!important;
transition: filter .1s linear;
background-size:auto 100%;
background-position:bottom center;
background-repeat:no-repeat;
filter: brightness(100%);
text-align:center;
border:none!important
}
li>img[class*="Speaking"]{
border:5px solid rgba(0, 199, 33, 0.836)!important;
padding:0px;
animation-name: speak-now;
animation-duration: 1s;
animation-fill-mode:forwards;
filter: brightness(100%);
}
Yeah and you can hide someone with
li>img[src*="166718342466502656"],
li>img[src*="166718342466502656"] ~ div {
display: none;
}```
Got it, so we're hiding the IMG element, and because the li element above has no size any more, it zeros out right?
ah, right okay
Another thing is you're absolute positioning the avatars which I don't think is necessary
but that's nitpicking
if it's not needed that would be great. I have two versions of the script, vertical and horizontal
at the moment I'm testing the hiding avatar part and doing something wrong
oh, I found it, woops. Knocking a } out of position
Humm there's still a gap when I hide myself, so I did miss something
ah, hmm. You're doing space-evenly on the <ul> container
should be down on the li>img?
No it's correct
That empty space is just a side effect of this approach since the <li> isn't gone
so flexbox still gives it some of the space
I probably have redundant width/height values still?
I'm 2nd avatar in
so there's an obvious weird gap
No it's because space-evenly means to space things out evenly
I do wish I could still gravitate the streamer to far left or right with the old flex boxes
is there a better spaceing method so avatars evenly spread out?
They'd have to be side by side which likely isn't what you want
if you did justify-content: center for example on the <ul>
I do like the ability for avatars to crowd in/overlap if it gets too full
I am trying to do something clever, give me a minute
sure thing, again thanks
Humm position:absolute; seems required in my li>img section otherwise the avatars fall out of the bottom of the web page but I think all my other stuff is redundant for the sizes
That's cause the container is too small
If you add
li[class^="Voice_voiceState_"] {
height: 150px;
}```
ah ha, okay
that appears to also have made the username boxes way too tall, but that might be because I set a 100% somewhere I shouldn't have
giving voice_name a height fixed the box, but the box is at the top and the text at the bottom for some reason
body {
overflow:hidden;
display:block;
position:absolute;
bottom:0;
height:100%;
width:100%;
}
div>ul[class^="Voice_voiceStates"]{
display:flex!important;
flex-direction:row;
flex-wrap:nowrap;
padding-right:95px!important;
justify-content:space-evenly;
align-items:flex-end;
vertical-align:bottom;
position:absolute;
bottom:0;
left:0;
right:0;
width:100%;
}
li[class^="Voice_voiceState_"]{
display:flex;
flex-direction: column;
height: 150px;
justify-content: center;
align-items: center;
z-index:99;
order:99;
position:relative;
margin:0!important;
}
div[class^="Voice_user"]{
display: flex;
align-items: center;
justify-content: center;
padding-top:0px;
width: 200px;
}
div>span[class^="Voice_name"]{
display:block;
width:fit-content;
}
li>img[class^="Voice_avatar"]{
position:relative;
padding:5px;
height:115px!important;
width:115px!important;
border-radius:50%!important;
margin:31!important;
border:none!important;
transition: filter .1s linear;
background-size:auto 100%;
background-position:bottom center;
background-repeat:no-repeat;
filter: brightness(100%);
text-align:center;
border:none!important
}
li>img[class*="Speaking"]{
border:5px solid rgba(0, 199, 33, 0.836)!important;
padding:0px;
animation-name: speak-now;
animation-duration: 1s;
animation-fill-mode:forwards;
filter: brightness(100%);
}```
that's a modified version of yours from above with the absolute avatars fixed up
Mainly
li[class^="Voice_voiceState_"]{
display:flex;
flex-direction: column;
height: 150px;
justify-content: center;
align-items: center;
}```
And removal of position: absolute; and bottom: 50px from the avatar
The awkward gap I'm still thinking on
Humm the name tags also ran far off the screen too
Right. You want the crowding
Okay I take it all back you do need absolute on the avatars for that

Ah, it was the avatar's having sizes specified on them. When I deleted the width/height from here it fixed it
Oh, this new method won't allow the avatars to overlap if squished?
Correct
The idea is say there's only room for 4 avatars to neatly sit together, and then a 5th person joins. I want them to overlap/squish together
It's better for avatars to crowd than the 5th person falling off the edge of the world
Since the avatars will occupy space if not set to absolute, so the container will be sized to the largest width, which would likely be the avatar
Darn.. so my version was the best approach for that method?
I'm sure my code still has a ton of redundant size values everywhere
body {
overflow:hidden;
display:block;
position:absolute;
bottom:0;
height:100%;
width:100%;
}
div>ul[class^="Voice_voiceStates"]{
display:flex!important;
flex-direction:row;
flex-wrap:nowrap;
padding-right:95px!important;
justify-content:space-evenly;
align-items:flex-end;
vertical-align:bottom;
position:absolute;
bottom:0;
left:0;
right:0;
width:100%;
}
li[class^="Voice_voiceState_"]{
display:flex;
flex-direction: column;
height: 170px;
justify-content: flex-end;
align-items: center;
z-index:99;
order:99;
position:relative;
margin:0!important;
}
div[class^="Voice_user"]{
display: flex;
align-items: center;
justify-content: center;
padding-top:0px;
max-width: 200px;
}
div>span[class^="Voice_name"]{
display:block;
width:fit-content;
}
li>img[class^="Voice_avatar"]{
position:absolute;
bottom:50px;
padding:5px;
height:115px!important;
width:115px!important;
border-radius:50%!important;
margin:31!important;
border:none!important;
transition: filter .1s linear;
background-size:auto 100%;
background-position:bottom center;
background-repeat:no-repeat;
filter: brightness(100%);
text-align:center;
border:none!important
}
li>img[class*="Speaking"]{
border:5px solid rgba(0, 199, 33, 0.836)!important;
padding:0px;
animation-name: speak-now;
animation-duration: 1s;
animation-fill-mode:forwards;
filter: brightness(100%);
}```
This should work the way you want (minus awkward gap from hidden person)
Hey, that's looking better
Seems the avatars are shrunk down though. Not sure which object I need to make larger for the 200x200px images to fit
They're being set to 115px x 115px in your original css
Are you setting oversized images for their content? Can you post an example
yah, I figured out it was because I had each user avatar set to 200px by 200px
I remember some of this nonsense. It was because normal Discord avatars vs avatars we set appeared weirdly so we tried to adjust the avatar size for images we set via the CSS, vs users using default Discord avatars
li>img[class^="Voice_avatar"][src^="https://cdn.discordapp.com/avatars/86586182175035392"] {
content:url(https://media.discordapp.net/attachments/xxx/Davwyn2_passive_200px.png);
border:none!important;
bottom:3px;
border-radius:0!important;
}
/* Davwyn */
li>img[class*="Speaking"][src^="https://cdn.discordapp.com/avatars/86586182175035392"] {
content:url(https://media.discordapp.net/attachments/xxx/Davwyn2_talk_200px.png);
border:none!important;
bottom:3px;
border-radius:0!important;
}
Is the per specified user avatar thing
vs the original statement at the top:
li>img[class^="Voice_avatar"]{
position:absolute;
bottom:10px;
height:200px;
width:200px;
border-radius:50%!important;
margin:31!important;
border:none!important;
transition: filter .1s linear;
background-size:auto 100%;
background-position:bottom center;
background-repeat:no-repeat;
filter: brightness(100%);
text-align:center;
border:none!important
}```
yah, this makes sense. Originally I have the default Voice_avatar at 115px and then I override it up to 200px for avatars I set because Discord Avatars a weirdly oversized and the avatars we set have invisible margins around the images themselves. So that is expected behaviour
Humm.. yah so if I hide my avatar, it does still leave that super obvious gap which is annoying
Nonetheless we are leaps and bounds forward than me having to butcher the website with injected javascript
Shall we call it a night @ocean cliff ? Tis late where I am and I have to work tomorrow. But if you don't mind me picking your brain I'd love to know of a way to write that LUA to import a pre-defined CSS script I host on my server to our streamers.
If you have a Coffee Me thing or whatever I'd be happy to throw some cash your way for the trouble.
I have a couple of projects of my own if they are any use, like my BATCH script that makes that nice halo around the avatars automatically via ImageMagick and my prototype super Windows Deployment Toolkit image I built that is simply amazing
Yeah I'll keep pokin at this
My kofi and paypalme are all warchamp7 but by no means necessary :)
Thanks again so much. Also, I'll continue to home for that :has feature eventually so that reordering avatars can be done again. Sweet! I'll look tomorrow but for now I need to drop like a rock. Up well past 1.5 hours than I should have, but knew I couldn't sleep with it where it was
Not sure how often you need to reinstall/repair Windows 10/11 but beyond buying you a kofi I'll throw you a cool tool (or show you how to build your own if you want to punish yourself).
I basically invented Windows Installer, WindowsPE, WindowsRE, and D.A.R.T all in one package with PowerShell and all. But I can talk about that stuff outside of this channel
I might suck at coding, but I'm -really- good at reverse-engineering and reinventing tech tools and IT technican stuff.
yco2887 has been warned.
I was confused there for a sec. Any case, sleep well when you do Warchamp
kann wer deutsch bitte ich breuche hilfe
Welcome to the official OBS Community Discord server! Unfortunately, our support volunteers can only provide support in English. Most of our support documents and guides are also only in English. If you feel comfortable using a service like Google Translate, feel free to use that to send messages to us. We'll do our best to understand your intent, and we'll try to help you as much as we can.
Translate
Whenever I stream there is a margin at the top and bottom, can anyone help me?
If you need help or have questions about OBS, check out our #support-portal first!
found this plugin in a really old reddit thread, does it work still? i tried to add it and it didn't work
https://freevstplugins.net/blue-lab-audio-denoiser/
nvm i figured it out
Hi @ocean cliff my brain is kind of fried today but I am interested in looking at the CSS again later and also interested in looking at LUA for me to give streamers so they can automatically download and put in the CSS as I update the script. That way all streamers have up to date StreamBeans for user's characters
I messed around with it for a few more hours with no success, at least not when it comes to an arbitrary number of users
For the lua script I can't personally be of much help since I don't know lua 😅
But there is a countdown script included with OBS that could probably serve as a starting point for showing how to have a few configurable options (include the selection of which source the script should target)
Thanks for looking it over. I'll try reading up on the lua when I have the brain power
what exactly are you trying to do?
@fossil wyvern
Two things.
First one is CSS override for Discord Streamkit fighting to make it saw that avatars flex so they evenly spread out when there is space, but allow crowding eachother overlapping if there's more users than there is space.
Second one is writing an OBS Lua script that will automatically fetch a CSS script from a web server and insert it's contents into any web sources containing a specific key word if the content is newer/different so that the streamers using my big database of character overrides doesn't need to manually update the CSS every time.
They used to just use an @import in thier CSS override to pull my updates in, but Discord Streamkit blocks external CSS now
for number two, I would personally not recommend obs scripting for that kind of things, but I could likely make it for you if you want (in python though, idk lua, fuck lua).
For number one, idk much about streamkit but if I have some free time I'll have a look at it
I can't think of any other way to allow the streamers to get the character list. It keeps growing and is already 700 lines long all because Discord Streamkit blocks CSS @import to external domains
character list?
This element has been our troublemaker as we can't find a way to target it after Discord stripped IDs out of their HTML.
I found a way using a :has statement but OBS doesn't support it
Some over 60 custom talking avatars for users that enter voice chat
Gladly! I just got up preparing for work but I'll try to give you what we got so far that Warchamp7 and I have been looking at.
The goals are:
Finding a way to target the li class Voice_voiceState__OCoZh element above the targetable img tags so that we can define an order, z-position, and ability to entirely display:none specific users
If failing that, find a way so that when hiding an avatar there is no visible gap where they would have been, while still keeping the ability that avatars spread out if they have space, but will crowd together if it's packed with people
@fossil wyvern Here's the code so far with redundant repeats and the database stripped out except for one user (me). Note that there is commented code for testing hiding my specific avatar to test the gap problem.
Example of the 'gap' problem. First image myself and two other people in chat:
https://cdn.discordapp.com/attachments/374637102551400468/1158618114955694161/image.png?ex=651e3834&is=651ce6b4&hm=208b397c0e4e840b7ccfbb70c068e060e44f790001258bce8c0363445b66856f&
2nd example after I attempt to display:none my chatater the other avatars should occupy my space but..
https://cdn.discordapp.com/attachments/374637102551400468/1158618156743532574/image.png?ex=651e383e&is=651ce6be&hm=d7d43f626f6712c6bc88b4adfeec163b66c3ffad37cd5766c361799ade3b8da6&
The code
li:has(img[src*="86586182175035392"], [src*="123456789"], [src*="123456789"], [src*="123456789"]) {
display:block!important;
z-index:50!important;
order:50!important;
}```
was my attempt to achieve what we used to have, but :has isn't supported by OBS. The old code back when we had proper ID tags was a lot easier:
```CSS
li.voice-state[data-reactid*="86586182175035392"], [data-reactid*="123456789"], [data-reactid*="11223344556677"] { display:block!important; z-index:50!important; order:50!important; }```
Let me know if that made any sense. Going to rush to get my breakfast
👍 I'll have a detailed look at it
That would be awesome of you. I'll be able to reply occasionall thoughout the day at work, but will be back properly in about 10 hours
I'm having an issue getting own3d pro plugin in the tools menu. It was there before I had to do a reinstall.
@tall marten Looks like the Stream Kit has a new setting :)
Huh? What? I was on the website only a couple of days ago
Contact own3d about this since it is their plugin.
Oh, I see it. A 'show my avatar first' setting. Nice!
So just need to figure out how to auto-update the CSS in OBS from my website, and see if there is a way to properly hide specific avatars
Ok I'll do that. Just doesn't make sense since it worked before the reinstall
!plugins If you installed it in the proper directories (that you can find in the following factoid) then it is something on the plugin end.
OBS Studio supports a variety of plugins that provide new kinds of sources, filters, and additional features.
- For a list of plugins, see OBS Studio Resources: Plugins
- To learn how to install or remove plugins, see the Plugins Guide
- To see if the plugins you use are available for the latest version of OBS Studio, see the OBS Studio 28 Plugin Compatibility table
There should be a bunch more stable CSS classes now too that should help
I'll examine the website. I really, really hope they made it better and not worse
oh god i should check if this breaks anything i made lol
It broke name tags in my script @next moss but the rest seems to be intact. They changed the class names a little bit and the class names even state if an avatar is self_mute or self_deaf now which is interesting.
I still don't see a way to target a voice state two levels above an avatar though
can you paste what element you are trying to hit? I think most of them should be tagged now
li Voice_voiceState__OCoZh voice_state
specifically the one above specific img class images
is that not enough to give it css?
if I try
li>img[class^="Voice_avatar"][src^="https://cdn.discordapp.com/avatars/86586182175035392"],
li>img[class^="Voice_avatar"][src^="https://cdn.discordapp.com/avatars/86586182175035392"] ~ div {
display: none;
}
It doesn't seem to be targging Voice_voiceState only Voice_avatar?
I guess the next questions is what would get around the image selector hack
what if the li element had a data- attribute with the user id on it
It used to a few versions ago
we used to target li.voice-state[data-reactid*="86586182175035392"] but Discord ripped that away making it way harder than it needs to be
I'm guessing
ul>li>img[class^="Voice_avatar"][src^="https://cdn.discordapp.com/avatars/86586182175035392"],
ul>li>img[class^="Voice_avatar"][src^="https://cdn.discordapp.com/avatars/86586182175035392"] ~ div {
display: none;
}```
is invalid, you can't look two layers up?
@ocean cliff and @fossil wyvern I'm around if you are available
yee am looking at it, but tbh, for the CSS this is slightly above my knowledge.
The help I was proposing was more on the "delivering it to people through script" which I'm still willing to write for you if you give me specifics
I tried to read up on how OBS Lua works as I'm more familiar with Lua than Python, but found very little in the way of video tutorials during lunch.
The task I'm hoping is dead simple. A script that simply searches for all instances of a Browser Source with 'StreamBeans_H' or 'StreamBeans_V' as part of it's name.
If it finds a browser source with that name, download a CSS file from a specified website, one for H and one for V respectively and replace the CSS overrides field with the content of that CSS file
that's fairly straightforward, woudl you happen to have an example URL just for testing?
oh, yeah, one question, do you want the download and replace to happen just once on OBS startup, or does it need to be regularly updated during the session to check if the file has been changed?
Good question, Startup generally should be enough, but it would be nice if there was a way to trigger a refresh on demand
Try pulling:
https://cdn.discordapp.com/attachments/1086511460403908729/1157869743819214938/StreamBeansCore_H.css for now
for sure. what I can do is also catch sources on create, so that if you create a source with a matching name, it'll autofill the CSS the moment it gets created if that's something wishable
thanks (just as a fyi, it seems that permanent file hosting on discord will get phased out soonish)
Huzzah there’s a data attribute now
huh? where?
It will, which is why I need to do a lot of re-writes
yeah same lmao all my chat widget CSS has to get their assets re-hosted
You can't look "up" the DOM tree
Darn, that was my concern
.has() is the only reason we're able to in a technically weird way
So the li>img is a look-down thing
It's generally not supposed to be something you do
Yes the > selector means direct descendant
yah, which sucks
It's technically not needed here at all
DDRBoxman said there are IDs now but I don't see them myself, am I missing something? I'm using Brave Developer tools but I see no ID tags
huh?
our current method is
li>img[class^="Voice_avatar"][src^="https://cdn.discordapp.com/avatars/86586182175035392"],
li>img[class^="Voice_avatar"][src^="https://cdn.discordapp.com/avatars/86586182175035392"] ~ div {
display: none !important;
}```
But although it hides the IMG and DIV it can't hide the all important li Voice_State
I'm seeing data attributes on the containers now
OMG they are there!
Yes that can be written as
li img[class^="Voice_avatar"][src^="https://cdn.discordapp.com/avatars/86586182175035392"],
li img[class^="Voice_avatar"][src^="https://cdn.discordapp.com/avatars/86586182175035392"] ~ div {
display: none !important;
}```
and still work fine is my point
> is only needed when you explicitly want a selector that is directly inside the previous one
No, it doesn't:
yah, but if we have IDs back, I can do that now!
yeah
goodday can anyone help me? i subscribe to own3d pro and download the plugins. when i open OBS STUDIO and go to TOOLS. i cant see OWN3D PRO
You don't have their plugin installed
This channel is mainly for plugin development. You should reach out to Own3d for support with their plugin
@ocean cliff hopefully a simple question. Is there a way to give a height statement where it is 20px less than 100% height?
100% - 20px, no?
Also, that Ko-Fi didn't show anything for 'warchamp7' I'd either like to buy you a coffee for your trouble or do something nice in return. There's taking you through my Windows 10/11 Debloat tool I offer for free that's in a working beta I can guide you through, or my unique Windows Kit I made
might be mistaking shit for tex but as long as I remember that shit works for css
I'll try Penwyvern, I didn't think it would be that easy?
nope, browser doesn't like that
sweet!
I think I got it. Besides minor bugs, now that IDs are back I was able to make my StreamBeans script fully functional again!
Horizontal Mode
Vertical Mode
Same offer to you by the way @fossil wyvern dunno what would be more worthwhile to you but want to give my thanks as I've been keeping this StreamBean thing alive now for 3 to 4 years and thought the last change was going to be curtins.
Having a means to auto-update all our streamers will be awesome
offer?
Buy you a coffee, show you how to use my Windows 10/11 Debloat Script, or if you want a copy of my ultimate Windows 10 or 11 Boot Disk
I'm not great with web dev or general dev stuff, but I'm an apt technician and PowerShell scripter rookie
Should be https://ko-fi.com/warchamp7 , or https://paypal.me/warchamp7 if you want
By no means necessary though
☕ Enjoy, and thanks!
Good on you. I 'nix for everything I can, but need PC for my gaming still
Gaming on Linux is getting better, but my last attempt at PoP was aweful. Next time I'll try going straight to Arch as I hear that is now the best gaming Distro?
@tall marten Here you go :
A few notes :
- Sources get their CSS changed :
- On OBS load or scene collection change
- When created if their name on creation matches the pattern (I could also do on source rename if you want to but that didn't felt very necessary)
- When clicking the button
- CSS gets pulled from the site :
- On OBS load or scene collection change
- When clicking the button
- Lines 17-20 allow you to change which URL and source name will be used by default when an user loads the script for the first time. Those values can then be manually changed in the script's UI by the User.
- When first loading it, it might pop a terminal window for a few seconds, that's normal and nothing to worry about, the script just needs to install a specific python package to work (requests)
- I'm pasting below my usual writeup on how to install python and link it in OBS on windows, could be useful if you intend to distribute it to users of varied technological knowledge.
- Download the python installer from https://www.python.org/downloads/release/python-31011/ (at the bottom of the page, windows 10 installer 64 bit)
- Run it, default install, note the folder to which it says it is installing (should be smth like `C:/users/<username>/Local Settings/Application Data/Programs/Python/Python310`)
- In OBS, go to Tools > Scripts, go to the "python settings" tab and select the folder to which it got installed. If you did it right, a message should pop below telling you python 3.10 is loaded
- Download the file attached below, then in the "scripts" tab of the script window in OBS, click on the `+` button then select the file you downloaded
- If shit don't work or you want changes be made to it, don't hesitate to ping me
(since you said you'd distribute it, I put a GPL2 licence header on it, on principle, if that's not ok with your usage, or if you'd prefer another licence, don't hesitate to tell me, I don't really care much about it, it's just on principle)
@fossil wyvern My idea for the script was having a dropdown for selecting which source to update
Like how the Countdown script lets you pick a text source to update
well, what they asked was for it to apply to all sources that have a given pattern as part of their name
presumably so you could have different sources with the same CSS applied?
I guess if they have that many, but I'm not sure why :o
I defer to dav though, it's their usage
Wow! Thanks @fossil wyvern
Yah, dropdowns are cool @ocean cliff but us streamers tend to have several copies of the browser source for different scenes. I got 6 of them
Sorry for the slow reply, I was doing tech support for a friend over the phone
V and H on main stage, V and H on intermission with different layout settings, and V and H for pre/post stream (those are identical)
different virtual Height and Width dimensions, plus actual resizing on the stage
I have a keypress I push that uses H mode when I'm doing something widescreen like a video game, but when doing something non-wide screen, my stage automatically uses the mover filter plugin to switch to the V mode
Wow, this Python script is pretty my greek to me. I'll probably be able to figure out how some of it works after a while but I need to sleep badly.
Thanks again @fossil wyvern so much. I'll crash to sleep now, but will try it out tomorrow or the day after when I have some time to poke around with it. I'm amped that I have automation for updates again, the FABS streamers will be very happy
👍 once again don't hesitate to ping if you have questions or requests
(and that includes if you want me to explain how and why some of it work, obspython is a bit weird in the ways it does things sometimes)
is there a way to add buttons to my controls bar at the bottom of my main screen?
or adding something to the top bar next to tools?
i want to have a toggle or 2 quick click buttons
afaik, can't change the controls dock without modifying obs itself.
What a plugin could do however is create a new dock with what you want in it
do you have any guides/examples for implementing something like that? preferably python 😅
!contrib
you will not be able to do it in python, it'll have to be in C/C++
To get started with OBS development, read this guide.
that works too! thanks
Is there a way to use the replay source plugin to show a mini replay in my game scene and then hide the mini replay after it’s over? I was doing this with obs’s replay.lua, but I’m using the replay source plugin now and wondering if there’s an easy way to do it
not sure about using that plugin alone, but something like the advanced scene switcher plugin can handle that part of it.
I was doing it before using multiactions on the stream deck, so that would probably work as well
I was mostly wondering if there was something built in to the plugin. Looks like it has features for switching scenes, but not hiding/showing sources
It does. Don't let the name fool you
Oh?
Yup! I can share a macro I made in a screenshot if you like
I mean the replay source plugin
I was saying the scene switcher plugin. Oops, were you talking only about the replay one?
Sorry that was confusing. I meant the replay plugin has features for auto changing scenes, but not hiding or showing sources
Ah, I see
But I appreciate your willingness to help 🙂
Need moar coffee haha
well, i ended up deleting the app and going back to the built-in replay.lua -- i was getting some serious missed frames from the replay source plugin
the mini replay was very choppy
Wow @fossil wyvern your script seems to be working perfectly! I gave it a test run and worked flawlessly first try. A thought occured to me, but I'm not sure how much difficulty it would add to the python. Would there be a way for the script to still do what it does, but it leaves a reserved section at the top of the CSS alone to allow customizations?
Basically if it doesn't see the header section it generates it, if it sees a header section it copies it. Clears the CSS, puts back the copied header, then adds the CSS it downloads below?
Eg.
***********************************
/* Enter your customizations here */
Div.StuffGoesHere:100px;
************************************
again, if there's a way I can pay you back for your time, I will
sure, what's the exact pattern you want it to have?
The thought occured to me the auto-update will nuke the CSS, so if streamers want to add customizations like moving select beans in priority order they can't.
Whichever pattern you think works. Any kind of ******* ---------- //////// whatever sort of clearly marked Start/ Stuff / End box you like. I'm not sure what characters are troublesome to code in Python
If the template is cast in a big old multi-line string box I can edit that can work great
easiest would be to have basically two lines of comments and have the users insert what they want inbetween the two. something like
/* Insert customisation below */
/* Everything below this will get overridden*/
Or whatever other formulation you'd find better
as long as there can be a reasonable expectation that those lines won't appear more than once it's easily doable
Honestly, that works perfectly
One sec
/* ------------------------------------------------------------------------- */
/* --Add any Customizations and Overrides below this line-- */
/* --End of Customization Section-- */
/* Anything below this line will get be replaced next update! */
/* ------------------------------------------------------------------------- */
How about that?
👍 sure, will do in a bit
No rush at all Penwyvern. I really appreciate the efforts
I'll end up adding things to the template customization section anyways like sample code for hiding beans, code for prioritizing beans, etc.
Hey guys, me again, warmuptill put up an advss beta/fork/whatever and I cant figure out how to download it... and I can ask him because I got banned on the forum, for being myself
cant ask
Sorry, was watching Loki (and a few other shows) yeah sorry, should have been more specific, the link he gave me was https://github.com/WarmUpTill/SceneSwitcher/actions/runs/6391191383?pr=887 its different from that one above, I just dont know how to get the binary
oh nevermind, I dont know why i didnt see the installer before
hey guys.... im new here so sorry if this is a dumb question. i just started working on a plugin that would analyze the video feed to see when a certain image appears on screen. has anybody made something like this before i could look at? i cloned the plugin template but im getting some weird build errors:
-- Setting up Pre-Built obs-deps (universal)
-- Setting up Pre-Built obs-deps (universal) - skipped
-- Setting up Pre-Built Qt6 (universal)
-- Setting up Pre-Built Qt6 (universal) - skipped
-- Setting up OBS sources (universal)
-- Setting up OBS sources (universal) - done
-- Configure OBS sources (universal)
_ _ _ _
___ | |__ ___ ___| |_ _ _ __| (_) ___
/ _ \| '_ \/ __|_____/ __| __| | | |/ _` | |/ _ \
| (_) | |_) \__ \_____\__ \ |_| |_| | (_| | | (_) |
\___/|_.__/|___/ |___/\__|\__,_|\__,_|_|\___/
OBS: Application Version: 29.1.2 - Build Number: 2
==================================================================================
------------------------ Enabled Features ------------------------
- OpenGL renderer
------------------------ Disabled Features ------------------------
- Plugin Support
- User Interface
----------------------------------------------------------------------------------
-- Configure OBS sources (universal) - done
-- Build OBS sources (universal)
** BUILD FAILED **
The following build commands failed:
CompileC /Users/tom/Development/projects/autovod-plugin/.deps/obs-studio-29.1.2/build_universal/build/libobs.build/Debug/Objects-normal/x86_64/coreaudio-enum-devices.o /Users/tom/Development/projects/autovod-plugin/.deps/obs-studio-29.1.2/libobs/audio-monitoring/osx/coreaudio-enum-devices.c normal x86_64 c com.apple.compilers.llvm.clang.1_0.compiler (in target 'libobs' from project 'obs-studio')
(1 failure)
CMake Error at cmake/common/buildspec_common.cmake:89 (execute_process):
execute_process failed command indexes:
1: "Child return code: 65"
Call Stack (most recent call first):
cmake/common/buildspec_common.cmake:214 (_setup_obs_studio)
cmake/macos/buildspec.cmake:23 (_check_dependencies)
cmake/macos/buildspec.cmake:34 (_check_dependencies_macos)
cmake/macos/defaults.cmake:23 (include)
CMakeLists.txt:11 (include)
-- Configuring incomplete, errors occurred!
it seems a bit strange that 'plugin support' is disabled by default in the plugin template
I only have experience of building on windows but yes front end api is disabled by defualt, look in CMakePresets.json for darwin settings
i figured it out. looks like its just a bug in the main obs-project
i filed a bug here: https://github.com/obsproject/obs-studio/issues/9671
oh, you are trying to build obs, I thought you wanted to make a plugin.
the plugin template builds obs as a dependency, it seems
or at least downloads the headers
ah ok. so i guess technically the bug is in the headers in the main project but that screws up the build of the plugin template
but it was in a c file?
im not sure now
the bug was definitely in the .deps folder in obs-studio-29.1.2
i just got the make to work and it definitely didnt build the whole project. but it did seem to build that c file as part of CMake (not make)
are you running .github/scripts/build-macos ?
i hadnt noticed that. i just ran mkdir build; cd build; cmake ..;
try .github/scripts/build-macos it should take care of everything
i dont really know what im doing 😛
when you only run cmake it will run with no arguments on CMakeLists.txt but when you rin .github/scripts/build-macos it will eventually call https://github.com/obsproject/obs-plugintemplate/blob/master/.github/scripts/.build.zsh which passed everything correctly
that works too, but it definitely did extra stuff
yeah. thanks for pointing that out
but you will have to change some values in https://github.com/obsproject/obs-plugintemplate/blob/master/CMakePresets.json if you need Qt and frontend API later in development
shouldnt need any of that.... my plugin should be pretty simple
im really just looking to take screenshots every few seconds and then see if something is on the screen
ok, i have a hellow world..... now i just gotta figure out how to load the plpugin 😛
should be easy, running the .github/scripts/build-macos command will generate release folder and in it you will have the file
for windows it generates .dll but for mac i believe it will be .o file
In theory you shouldn’t need any of the build scripts, they are made for CI.
Running "cmake --preset macos" should do the trick
think i see it.... ill try ti in a sec. someone responded to the bug report i filed
(Selecting a preset here is important)
didn't know that
what do you guys usually use to just build again (not cmake)?
is there another script for that or just make
(thank yall for the help getting started btw. i really appreciate it)
"cmake --build <build_directory>" will invoke whichever generator you chose before
The script defaults either to ninja or Xcode, unsure
gotcha. tyvm
Hi Guys ATM i am using only "Source record" pluugin.
Right now my whole OBS stopped working.
Does anyone know how to get it to default settings on MAcbook?
Do you know some alternative for Source Record?
its 5:20AM now and i should probably go to sleep, but i would be very grateful if someone could help me with these 2:
-
Right now I can't
#include <util/platform.h>(or anything inlibobs/util). This is very strange because i CAN includeobs-module.hwhich is in the samelibosfolder. Does anyone know why this might be happening? -
I have the following code:
static void video_data_callback(struct obs_source_frame2 *frame)
{
obs_log(LOG_INFO, "Frame width: %d, height: %d", frame->width,
frame->height);
}
static void tick_callback(void *param, float seconds)
{
(void)param;
(void)seconds;
uint64_t current_time = get_time_in_ns();
if (current_time - last_callback_time > 3 * 1000000000ULL) {
last_callback_time = current_time;
obs_source_t *source = obs_get_source_by_name(source_name);
if (source) {
struct obs_source_frame2 frame = {0};
obs_source_output_video2(source, &frame);
video_data_callback(&frame);
obs_source_release(source);
}
}
}
This all seems to work until it comes time to get the frame. For some reason the frame seems to be completely zero'd out. Am I doing something wrong?
I also tried obs_source_output_video() and that doesn't work either
obs_source_output_video and version 2 are both used to pass raw video data for async video sources to OBS, not to get the video data from a source
how to do the rizz smthng?
Try our background removal plugin https://obsproject.com/forum/resources/background-removal-virtual-green-screen-low-light-enhance.1260/ - if you have any issues please reach out!
Platform headers will be included in OBS v30 deps
But the way we deal with it right now is a patch to include them in the cmake build https://github.com/obs-ai/obs-urlsource/blob/master/patch_libobs.diff
are those header exports all fixed on the main repo? if not pls open a PR to add them to libobs' CMakeLists.txt
would really like to have that solved for v30
almost 😅 .o are object files generated from source code by the compiler, .so are shared object files used on Unix based on the ELF binary format, macOS uses .dylib and those files are MACH-O binaries, but because you also ship support files and language files with a plugin, we actually use a .plugin plugin bundle (which is a macOS-specific thing)
multi-platform development, yay 🥳
Hello guys, i'm new to plugin dev and i want to make a plugin that basically auto generate scenes and sources.
Actually im trying to delete all the current scenes.
I'm learning the API trying to find a way to get all the scene and delete them. I found the function obs_enum_scenes(), but, i dont understand why this function callback would return an obs_source_t instead of a a obs_scene_t directly.
Same thing for the function obs_frontend_get_scenes(), why does it return a source list and not just a scene list. I feel like there is something i dont understand.
So if someone could give me some hints on how to delete all the actual scenes, maybe im not searching the right way.
Thanks
I share your sentiments with that returning obs_source_t rather than a scene, but it's too late to make changes now even if i personally complain about it.
If you want to remove the scene, I believe https://docs.obsproject.com/reference-sources#c.obs_source_remove will suffice. You won't need to convert it to a scene.
But if you want to get it as a scene object, you can use https://docs.obsproject.com/reference-scenes#c.obs_scene_from_source essentially to convert it.
awesome. that was exactly what i needed. tyvm
ah ok. what then would be the best way to get a frame of video data from a given source? my goal is basically to take a screen capture every few seconds and then do some processing to see if a certain image is on the screen
after all the build discussion, has someone already told you that the advanced scene switcher plugin has that functionality already? 🙂
based on opencv with some fuzzy matching, because usually it's not sufficient to do a 1:1 comparison, e.g. when you compare an original RGB data based image to the same image in the feed it might have been altered a bit by color format or color range conversion, partially blending into the background or other sources, encoding...
depending on where in the chain you grab it
can also do text or motion detection
and then based on that trigger all sorts of actions, so I am not sure whether your use case would really need a new plugin being written
but if it does (or you still wanna do it for fun and sciene), then looking at the source of this plugin should probably help you
Not sure what the best way would be, you can check how the advanced scene switcher plugin does it
oh wow.... how did this not come up in the googling.....
thats super close to what i want
Thanks for your answer. It's not really a complain, but more like a questioning. Im digging into the OBS api for the first time, and this function signature was quite confusing. For me a source isn't a scene but scenes contain sources. For the obs_source_remove, I tried it but it crashed OBS and I couldn't restart it after with an access violation error. Ill try it again tomorrow.
Hello everyone. I'm trying to figure out if it's possible to use a transitional effect on a source, like my vtuber model? I'm trying to get a sort of "teleport" effect like an electric wipe. I know there's hide and show transitions, but I'm trying to set a custom animation if possible.
What format are you expecting the custom animation to be?
You can use any kind of transition on the show/hide
There's also the move-transition plugin
but if you want the teleport effect you probably can use a stinger
That's the thing, I want to use a stinger for the scene transition, but I want a separate stinger just for my vtuber model. Like I hit the scene transition button, my character teleports out of the scene, the scene transitions, and then he teleports into the new scene.
can probably rig something up with advanced scene switcher that does that
I will look at that, thank you
