#plugins-and-tools
1 messages · Page 40 of 1
no, i have two monitors so i started the stream and then start the game as normal and play until the end
somethimes can go to warning or critical as it shows orange or red
the lag/overload is from the game capture source hooking into the game. It will have a brief hiccup
right so its something that u cant avoid?
not really, and its not much of a lag anyway.
The meter that was going into the orange and red is more specifically to do with your network connection to the ingest servers
alright and my last question will be, if i get another pc to stream on like a gtx 1080 with i5 9600k and a good capture card it will be the same?
you probably wont get the very brief and benign encoder overload, since you wont be hooking into a game process with a game capture source, instead you would be using a Video Capture Device source
thank you very much for your time bud 
welcome.
I've been playing around with an alternative to the vlc video source using mpv as a backend, only works on linux for now though
That's good to see. If it's the entire mpv player, that can help troubleshooting videos all without leaving obs-studio and having to install mpv standalone.
it basically is, but for some reason clicking on the ui elements doesn't work. Only moving the mouse to show the UI works and I don't know why
maybe related to DPI scaling
I don't think so, when I move the mouse over the seek bar the time code shows up at the mouse position just fine, but clicking does not make it seek to the selected position, which is really weird
well i am still confused on which one to use the one on the top Hardware (NVENC, HEVC) or the bottom one NVIDIA NVENC HEVC ? . Or should i not use source record as it seems to crash obs instances.
If the keyboard works and the mpv console can be used, that's good enough. VLC source doesn't expose any of VLC's GUI at all.
source record has caused problems for me in the past like it will only record parts of the footage and only black screen after that with no audio so stopped using it for a while. Now i wanted to use it again might switch back obs default recording if source record is causing problems or not working correctly.
If i can instruct people how to vf add mpdecimate and stats.lua works, that alone would be most useful for troubleshooting.
Log contains debug or verbose error messages (browser/ftl/directshow/etc), for a filtered version click here
- 41.1% Rendering Lag
- Not Admin
- Mismatched Sample Rates
- Capture Interference
- Windows 10 22H2 (OK)
- Dynamic Bitrate
- Third-Party Plugins (3)
AMD Ryzen 7 3700X - OK! / GeForce RTX 2060 - OK!
Hi everyone! I have a question, so I manage a streamers obs and everything else, i was wondering, is there a plugin out there so I can control his obs? Like changing scenes or moving stuff here and there without the need of a third party software like TeamViewer or any desk?
He’s pretty slow with the pc and sometimes I just want to help him out really quick, the main issue is that any desk or teamviewer makes his computer slow while I’m there and of course takes the focus out of the game or whatever he’s doing atm
@oak root There are multiple applications that use websockets, each with their own uses and limitations. There's nothing that fully replicates the UI, but there are some "remote control"-type interfaces. Try one of these:
https://obsproject.com/forum/resources/nuttys-official-obs-commander-noobs-cmdr.1178/
https://obsproject.com/forum/resources/command-line-tool-for-obs-websocket-plugin-windows.615/
Ok, so basically this tools let me do some presets and the I can trigger them from home with my stream deck into his OBS or something along those lines?
@oak root Depends on what you consider a "preset", but yes, you can trigger anything that can be bound to a hotkey (without counting as a physical hotkey press), change filter states, move sources, and some other things. But no preview.
I’ll give it a try then, thanks for the quick answer
Log contains debug or verbose error messages (browser/ftl/directshow/etc), for a filtered version click here
- Max Audio Buffering
- Mismatched Sample Rates
- Capture Interference
- Windows 10 22H2 (OK)
- Dynamic Bitrate
- Third-Party Plugins (3)
AMD Ryzen 7 3700X - OK! / GeForce RTX 2060 - OK!
try one of them, if it crashes your obs, use the other
hi all, i just got an rtx 3070 ti card, does anyone know of a good youtube guide to using the nvidia ar move filter that is a part of exeldro's move plugin, to make snapchat style face masks etc? i found a video from andilippi that gives an overview of all the controls but i wondered if anyone knew of a step-by-step guide to using it to create a snapchat-like filter? thanks
Have a source with center positional alignment. Use nose position to position that source. Use length between corners of the eyes to scale the source. Use the rotation between the corners of the eyes to rotate the source.
thanks, will give it a go, i guess it is a lot of trial and error. is it possible to combine with other move source filters that you can trigger externally with something like streamerbot? the end goal is i want to make a cowboy hat drop down from above and land on my head, and then it will be fixed on my head
Have a scene that is attached to the face and do the moving down in that scene
thanks @weak escarp will see how i get on
I only know about a few plugins - state your issue and if anyone can assist they will respond. I personally use a greenscreen
thanks
but not only this all plugins don't show up
Did you use the installer from here?
yes
Have you restarted OBS?
yeah i have tried all that but i don't know the issue
!cleanlog Let's see if it installed
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
dumb question, but is there a way to install multiple instances of a plugin?
no
How do i figure out what version of my websocket i have? Streamerbot wont connect to OBS
If you didn't install a plugin, you most likely have v5, as that's what ships with OBS now.
I thought so, but 4.9 and 5.x arent working and connecting
can you show a screenshot of your streamerbot websocket connection config?
if you left everything set to default in the OBS websocket config it should be looking like in their example screenshot, but you need to make sure you enter the correct password
also you could upload a log for us to help investigating what the problem might be as described by the bot here. instead of starting and stopping the recording in steps 2 and 3 just try to connect streamerbot so that you generate an error message
and while troubleshooting disable any firewall temporarily - if that already helps and makes the connection work then you know what to look at, otherwise it's just one thing to have out of the way while trying to find the issue
I am using obs-plugintemplate and looking into the ability to set package:true for tagged RC-type of builds not on the master branch.
I have noticed in non-master branch Actions such as PatTheMav's https://github.com/obsproject/obs-plugintemplate/actions/runs/6657042057/job/18090925431 that the Check Event Data step says:
could not determine current branch: failed to run git: not on any branch
I also see this on my plugin's (obs-ndi) develop branch.
https://github.com/obs-ndi/obs-ndi/actions/runs/6739958301/job/18322315459
Is this message just warning and normal/acceptable, or the indicator of a problem in the configuration or script?
I noticed the .github\workflows\build-project.yaml file has a "Seeking Testers" label that can publish the plugin.
What is the recommended practice(s) of using some of these package:true overloads?
Is the below code saying that if I create a pull request with the label "Seeking Testers" then it will codesign and package the plugin?
case "${GITHUB_EVENT_NAME}" in
pull_request)
config_data=('codesign:false' 'notarize:false' 'package:false' 'config:RelWithDebInfo')
if gh pr view --json labels \
| jq -e -r '.labels[] | select(.name == "Seeking Testers")' > /dev/null; then
config_data[0]='codesign:true'
config_data[2]='package:true'
fi
;;
push)
config_data=('codesign:true' 'notarize:false' 'package:true' 'config:RelWithDebInfo')
if [[ ${GITHUB_REF_NAME} =~ [0-9]+.[0-9]+.[0-9]+(-(rc|beta).+)? ]]; then
config_data[1]='notarize:true'
config_data[3]='config:Release'
fi
;;
workflow_dispatch)
config_data=('codesign:true' 'notarize:false' 'package:false' 'config:RelWithDebInfo')
;;
schedule)
config_data=('codesign:true' 'notarize:false' 'package:true' 'config:RelWithDebInfo')
;;
*) ;;
esac
I tried just now, but still run into the could not determine current branch: failed to run git: not on any branch problem when on a non-master branch.
Ah! I think the gh command is what is outputting that could not determine current branch: failed to run git: not on any branch error!
https://github.com/cli/cli/blob/ecdb557156a32ac77b443273769bb3f3c1bc7352/pkg/cmd/ruleset/check/check.go#L129
return fmt.Errorf("could not determine current branch: %w", err)
I wonder why that Action step says it isn't on a branch.
There looks like a newer version of cli/gh that could have fixed this problem:
https://github.com/cli/cli/pull/7082
Anyone know of any plugins that would be a good replacement for the experimental captioning built in that would work for twitch?
Thank you
I also saw this recently: https://github.com/occ-ai/obs-localvocal
don't ask for someone. ask your actual question and people who know will answer
i have a question
can someone help me with the record like its always record all the screem for me and i want to record a singale screem.
If you need help or have questions about OBS, check out our #support-portal first!
what is the problem you're facing?
if you think you have a bug you can always submit a support request https://github.com/occ-ai/obs-backgroundremoval/issues
Hi, since Xaymar went full paywall, is there any plugins to use ffmpeg/AV1 etc. in the new OBS Studio?
the settings in OBS without plugin are so few.. like hmmmm im still having my old OBS with streamFX..
neat
Newp! 😦 The version of gh in the GitHub Action Ubuntu image is very recent.
I added the following to obs-ndi's .github\workflows\build-project.yaml
gh --version
The result...
gh version 2.37.0 (2023-10-17)
https://github.com/cli/cli/releases/tag/v2.37.0
could not determine current branch: failed to run git: not on any branch
Still, could be another bug in the gh cli.
Any ideas @rancid fossil ? (See my fairly short thread in the reply above)
you probably have to explicitly add the tag as a reference
I remember we had to do that on the main repo because gh cannot handle prereleases
k
Would your current guess then be that the Seeking Testers feature is indeed probably broken for Pull Requests?
can't say, haven't looked into it - I haven't had time to backport the fixes we did on obs-studio back to the template yet
Noticed that, and still grateful for all of the updates that you have made to both repos
there will be backports once I can make some time 😅
I may PR a template update to the .github/workflows/build-project.yaml
@rancid fossil I just applied this one line fix (line in the link) you did for obs-studio back on 09/05 to the plugintemplate and it properly packaged a exe when building a PR with the label Seeking Testers:
https://github.com/obsproject/obs-studio/commit/a2c0d4969aa35067455814d20cc87f9f9486c370#diff-58a222b2569531e3ee88d373cb6b2a3b0e4d1b24ebd09ba9d03e12b6f110bb03R32
You want me to create a PR, or simpler for you to eventually just fix it?
I myself am not blocked and will just use my repo's fix.
feel free to open a PR
this may sound odd or confusing... but i have a tool that is provided as a webpage, but the problem is that in order for it to work on mobile you have to control it with touch actions and those same actions control the browser like pulling down the URL in mobile chrome or scrolling the page...
if i give the controls touch-action: none in CSS then they work without the browser interfering, but in the case that a control somehow takes up the whole viewport you seem to lose control of the browser...
anyone happen to have any insight on how to handle this? x.x
We would need specific information about the software u are using
its just plain html/JS and mobile browsers
basically theres a canvas element that you interact with by dragging and if i set touch-action: none for the element it prevents the dragging from scrolling the browser / pulling down the URL bar, but if you pinch zoom such that that element takes the whole viewport then you suddenly cant do anything besides interact with it because the browser is ignoring everywhere you can touch
- Max Audio Buffering
- Hardware-accelerated GPU Scheduler
- Capture Interference
- Multiple Game Capture
- Windows 11 22H2 (OK)
- No Output Session
Intel Core i5-9400 @ 2.90GHz - OK! / GeForce GTX 1650 - OK!
- Max Audio Buffering
- Hardware-accelerated GPU Scheduler
- Capture Interference
- Multiple Game Capture
- Killer NIC
- Windows 11 22H2 (OK)
- 1.9% Rendering Lag
- 2.0% GPU Encoder Overload
- Dynamic Bitrate
Intel Core i5-9400 @ 2.90GHz - OK! / GeForce GTX 1650 - OK!
@warm olive i'd like to try that test build if you are still offering
I am not using the audio capture yet but was planning on using it later, so I don't know yet whether I am affected by the problem, but I have 4 systems to test with (1 laptop with win11 and 1 laptop and 2 desktops with win10) - so I can also run the test builds there if it helps - how do we normally go about reproducing it, just capture any app for 30-60 minutes or is it specific ones? I think I read that it happens with discord and spotify
also 1 laptop and 1 desktop have amd and intel each, so there's a good mixture for comparison
and then run with --verbose and collect logs, or what would you need?
@warm olive same would love to try the build out. Having problems with audio capture on obs 28/29/30. 
reproduction steps are "wait and hope". It's not 100%, some people never experience it.
capturing any audio for random X amount of time. I play spotify or youtube and after 1-2 hours the audio becomes full static for viewers of the stream
not totally sure, but I believe so
oh, that long? I thought it would always happen between 30-60 minutes for most, for some even faster
I guess if you want to run something afk, you could get a looping music, let it run, then check the recording in audacity and look for a part where the audio waveform becomes weird
@plain warren @frigid sail just fyi pkv and Mitchell are offline at the moment, but they'll respond once they're back
yeah that was my plan, got audacity installed everywhere anyway
It’s completely random but usually after an hour to 2 with continuous audio playback
Ah nice
For good measure I'd say initially try with 2 obs instance, one is the release, one is the test build
all good no rush
So you'd know the issue already occurred
on it 😛
now what's missing is the new special test build
Eyyy, I should remember that everyone is smarter than me hahaha
dunno, have a bit of QA experience
Ah, makes sense
usually also run stuff like process monitor on it - but here this is going to be hard, as it produces a lot of data and then I'd have to find the exact timestamp where the distortion occured
Also, one issue with it is desync, so would be helpful to have video that is supposed to be synced with audio
Probably just include the process monitor in the recording lol
Streaming to an audience is a great way for testing when my viewers suddenly cry the audio is hurting their ears 
(just me hoping desync is also fixed along with that issue)
the one thing I am worried about is that this looks like it's something from windows side, so it's not clear how much influence we can have on this from OBS at all
Yea this problem just occurred out of nowhere and has driven me mad for weeks now. I had an outdated windows that wouldn't update but after getting it fully updated it still happened.
I once worked with microsoft on an issue in several of their office products - that was from an enterprise business that had a huge contract with them so they would actually listen and involve their devs - we got a good repro scenario with process monitor showing exactly what is going wrong (basically some locking steps were done in the wrong order, making a race condition possible) - still eventually they decided to not change it, because they were too afraid of unforeseen side effects
things like that always come with risks on a huge scale, they're then afraid of breaking even more and rather do nothing
I hope it will be different here 😐
or there is a way to indirectly influence it from OBS, but when I hear that discord also has that problem I guess we can't really hope for that either
Yeah best of luck. At the very least I'm not the only one losing my mind over it I guess but I'm also really worried it just won't get fixed. Probably will have to go through the mess of using Voicemeeter again. 
that's exactly where I am at, too - used Voicemeeter, but that also was never really stable for me, could also get distortions (who knows, maybe it's even related) after a while, I had to regularly restart it's process to fix this
I got the bug myself. VM confused me too much, I switched to Steelseries GG software.
The obs capture is just so damn simple and easy to setup and then ofcourse with my luck it's super broken for me.
then I moved over to abuse the sound devices that come with my monitors as kind of virtual devices, making one the one that only I can hear and another one that will be heard in recordings/streamings and directed sound to my headset using the audio monitoring feature of OBS
but guess what, with that I am running into the desync issue
so next I wanted to look at app audio capture
until I read that this is having issues too 😄
It's for sure a windows issue it seems because other programs using the same api have the issue
yeah, it seems so
I wonder whether it's only capturing anyway, or just that in many other scenarios we don't notice it so much, like when spotify itself during playback gets "desync", well, what would be your reference to notice it
and ive run into the issue with both the built in BETA and the plugin version, which is why I dont use either of them or suggest their usage at the moment.
im also using a dual PC setup, so the overal need for it isnt really there anyway. mostly used it to capture StreamRaiders on my OBS PC when I was running that a few years back
same I have an issue for both. I actually prefer the plugin version but its equally broken.
so far I wasn't even thinking of the desync issue, dunno whether it's related, but might as well try to cover that too - I guess I could run that famous twitch test loop that I am using a lot in other places in a browser and capture that
that's exactly what I mean, I wonder how many people take closer looks at something like this outside of us people who care about capturing
especially for desyncs I have learned that human perception of this varies a lot - this could be taken as some kind of base, but you will find people completely outside of the ranges there: https://www.prosoundtraining.com/site/wp-content/uploads/2014/02/Lip-Sync-Errors.pdf
this "subconsciously disturbing" area there is super annoying
@frigid sail sorry i was at the theater, sending you a link on DM
Much love. 
for me too plz
you'll have to open DMs Yorvex
just did
tried with 29.1.3 first to see whether that system is affected at all before going with the test build - didn't get any distortions within 18 minutes of recording, but boy is the desync bad
Desync should be fixed as of 30 rc1 i think?
OK, then I guess it will also be fixed in the test build - but first I have to find out which systems have the distortions and which haven't
I probably should've asked it in this thread... Mybad
But, my Python for OBS isn't loading even though it's the right file path
OMG, I feel so fucking dumb. THANK YOU!
supported versions are 3.6 to 3.11
I'm going to get it installed then let you know how it is!
It's working! Thank You again.
lmao
Do I get it right or I'm just not finding option in regard of obs-websocket to have possibility to get scene item list and/or properties for current scene or current preview scene with version 5 of plugin? Using GetSceneItemList needs scene name to be added to get any info out of it. In v4 there were CurrentScene and PreviewScene as options to choose from.
- Capture Interference
- Multiple Game Capture
- Killer NIC
- Windows 11 22H2 (OK)
- 0.6% Rendering Lag
- 0.6% GPU Encoder Overload
- Dynamic Bitrate
Intel Core i5-9400 @ 2.90GHz - OK! / GeForce GTX 1650 - OK!
Possible bug in Advanced Scene Switcher?
If <current scene> 0 Intermission
Then Switch to <scene --break-->
This switch is occurring when the current scene is 3 Studio Wide Rear Cam. I think this may be a bug. I find it switched to the --break-- scene after 15 mins when on other scenes other than the 0 Intermission scene. Bug?
probably not, would need more context as to what all of your macros are doing though.
Is Aitum Vertical the same as multi rtmp but with added functionality to customize and have more control with scenes?
@gleaming raptor No, it creates an entirely new canvas, which has a significant resource footprint, whereas obs-multi-rtmp only creates additional outputs for the existing canvas. You can use both at once, if need be.
Gotcha, I guess there is an option to link the new canvas in multirtmp. Exciting plugin.
Thanks but I'd like to get list of item's properties of current program scene. There is GetSceneItemList but there I have to give exact name of the scene but I cannot get items of current program scene. In v4 if scene-name was empty then it used current scene for that instead but this seems not to be the case in v5.
GetCurrentProgramScene gives you scene name
Yes, but I do not want to get scene name per se, I want to get list of items of current scene, meaning all the sources and their properties.
GetSceneItemList but there I have to give exact name of the scene
and you get the exact name of scene
so now you can use the function
Yup, I just wanted confirmation that there isn't easy way in v5 like it was with v4. There are more steps needed to get same result.
uhm i need very specific help but i dotn know where else i would type this so... for soem reason only my mic is picking up. no music. no sound. just my mic. is there any settigns i should turn on/off?
ok ima un-install OBS then reinstall OBS and hopefully that works...
wait a sec...
nvm
nope that STILL didnt work.
welp.
#support-portal , probably #audio-support
I wrote a Program called EYE. It communicates Information of a Game to the Plugin Advanced Scene Switcher. So it is possible for example to let the health Bar trigger sources in OBS. I dont know if I am allowed to write that here, but I think many would be interested in it.
Guys any of you can guide me about how to use the dynamic mask shader that comes with Exeldro's shader filter?
Do anyone know a plug-in that syncs scene changes across multiple computers over ip? I had one but I don't remember the name and it doesn't show anymore since last update
you could try to post it on the tools section on obsproject, maybe it's approved there, then certainly more people will find it: https://obsproject.com/forum/resources/categories/tools.4/
also you could ask the adv-ss author whether they want to feature it somewhere, maybe with an example in their wiki.
out of personal interest: I am doing something similar, basically firing lots of shader effects based on things that happen in CS, but I do this simply by having my tool control OBS through OBS-websocket (e.g. enable and disable the shader filters or hide or show sources) - how do you interface with adv-ss? also through websocket? or somehow directly?
No, I developed an interface to easily setup up to 10 different areas simultaneously. For each area you can create categories, like high life, middle life, low life or everything you desire. In those categories you put screenshots of those areas, which indicate the state of the healthbar for example, that describes the categorie. You create those croped screenshots directly with the program. The program than checks each area and compares the current screen with the deposited screenshots and picks the one that is the most similar. Than it writes the name of the category into a file which you than read with Advanced Scene Switcher. It works very well and is easy to setup.
ah, so it's using the video condition from adv-ss to detect the states from the video feed?
who is adv-ss author?
thank you for the obsproject tip. I do that right now 👍
Warmuptill - I think they were also here on this Discord at some point
that was a message from them (but I turned ping off, not sure whether they like to be pinged here, do at your own risk)
I added it to the OBS project as a tool. Now it waits for affirmation
thank you
super cute emoji
My macros are switching from scene 0 Intermission to scene --break--, but supposed to only do that when scene 0 Intermission is active. The problem is it's switching to --break-- scene when scene 3 Studio Wide Rear Cam is active. And then it stays there and never comes back.
shows the macros you have
Hard to tell, just by Text.
So, the scene 0 should toggle the macro to the scene Break on and off.
These are four that switch FROM two specific scenes. The problem is they are switching from OTHER scenes as well.
How to take a screenshot - http://www.take-a-screenshot.org/
disable macros one by one till you find the on ethat does it?
I assume unchecking the box next to the macro disables it?
yes
The window disappears when I use the snip tool.
settings > gneral
untick "hide obs from screen capture"
Another question--why does my bumper video play twice at each break? And why the same bumper when I have more than one in the folder? The bumpers are in VLC video source with shuffle checked.
I haven't been able to open the settings since OBS v27--it causes the program to freeze.
you're on 29.1.3?
Their scene collection causes settings to either hang or take an hour to open
Started with the change in how hotkeys load when launching settings
i have my doubts, my collection is 5x larger and settings opens up near instantly
I mean, I'm pretty sure they've posted videos of it happening 
- Max Audio Buffering
- Old Version (29.1.0)
- Windows 10 22H2 (OK)
- Not Admin
- Third-Party Plugins (46)
- Portable Mode
AMD Ryzen 7 5700X - OK! / GeForce RTX 2060 - OK!
yep, over half are exeldros
good thing i posted that log, jsut noticed my Ko-Fi browser sources are having issues
Hi, could someone help me with Blackhole on a MacBook?
Also, does anyone have any recommendations for an EQ that'll work on Mac? Reaper Plugs are unfortunately not compatible with Mac (please correct me if I'm wrong).
I'm trying to get my obs-ndi plugin, based on obs-plugintemplate, packaged installer to work on MacOS.
If I manually copy over the obs-ndi.plugin file then OBS loads and runs my plugin fine.
When I use the packaged installer OBS 29.1.3 fails to load the plugin with the following error:
15:43:50.748: os_dlopen(/Users/paul.peavyhouse/Library/Application Support/obs-studio/plugins/obs-ndi.plugin/Contents/MacOS/obs-ndi->/Users/paul.peavyhouse/Library/Application Support/obs-studio/plugins/obs-ndi.plugin/Contents/MacOS/obs-ndi): dlopen(/Users/paul.peavyhouse/Library/Application Support/obs-studio/plugins/obs-ndi.plugin/Contents/MacOS/obs-ndi, 0x0101): Symbol not found: _qt_version_tag_6_5
15:43:50.748: Referenced from: <FD3E2B62-0073-3BA4-97C9-189833634665> /Users/paul.peavyhouse/Library/Application Support/obs-studio/plugins/obs-ndi.plugin/Contents/MacOS/obs-ndi
15:43:50.748: Expected in: <EA2F3100-9BC7-3459-845C-E424249B9015> /Applications/OBS.app/Contents/Frameworks/QtCore.framework/Versions/A/QtCore
15:43:50.748:
15:43:50.748: Module '/Users/paul.peavyhouse/Library/Application Support/obs-studio/plugins/obs-ndi.plugin/Contents/MacOS/obs-ndi' not loaded
Symbol not found: _qt_version_tag_6_5
Looks like a hash/guid is off?
Fixed: I was trying to get fancy and use deps obs 29.1.3 and qt 2023/10/06.
I reverted to the template's 29.1.2 and other 2023/04/12 deps and it loads fine now.
Bumped obs dep to 29.1.3 with no problems; kept other deps at 2023/04/12
Silly Q
Is there a way to dynamically reload plugins while obs is running?
I hate the restart obs each time I build the plugin (it loads in seconds so not a big deal)
Also being able to attach a consistent debugger is a plus
nope, OBS needs a full relaunch
Got it. I suspected as much.
But - why is that?
There's nothing preventing a program to unload and load a dynamic library..
that is something I will leave for the devs to go over
I guess implementing it would just be a lot of work - e.g. what about all the callbacks the plugin might have itself registered for? what about code it might be in the middle of executing at the moment of getting unloaded? you probably need additional callbacks to notify plugins of getting unloaded beforehand, and either make it mandatory and break every single plugin that exists, or don't do it but then a lot of them might not play well with getting unloaded and reloaded
and then the more subtle things like plugins expecting to receive some frontend start events after getting loaded, which doesn't happen when a plugin is getting (re)loaded at a later point
and all that for a rather small use case
29.1.3 (64-bit)
can you share the scene collection file?
Where is it located?
To export OBS settings to back them up, go to Profile > Export (to export streaming/recording settings) and Scene Collection > Export (to export scenes).
Here's the scene collection.
When I came back to the office this evening, I found that OBS had stopped streaming. It was frozen on the --break-- scene and unresponsive. I had to force quit and restart it.
Prior to installing and setting up the automatic scene switching, it would not be unusual for OBS to run 30-40 days without any issue.
I'm finding another problem since I've installed the scene switcher.. WinAMP is ignoring global hotkeys now. My StreamDeck can no longer control stop and start of music playback when it switches scenes.
is OBS and StreamDeck running as admin by chance?
StreamDeck can only control WinAMP if WinAMP is on top (had the focus) now.
OBS is running as Admin
OBS running as Admin was the problem. I run it normal now and StreamDeck can control WinAMP again.
good good. though odd that OBS not being admin anymore changed something about the SD software working with WinAmp
aaaaand ive just reinstalled WinAmp, lol
It really whips the llama's ass.
OBS was. I switched it to non admin and everything works again.
obs_data_t *settings = obs_data_create();
obs_data_set_string(settings, "server", "rtpm://ams.streamway.in");
obs_data_set_string(settings, "server", "rtmp://ams.streamway.in");
obs_data_set_bool(settings, "use_auth", false);
obs_data_set_bool(settings, "bwtest", false);
obs_data_set_string(settings, "key", "");
I want so save custom rtmp server and key directly from cpp code , I am trying many methods provided in obs studio api.
but it's not working, So if anybody know about this? then help
This is probably gonna be one of those wishful thinking questions... but I have advss pausing/unpausing music via hotkeys, pausing on certain scenes there should be no music, and resuming when acceptable... but I am running into the issue of it always unpausing on approved scenes when I dont want it to... I was wondering if there is a way to rewrite the macros so that it only unpauses if it detects it was paused via advss to begin with? seems like a variable thing, but im pretty terrible at those... always need Penwywern's help
why don't you just remove the audio capture from those scenes?
do you unpause it in those scenes sometimes?
anyway if you want to detect if it was paused using advss, then whenever you pause /unpause using advss, add another action to set a variable to on/off
then when you will unpause the audio, add an AND condition for the variable
however, you will also have to dedicate a couple macros to turn the variable off when the audio is unpaused by user
i have a beacn thing, i think it'd be a huge PITA?
what?
how does the "issue of it always unpausing on approved scenes when I dont want it to" happen?
sounds like it would be better to fix that than workaround using variables
well say if im doing whatever(no music), goto a restricted scene, then back to an approved scene, it starts playing music wether i was before or not
ah, so you want it to only play music if it was playing music earlier?
correct
i feel ya, still shaking out the cobwebs myself
mute = pause unmute = play
these are built in hotkeys for Snip to control itunes, if you care to know
why are the macros checking for the scene items and media, rather than what scene it is?
maybe the way i setup my scenes? (i had to this way to make tuna work) I have my main 6 scenes, start/main/brb/just chat/intermission/end, then a nested content scene: with different content type nested scenes 😉 im probably not explaining this right, but
play and pause in OBS, or outside of OBS?
outside
and when you manually pause/unpause, you also press the hotkeys?
well, unless the audio has no silence, i don't see how advss would detect you manually pausing and unpausing
well thanks for trying, maybe just disable these for now and go back to manual
the plugin for multy stream stop working it starts but dose not go to youtube
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
Log contains debug or verbose error messages (browser/ftl/directshow/etc), for a filtered version click here
- Max Audio Buffering
- Mismatched Sample Rates
- Windows 10 22H2 (OK)
- 2.4% Rendering Lag
- 2.4% GPU Encoder Overload
- Dynamic Bitrate
- Third-Party Plugins (3)
AMD Ryzen 7 3700X - OK! / GeForce RTX 2060 - OK!
Log contains debug or verbose error messages (browser/ftl/directshow/etc), for a filtered version click here
- Max Audio Buffering
- Mismatched Sample Rates
- Windows 10 22H2 (OK)
- 2.4% Rendering Lag
- 2.4% GPU Encoder Overload
- Dynamic Bitrate
- Third-Party Plugins (3)
AMD Ryzen 7 3700X - OK! / GeForce RTX 2060 - OK!
I have made a tool for streamers (open source). I wanted to post it in the obs-forums but seems like I don't have permissions. Am I allowed to share the GitHub link here?
You can submit it as a resource on the forums for review
Oh thank you for the info! Let me give it another shot then
Yup, worked! I successfully submitted it, thanks!
My plugin [obs-ndi] is based off of the latest https://github.com/obsproject/obs-plugintemplate code.
When I install the .deb file with either Ubuntu Software or sudo dpkg -i obs-ndi-4.12.0-linux-x86_64.deb the plugin gets installed to /usr/local/lib/obs-plugins/:
pv@m6-16g-ubuntu:/$ sudo find . -name obs-ndi*.*
./home/pv/Downloads/obs-ndi-4.12.0-x86_64-linux-gnu.deb
./usr/local/lib/obs-plugins/obs-ndi.so
pv@m6-16g-ubuntu:/$
OBS never sees that.
To get it to work I have to:
pv@m6-16g-ubuntu:/$ sudo ln -s /usr/local/lib/obs-plugins/obs-ndi.so /usr/lib/x86_64-linux-gnu/obs-plugins/obs-ndi.so
Similar with the data/strings:
pv@m6-16g-ubuntu:/$ sudo ln -s /usr/local/share/obs/obs-plugins/obs-ndi/ /usr/share/obs/obs-plugins/obs-ndi
Is there something I am doing wrong that is causing the obs-plugintemplate based plugin to not install to the correct location?
Why is it that VLC Source, even with shuffle mode on, plays the same sequence of videos from the same starting point, every time I restart OBS? My understanding is that Shuffle is supposed to randomly arrange the play order of videos in that folder. Could it be the "Refresh source settings" in the macro in Advanced Scene Switcher causing it to restart the same sequency of videos evey time?
shuffle just creates a random playlist from the added videos, but it's the same order every time, so it's "working as implemented"
It's less than ideal, and true random mode would probably be good, just nobody has spent time on it as we have other priorities.
Hmm. Are there any plugins or methods of having a notification sound if you start dropping frames?(network frames)
https://obsproject.com/forum/resources/dropped-frame-alarm.675/
found this when searching - but be beware that it is quite old and seems to be incompatible both to obs-websockets and streamdeck plugin, so use with caution
but I guess it's at least worth a shot
ah... that's unfortunate this would of been perfect. I might give it a try but I use both of those plugins plenty so probably won't end up using this. Thanks
i thought the websocket plugin could report stats
Nah, I don't see anything:
https://github.com/obsproject/obs-websocket/blob/master/docs/generated/protocol.md
Might be cool to add an option to get network health events.
advanced-scene-switcher has an obs stats condition so you could do smth with it, but it's percentage on overall session stats meaning that the longer the stream the more you'd need to trigger it
Oh this might work I'll take a look at it. I can maybe do bitrate as well
Any suggestions on how I would have my phone connection status in DroidCam as a conditional in Automatic Scene Switcher? My current setup uses window capture on the popout video preview. I want it such that if the connection between my phone and DroidCam is severed, for some other action to occur
is droidcam selected in OBS as a video capture device or it's own source type?
Not its own source type. Ive been doing a window capture for the video popout. I just noticed that I can have it as a video source.
yeah, bitrate might be a far better metric, given it's an "instantaneous" one
if you can select it as a video capture device i am sure there are conditions for that to accomplish what you want.
Yep, im looking into it right now. Appreciate the help
Looks like Droidcam still broadcasts the last frame even if the phone is disconnected from the Droidcam client so checking whether or not there is an output doesnt work. Instead, Ill be checking whether or not the video source has changed and set a very high threshold which can only realistically be achieved from the video source being frozen
big sad
maybe the way i setup my scenes? (i had to this way to make tuna work) I have my main 6 scenes, start/main/brb/just chat/intermission/end, then a nested content scene: with different content type nested scenes 😉 im probably not explaining this right, but
The GetStats request
User-compiled code should be placed in /usr/local hence why CMake defaults to that - obs does not look for plugins there (though I would argue that it should but that’s maybe for Linux folks to fight over).
If you want CMake to act as if your own code is actually a distribution package, you need to either change the CMAKE_INSTALL_PREFIX cache variable when configuring your project or use the --prefix parameter for cmake --install to specify it
Be careful with that if you somehow use the cache variable as a preprocessor define in your code (we do that on obs-studio, it’s bad, we should feel bad about it, but I can only fix so many things in a day) because specifying a different prefix at install time (as cmake clearly intents) might break some code then
obs does not look for plugins there (though I would argue that it should but that’s maybe for Linux folks to fight over).
There is nothing to fight over, obs should look only in it's own install path (which is in the prefix) when it comes to "system-wide" plugin installs.
can I put subtitles on obs?
In what context?
That does prevent any locally built plugin from being loaded though and I don’t think local development builds should be installed into /usr/ - why even have the distinction if it’s not used/supported
"Forcing" the dev to system-wide install a plugin to test it is not the right workflow.
Unfortunately I'm not well-versed on how it could be done, beside building OBS and the plugin in a prefix placed in the user home directory.
Or the well-known in-tree plugin build.
void obs_service_update(obs_service_t *service, obs_data_t *settings){
obs_data_t *settings = obs_data_create();
obs_data_set_string(settings, "rtmp_url", "rtmp://localhost/live");
obs_data_set_string(settings, "stream_key", "123");
obs_service_update(service, settings);
obs_data_release(settings);
I broadcast a facebook live and would like subtitles for the deaf to appear
Vouch for the first one for sure.
so the situation right now is this (all of this is for non-portable location):
• OBS is built with a hard-coded search path for its runtime plugins:
• OBS_INSTALL_PREFIX is set to CMAKE_INSTALL_PREFIX - so a distribution package searches in /usr/lib/<arch>/obs-plugins/
• obs-plugins/64bit two levels up from the binary (which would resolve to /obs-plugins/64bit from a binary in /usr/bin
• The Flatpak plugin path
the major issue with this is that the only effective search path is hard-coded at build-time of obs-studio and a user has to know which path was used by their distributor to install plugins into the correct directory
so if I build my plugin locally, I should use /usr/local as the prefix for anything not managed by the distribution if I want to follow the rules
so by that token obs should also support that path, except if we have a rule that we will only load plugins provided by the distribution
and my point was what the point of the rules is if we have to tell people to ignore them 😄
i working on obs multi rtmp plugin and i want to set rtmp server and key programmatically , i use some methods and provided obs studio api's but its working i use this :-obs_data_set_string(settings, "server", "rtpm://ams.streamway.in");
obs_data_set_string(settings, "server", "rtmp://ams.streamway.in");
obs_data_set_bool(settings, "use_auth", false);
obs_data_set_bool(settings, "bwtest", false);
obs_data_set_string(settings, "key", ""); its running properly but not effected obs studio. if anyone know about this help me....
Note, we don't have 64bit level on Linux, except in the config folder.
so by that token obs should also support that path, except if we have a rule that we will only load plugins provided by the distribution
No, /usr/local is extremely unpredictable since the user can install other things that might cause issue, packaged obs should not touch it at all.
Relying only on the given prefix (and on the XDG config dir value) is enough.
If users are mix and matching various way of installing plugins and want to do wrong things like installing a non-package in /usr, they are on their own.
If the user wants /usr/local, the user will have to build obs with this prefix.
I don't want to open this door, I maintain ~50 plugins AUR package because provided package for plugins is the best way.
But plugin makers, don't always want to publish on Flathub or on a PPA.
fine by me - I just find it weird that it breaks the convention of what man hier explicitly spells out, but I guess those rules got broken the moment Unix got GUI applications
also e.g. FreeBSD still follows those rules to the letter - every package is installed in /usr/local because they are not part of the base FreeBSD distribution
but that's the input I was looking for, I can merge https://github.com/obsproject/obs-plugintemplate/pull/84 then
No because the script is meant for Ubuntu, do we use Ubuntu's right prefix for OBS ?
I meant the PPA for my question, because the PR is wrong for Ubuntu in general.
oof no idea really
but I need guidance on that PR because I have no idea what the "right" choice for a hard-coded prefix here would be
I said nothing I got agains confused with the LIBDIR variable, which is really different between distros
yeah but will it use the right LIBDIR when /usr/ is provided?
GNUInstallDirs should yield that one
Arch: CMAKE_INSTALL_LIBDIR=lib
Fedora: CMAKE_INSTALL_LIBDIR=lib64
Ubuntu adds another level.
The default is lib IIRC, but Ubuntu does not use that.
alright, so it's fine then
Yeah, sorry for my confusion on this PR with libdir.
PPA have the right LIBDIR for Ubuntu (lib/x86_64-linux-gnu).
have you tried this? https://obsproject.com/forum/resources/siilicam-obs.1817/ i published it yesterday/this morning, if you don't need audio but want high quality video it might do the trick. If it does not work with the macro you have I can easily make adjustments to the plugin so it won't update the last image anymore but I guess if the macro just checks updates on the source, then my plugin should work fine
EYE has been accepted as a Tool. Thank you again for the advice
I am quite sure it does, I've written a tool that does nothing but replicate the Stats window from OBS on a remote machine based on data from the websocket plugin - that was for the 4.9 protocol, but I would be surprised if 5 wouldn't have that data anymore
already taken care of 🙂 #plugins-and-tools message
ah, right, scrolled too fast 😛
how to update the properties of a source while the properties is open?
or let me rephrase that, after the get_properties is called can I update the possible properties while the user has the properties window opened
New to obs, cant seem to get my display capture behind my cam and overlay layer. Any help would be appreciated
w00t! I merged that change and obs-ndi installs and loads in OBS just fine now!
This is not a generic support channel. Try the appropriate #{os}-support channel.
I don't think you can.
I don't think you can.
yeah, I also tried to refresh the text of a label of an open properties window and...I think it crashed? not sure, but it didn't work. ended up adding a "refresh" button, that would then update the label during its click handler, this is working.
aaah alright, ill dive into the refresh button because my app definitely needs one of those
but if you can do it onclick wouldn't it make sense that you could add a timer that updates like every 0.1 sec the label?
I suspect the issue is something about threading or context, the UI assumes that outside of its own update procedures and callbacks the fields are not changed and if you do you run into trouble
aaaah yeah ofcourse
the click event handlers set this context, if my observation is correct it actually makes all fields reload (I think if you return "true") so that you get a consistent state again, so even if you're updating only one field during the click event handler, all elements are reloaded
if I click my refresh button I can see all UI elements disappear for a split second and then reappear
hmmm well it would then make sense that the ui could perhaps be refreshed outside of the ui thread with some trick
other than the onclick handler
yes, very well possible, I also had the same though but didn't yet explore this option - lmk when you find something out 🙂
yeah
the problem mostly is this full refresh - like, you could trigger a timed constant click of the refresh button from code, but it would make the window constantly flicker - beside looking ugly it would also make it hard for the user to work with the properties window, e.g. if the user is entering text or moving a slider this would be interrupted by the refresh
not to interupt anything but would this be where i ask for support on a pluggin not working or should i use the (OS)-support channel?
I'd say try here first and if it seems like it's not the plugin causing it you can still switch there
some authors of plugins are also reading this channel
Okay well I'm trying to install the source record plugin, I've tried manual and the auto installer (windows) and yet no matter if i uninstall and reinstall restart my pc or anything else it never shows up under the filter effects.
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
show us a log please
so that we can see whether it's loaded at all
- Old Version (28.1.2)
- Multiple Game Capture
- Windows 10 22H2 (OK)
- No Output Session
- Windows Game Mode
- Third-Party Plugins (3)
AMD Ryzen 7 3700X - OK! / GeForce RTX 3070 - OK!
yeah, quite old, actually 🙂
that said, I think the source record plugin should actually work with that version - then again, I'd still say as a first step update OBS to 29.1.3 - then install the latest source record plugin over it and then check again
yeah I just found it in the log, that it actually looked like it was incompabtible:
12:08:27.438: Module '../../obs-plugins/64bit/source-record.dll' not loaded
so it was installed correctly and in the right place but couldn't be loaded, probably because of version mismatch
also might want to check this
is there any way to update my obs studio it keeps crashing?
you're welcome
If you need help or have questions about OBS, check out our #support-portal first!
does anyone know how to have individual discord users show up as different audio in OBS?
Like, if Person A is talking, only Person A lights up on screen
Posting in here bc it's probably better to ask here
Someone needs to make a script/plugin to move media controls, for example my main vlc source is nested a few layers deep, would be cool if you could go into the properties of this vlc source, and have a checkbox to redirect media controls and maybe a drop down to pick the scene/source they will be displayed. Obviously if one source redirects to X, another source cant redirect to X.... pretty please 😉 i miss my timeline/buttons
hippity hoppity, by the power of exeldromancy :
https://obsproject.com/forum/resources/source-dock.1317/
i thought someone was gonna suggest media controls by exceldro, but that looks interesting, ill check it out
oh yeah, that one too
since you are here, im making an intro with a buncha macros, but running into a few situations where conflicking macros wont let me do something, how do i stop those f-ers
can you detail the conflicts?
been a few days but the main one i remember is a "live wallpaper bg" video, I hide it, play some other video then go to change scenes and theres the damn background showing, i think another macro is making it come back
you cant show just one source on the media controls one? hrmmm
if you can reproduce the issue but aren't sure which macro is causing it, deactivate macros till you find the one
wtf, i installed the source dock thing, now tuna dont work crosses arms while having a fit
a restart of obs fixed it, oh thank god
ima hit the sack, thanks for the help pen
what events can a plugin acting as a Source use to know if it has been
- renamed
- made hidden or visible
?
for the renamed, put a callback on the source's signal handler for the "rename" signal when you create the source.
What do you mean exactly by "hidden or vsible"?
Do you need the visibility state of all sceneitems of the source, or just a general indication of whether the source is currently showing somewhere (as in output or preview)
Event for when someone clicks the Eye icon to hide or show the Source in the output
that's a complex one. Just to know, what's the exact usecase?
basically, what you'd need is a callback on every scene, watching for the item_visible signal, and then use obs_sceneitem_get_source to check whether that sceneitem is associated to the source itself or not.
to maintain a callback on every scene, you'd need a callback on the global handler for source_create and source_destroy, that checks for creation/destructions of scenes in order to apply/remove said callback to them
and then there's the question of bloody fucking groups because I'm unsure whether the visibility toggle of an item inside the group triggers an item_visible on the scene the group is in or only the group, you'll have to test that
For the obs-ndi plugin:
- if the source is not hidden on every scene then stop RXing NDI a/v
- if the source is shown on any scene then start RXing NDI a/v
low priority, but it's a feature request
in the obs_source_info itself you can use the .show and .hide
are you sure that the show/hide signals on the source wouldn't be enough for that purpose?
oh ty didn't see there were functions of the source info itself
the ndi plugin uses these already to set the tally light, you can disable/enable in that same call when needed
i have callbacks to those already and tried using them but was running into other weird OBS foreground/background performance issues and paused that effort
is this low latency mode?
that is a strange one, it looks like it fails to sync audio and video
if you disable audio for the ndi source is the issue gone?
I changed the ndi-source call to recv_capture_v3 to pass in nullptr for audio and now never get or process audio yet the video stutter is still there.
Sync Network or Source Timing makes no diff
Foreground performance is worse than background; I am stumped
If you want I can have a try and investigate the issue later this week
That would be fantastic, but I am sure you have better things to do! 🙂
I asked in #development yesterday and they thought it has something to do with Windows 11 "optimizations"
Matt | WizardCM's response #development message
I run windows 11 so hopefully I will be able to replicate in the issue, I will let you know the results
FWIW, I do plan to improve the obs-ndi NDI send and receive logic in a future 5.x version, so no need for a major rewrite right now. 🙂
The fact that it works fine when OBS is not the focused app tells me there isn't that much wrong w/ the current code.
Something seems to just be misbehaving with OBS when it has focus; competing with something?
I am running a Sunshine server, but that isn't active during any of this.
There could be possibly be capture hooks or other drivers involved.
I have 4 MiniPCs w/ fresh Win11 installs that I can also test this on (although I haven't even confirmed yet if they are powerful enough to run OBS+obs-ndi)
1:20am my time; signing off
So I've started studying multi rtmp, but I've noticed that there's no easy way to either check multiple chats at the same time, nor to (at least) change the title of the stream at once
Perhaps any of you know of something for that?
This is something that needs work, something like Restream or whatever that weird browser extension is are probably the best options, but Restream needs you to broadcast via Restream for it to monitor the Chat
Streamer.bot is also an option.
Better ask in #stream-setup though
I press "start replay" in the obs studio, press the hotkey to save the recording and the obs studio gives me an error - "An unidentified error occurred during recording", please tell me what to do, before that everything was fine
- Outdated Plugins (1)
- Windows 10 Game DVR
- Multiple Game Capture
- Windows 10 22H2 (OK)
- Not Admin
Intel Core i7-8700T @ 2.40GHz - OK! / GeForce GTX 1070 Ti - OK!
I press "start replay" in the obs studio, press the hotkey to save the recording and the obs studio gives me an error - "An unidentified error occurred during recording", please tell me what to do, before that everything was fine
Hey everyone! I hope someone can help me here.. I got the OBS (Version: 29.1.3) but can´t find the websocket plugin. Do you have an idea how I can open websocket, so that I can connect my "streamer.bot" ?
Top of obs. Help > check file integrity
U made my day.. thanks alot, bro!!!
👍👍
Seems to be a bug with AudioMonitor plugin, where it falls into a feedback loop of toggling the filter visibility.
I am seeing over 10,000 flips per second, which was discovered because it chokes the websocket.. Is there any way I can view some kind of log for audioMonitor to see what might be happening? I have not got a small repro scenario unfortunately
Hello Guys. Is there any way to capture the mouse pointer and double its size? I'm capturing Eve online gameplay videos, but this game doesnt have any option to change its mouse pointer size and, in 4K, it's so tiny that it becomes very hard to see.
Is there like a way to set up a condition in OBS scenes? I have 3 different pictures (more actually but I'll just lessen them to show my point), I want to present them in a slideshow like way but keeping them as separate sources and not using the Image Slideshow Feature. (Particularly because I can't select which pictures to show. I can't jump from the 1st to the 5th, or not that I know of)
For example, I will show Picture A. And then I will show Picture C, but I want Picture A to automatically disappear or hide itself if I show Picture C. Same with Picture C hiding if I show Picture B.
It's not organized because the other person may ask to show picture B then Picture C then Picture A.
TLDR, I want to only show only 1 sources, if I show another picture source, then the previous one will automatically disappear.
what i do is use https://obsproject.com/forum/resources/source-toggler.860/
so i will have multiple images like you said
but whenever i show one, it automatically hides all in the same scene or group
Ooooohh, cool! Will check it out, thanks!
You have a great day, bruv
Can it be configured to only show an x amount of sources? I still want to show my camera HAHAHA!
put your images in a group or nested scene
Aight!
yo why do i have black bars at screen when i stream at twitch 720p?
If you see black bars on your stream/recording, see the Aspect Ratio Guide for information on how to select the best aspect ratio for your content.
I've perfected my OBS mute notifier. If anyone wants it, let me know. It's a Python based script!
^It was put in place for streaming purposes but I can easily switch it to recording or even have both of them!
I wouldn't mind seeing it.
Okay! DMing you now. I dont have it on my GitHub at the moment so sorry for needing to DM you xD
I probably should've made a video tutorial on this.. DANG 😆
❤️
Greetings! Is there a plugin that provides a recording indicator and time over full screen games? I'm unable to do a multi-monitor setup and being unable to at least see that I'm actually recording and how long is quite frustrating.
Unfortunately, no. Doing an in-game overlay is an incredibly finnicky and complex task. It's something we'd like to be able to offer, but we haven't had the time to devote to the R&D necessary.
Gotcha. Thanks for the response 🙂
Lol
you can use winsize2. with program you can do multiple things. One of it is to put a window to always on top
there's still the problem of getting the data they want.
They're on a single monitor setup which prevents themnfrom using anything internally from OBS as that would outright block whatever they're doing.
Is there a plugin to select which image to show in an Image Slide Show? I can bulk import pictures in the Image Slide Show, but I want to show picture 3 immediately instead of scrolling from 1-3. Also, it would be great if it has a dock that will let me choose the image to play in the Image Slide Show
Sort of like how you can choose which slide to play in PowerPoint by pressing 'G' to open slide switcher view
Atm no
Make a copy of 3 and rename it in a way so its the first one
that's a bit oversimplified
also they're already using multiple images and showing only the image they want: #plugins-and-tools message
which i believe is simpler than your suggestion
hii 🙂 I just wanted to install the websockt plugin, which I did. However, the following message comes from obs. I don't know how to fix it.
obs 28+ has websocket builtin. what you installed is an outdated version of it.
Run the obs installer again to get the builtin version
OBS Studio can be downloaded:
- directly from the official OBS Project website: https://obsproject.com/download
- Microsoft Store (Windows)
- Steam (Windows, macOS)
- Flathub (Linux)
I have to completely reinstall obs? I downloaded the latest websocket file from the Obs forum.
sry for my english is translate with google..
yeah, and as it mentions it is outdated.
You don't need to uninstall it, just download the installer and run it
Can I go to the link they sent and then just download? not more ?
no you need to run the .exe after downloading it
i have install and now i have iin tools the point websocket
but why i have this not for 1h ? i have too same obs verson install but for 1h wiiithout websocket
what do you mean 1h?
beause you installed a different version of websocket after installing OBS that was not compatible, OBS includes it already.
Oh, that means it already had it in there because the websocket version didn't work?
yes, it was there because obs-websocket wasn't included in versions before v28
having the latest OBS version means websocket is already inside the OBS itself
I am soooo freakin close to getting obs-ndi 4.12.0 released.
It is based off of the latest obs-plugintemplate.
I am testing a packaged Windows installer generated by the CI and Windows is complaining that the installation file is a threat and removed it.
How to get official CI builds to be either be signed or not report false threats?
FYI, this line in the latest [but still a bit behind obs-studio] obs-plugintemplate results in `` and not signing macos builds.
https://github.com/obsproject/obs-plugintemplate/blob/6b26cc7943b8ff4d6f1d41807a00312e0b580c65/.github/actions/setup-macos-codesigning/action.yaml#L78
: "${MACOS_KEYCHAIN_PASSWORD:="$(print ${RANDOM} | sha1sum | head -c 32)"}"
Simple fix is already implemented in obs-studio: Change sha1sum to shasum (defaults to sha1sum)
Even adding all of the MacOS signing variables I still get the following warning on MacOS too.
Friends, I'm trying to come to grips with converting shaders from ShaderToy over to OBS's shader language and I'm having trouble finding the documentation about ... well, any of it 🙈 Using some of the old StreamFX stuff I was able to use #define to switch one-for-ones (like vec2 for float2 etc) and I've found in some cases #define was giving odd "expected type" or "expedted {" and converting these to functions did the trick...but it's all been like, very trial and error, shots in the dark 😅
Right now, I'm trying to make an ocean shadertoy work and the last error is really blowing my mind, it's saying
C:\Users\Thades\Pictures\twitch\shaders\Ms2SD1.effect (Pixel shader, technique Draw, pass 0)(64,19-22): error X3004: undeclared identifier 'Time'
And I have a working shader that is using Time ... it works, this one doesn't.
The shader that works is: https://www.shadertoy.com/view/3l23Rh
The one I'm trying to get working is: https://www.shadertoy.com/view/Ms2SD1
Just pointing me at documentation would be grand, if it exists? Or maybe if you've tangled with this yourself, you can get me unblocked? I appreciate you all, thank you.
I have tried StreamFX, FreeFX, and the obs-shader-filter with the ShaderTime checkbox checked...to no avail
You are correct in that there's no documentation; obs-studio uses a subset of GLSL or HLSL (depending on whether DX11 or openGL is used), with its own quirks and limitations. There are a few people, like @quiet bramble , who have devoted time into researching this subject and might help you with that.
Does OBS even have its own shader system? I thought only the plugins do that, and it depends on the plugin you use to determine how to format it right
Thanks, @untold jay . @quiet bramble if you have bandwidth sometime I would appreciate a bit of aid 😅
Yep, it's pretty much trial and error. There isn't any official documentation for the most part. The shader plugins document their context and how to use supplied builtins but not much else. Microsoft's HLSL documentation is a good start for the shader language however not everything Microsoft documents is functional in the context of OBS and none of that is documented anywhere as to what works or does not work, so it is a matter of trying things and figuring out what does or does not work. In addition, the OBS shader parser has bugs that do not like certain constructs and will crash OBS or otherwise fail, usually without any error or any meaningful error. Example, if a shader file contains a preprocessor directive on the first line of text OBS will crash. Putting a comment on the first line always will work around this. There are lots of quirks to navigate.
Oh wow haha
It is doable though. I started with a background in graphics programming in MSDOS and Linux back in the day, but with no userland DX/OGL experience and no shader experience, and just figured things out one at a time by smashing things. 🙂
Good to know re: the preproc
Well that's encouraging, it means my own smashing things is at least the Way
Guides for converting HLSL<->GLSL are useful. The 2 languages are quite similar so easy to learn together more or less.
Any notion why one shader would be chill with Time while another would claim it's not real? 😬
I do appreciate how C adjacent the lingo seems to be
OBS Shaderfilter uses elapsed_time, StreamFX uses a different name (forget off top of my head), other plugins use other names. Need to consult the given plugin's documentation to look at what variables are passed into the shader, and convert the shader code to use the plugin's naming. Sometimes a #define macro is all that is needed. ie: #define iTime elapsed_time or similar.
Other times something more elaborate is needed.
In Shadertoy for example there is iResolution.xy, which the Shaderfilter equivalent is uv_size.xy
That's CRITICALthank you
Is this off the top of your head or do you have notes? 👀
StreamFX seems to use Time, their def is
#define iTime Time.x
Also, another big gotcha is that matrices in GLSL are in row-major order and in HLSL they're in column-major order. The language has a way to change this but it does not appear to work in OBS.
So matrices need to be converted manually which can be a pain. 🙂
Also things like mod() in GLSL have no identical function in HLSL. There are functions like fmod() and whatnot but none of them work the same. You basically need to reimplement GLSL's mod() yourself as a macro and use that.
Another gotcha is the arguments to atan are reversed in HLSL
Arrays can not be passed as arguments to functions in OBS even though Microsoft documents it as a feature
Any idea why it's a mix of HLSL and GLSL and not strictly one or the other?
Any reason to not just use globals?
Wait, can I malloc haha
I would assume not in the shader
I'm not sure of the history of the OBS shader parser or who wrote it, but I think it dates back quite a number of years so it might have some legacy to it and they may have never had a reason to update it to present standards as it worked as is for their built in filters and whatnot.
Gotcha
If you want to do advanced things you need to write a plugin that invokes your own shader, and pass the shader the extra data you want to pass in.
That can also be done via LUA scripting instead of a native plugin
Or multi-pass shaders
I suspect that they just tweaked the shader parser enough to make it work for the builtins and were not trying to put full HLSL support.
Xaymar mentioned a few times that it was more like a cross between Cg, HLSL and something else I forget
Might have been a partridge in a pear tree. 🙂
It's useful to create custom shader function libraries and put them in separate include files with double-inclusion protection, and then just #include them to avoid code duplication too.
just not on the first line 🙂
Also if {} or () are mismatched OBS will poop the bed
that's a handful of tips/tricks I can think of off the top of my head anyhow. Haven't touched shaders since early this year so I'm a little stale. 🙂
Hey, you seem to be the resident guru, so I appreciate your time here
Forgot to respond to this... The only global variables you can have are uniform. Any other variables you need, will need to be defined in the main pixel shader function and passed as parameters to functions, or stored inside of a function that can return the values desired.
Any reason to not use functions? Is there a limited memory segment or no inlining? Or do we know? 😅
Pretty much everything is automatically inlined IIRC
There are some limitations with unrolling loops and nesting things, but it's hit and miss
Hey guys, so i use the Waves Ultimate collection with StudioRack, the problem is everytime now when i try to launch OBS it crashes and it just started today
yeah, it's very clearly crashing in the waves code
ya? which i fine strange since everything was perfect the entire day yestday, should i attempt to reinstall OBS? now i can remove the .dll and it launches correctly
reinstalling obs wouldn't do much, this is an issue in waves itself, not obs
Ah gotcha
I'd suggest contacting the people making that plugin
Ok will do! thankyou
is there any way to track the eye icon state of a source in a specific scene regardless of whether the source is currently shown/that scene is currently active?
if that's not possible it's fine, I know that OBS was not meant for the use case I want to (ab)use it for 😏
it's a source that would only ever sit in one single scene, and its icon would be used to enable/disable its functionality - and that mechanic should work regardless of whether the scene where it is is active (in reality it will probably never be the active one)
can't use source_show/hide or source_activate/deactivate, as both source_hide and source_deactivate will be triggered as soon as I am switching to a different scene
https://docs.obsproject.com/reference-scenes#c.obs_sceneitem_visible
The "eye icon" is not tied to the source, it's tied to the sceneitem
ah, right, I always keep on forgetting this distinction
what exactly are you trying to do
ah, don't mind me, just something completely dumb 😄
but it's a niche use case anyway, I will probably the only user of that feature so I wouldn't care too much if it's a bit hacky. basically abuse a source as a toggle to switch a relay on or off that will relay A/V data
right now I have it based on source_show/hide but now I have to add it to every single scene, since the relay is supposed to stay active most of the time
1 : I do mind you
2 : doing dumb shit with obs that it's not meant to do is like 90% of my attraction for it
I wanted to throw the relays into a separate "Relays" scene, there I would go to toggle them on or off and only keep them there, as opposed to needing to add them to every single scene that might be active
do you need it to be an UI button or can it be a hotkey?
I thought about putting the relaying stuff into an entirely separate tool, but that's just so much of extra work when I already have the necessary classes and so on in that same plugin
in theory a hotkey would do, in practice I keep on forgetting about them, also a visual representation of the enabled/disabled state would be nice (the eye icon would serve that purpose)
tbh, make a dock
I would need to mess directly with Qt for that, right? can't do this only based on functions that libobs is providing?
problem is the plugin is written in C# and I have no bindings yet to include Qt stuff, might be possible to create them, but would probably be a lot of work
currently I rely a lot on properties windows for UI stuff, and those I can control solely from OBS functions
so I could of course throw a checkbox into the properties of the source for enabling/disabling, but the eye icon would just show that state instantly
I was gonna say "it's not too hard to do simple stuff in QT" but yeaaaah, C#
once the bindings are there it would also be easy, but that entry barrier is quite high, I would only do that when needed for something more important, not for that niche use case of mine
ok, you want some really hacky stuff?
always 😄
make your source a media source, implements your functions as media control callbacks and use this https://obsproject.com/forum/resources/media-controls.1032/
that'll even allow you easy control through ws
woah, that's brilliant
thanks for that idea, now I got a new toy to play around with
👍

always a pleasure to twist the api into shit it wasn't meant for XD
While the media source hack may also work for you, it's not that hard using the item_visible scene signal https://docs.obsproject.com/reference-scenes
Especially if the source will only sit in one scene. Otherwise you could let user pick from a list of scenes that has your source, and just pick the first scene item in the scene with the source you're looking for, save its id so that in the event, you compare with scene item id rather than source id
Just if ever you really want to get that event, because I've also done so
yeah, the issue with that is that it'd need an item in every scene to be able to toggle it from any scene
Ohhh that's what that meant
media source control is automatically global, right?
I didn't understand that thing at first
I haven't actually used it personally. I'd think so but not ure
regardless of whether it sits in one scene or in multiple
It's not
You have to add it to all
ah
hm
then use this instead https://obsproject.com/forum/resources/source-dock.1317/
that one will allow you to access the media controls globally
Will also let you toggle scene item visibility
Oh lol you were asking about the pligin
yee but using media control callback is much more robust because it's all in the source itself
No idea about that
Yeah, just saying
I meant like, you press play on the source in scene 1, and then it stays in the playing state also when I switch to scene 2, regardless of whether the source also sits in this scene or not
Sorry for always butting in like this without understanding context haha
don't worry about it, I enjoy chats like this a lot ❤️
No, it will stop if it's not in scene 2
Unsure how the plugin does
But in plain obs it will stop
Alternatively, instead of binding to the play pause button, just use the mute button
Tho I'm not super sure the mute has an event
are you sure about that? will it actually get a media_stop event from OBS when switching away from the scene where it's in, when it's not also on the target scene? I mean, real media sources also can continue playing in the background if you configure them to do so
Huh, what setting lets you do that?
at least video loops
disabling this
No, I don't think that option in particular keeps it playing.
Maybe loops does but not that
too much theory anyway, I guess I will just try and see what media events I get in which cases
But if you're literally testing it in obs right now, correct me
the one thing I know about that option is that it's often a trap for people performance wise - like, they keep a few video loops around with that option disabled and then wonder why their CPU load is high from OBS, although they are not on a scene showing these media sources
because OBS in the background keeps on decoding them
unless I'm mistaken the media source stopping on being hidden is not a media control callback, but the source_deactivate callback being called
https://github.com/obsproject/obs-studio/blob/40562ff47e4404a494be83973c90ebe554efdcd6/plugins/obs-ffmpeg/obs-ffmpeg-source.c#L734
No, the option you're talking about I believe is "close file when inactive"
meaning, unless you implemented a source_deactivate that also stops your source, it won't gets stopped on being hidden (switching scenes)
Restart playback is when you switch to a scene with that source, it will play. Without the option, it will remain stopped
which is what I want
nah, I am sure that's not the case
no, you want the source to still be possibly active when it's not on the current scene?
Media_stop will be called when it goes inactive as well.
you're sure? that seems redundant
been working with that option a lot, because I have like 20 cam background video loops that get activated based on a certain context - and when I want my CPU to melt I disable that optiion on all of them 😉
I'm kinda sure, since ive worked on a pr for media source regarding a media state
ouki
But ofc i may misremembering things
what's the point of stopping on source_deactivate then?
That's a general source signal
that the naming of this option is not really clear is exactly why I called it a trap, nobody is ever aware that disabling it effectively means it is always being decoded in the background (when loop is also active infinitely)
yeah, but the media source, specifically calls media_playback_stop inside its deactivate callback.
Why if media_stop gets also called on deactivate
yeah, and there you can see it depends on exactly that restart_on_activate option
that sneaky little...
:>
but that tells me that not doing it would mean the media state stays on play
which would be good for my case
because I want it to stay active (= in playing state) regardless of scene switches and whether it's in a scene or not
I only want it to stop when someone goes there and presses the stop button on it
I guess i did indeed misremember things. I guess what i was referring to is the media state going STOPPED
oh yeah, it goes to stopped
Now this option i will want to try later
but the callback itself shouldn't get called, which is what's important for yor's stuff
yep, that sounds good
and yee as far as I remember this causes the media source to keep playing
you started referring to yourself in the third person?
Why o why Pen
💜
the first signs of lunacy 😛
yup, just re-tested and it does indeed have the media source keep playing in the background
Dunno why I didn't learn that during the early stages of me OBSing
to be fair it is a sneaky one and not obvious from the description
seems to be fine, it keeps its playing state regardless of scene switches with my simple implementation where I just react to media_restart or media_play_pause for starting and media_stop for stopping (and then report the state for media_get_state)
I guess I can also report how long the relay has been active for media_get_time
not that it would be too important, but since it's just that easy to do
yeah, you deffo can use get_time to convey info
could even use it as an error reporting mechanic
these words are warming my misuser heart
Isn't get time only useful here if you have a long ass video
Or does loop make it all accumulated?
well, useful is relative 😄
this is my own source, not a media source, I don't have a loop option - it's not even a real media source anyway, it's not playing shit 😉
it's just relaying A/V data using named pipe or network
and now the play/stop buttons just start/stop the relay
get_time is the current playing time, and unless I'm mistaken, it basically gets called every UI tick to display current time in the UI, which means that in this case yeah you can use it to display info
seems to be called simply every second here
could also use get_duration but I'm unsure how often that one gets called, might be just on media start
ignore the other debug stuff, but you can see both get_time and get_duration are simply called every second
Can i say something absolutely unrelated
the whole plugin is an alternative to NDI or Teleport, yes - but in addition I also have a relay that can be added independently
oh yee then you could probs use one to display running time and the other for error reporting
no I'm the thought police and you can't
it only takes a number, so only for an error code - I guess the log is more suitable for that then 😛
Perfect, I can do illegal stuff
lmao
hehe
yee but you can easily use smth like HTML error code for quick and easy status report
See in vmix, a List input (basically vlc source) has a dock showing the duration of each video in the list. And there's a currently playing timestamp just like in obs, except in vmix there's three. The current time in the file, the duration of the file, and the remaining time in the whole list. I was wondering if there's somehow a way we can show the total time remaining for the whole list in obs
I guess not, without modifying the built in source toolbar
yeah, not with the current API
So only option is a dock
so a custom dock only
Ah yes
dock
🦆 ?
🐳?
anyway, gotta go to sleep now, I think I can consider what I have a working PoC already, later all I have to do is combine it with the already existing start/stop logic for the actual relay and persist the enabled-state in the properties
take care sleep well
thanks a lot again ❤️
You're welcome for me disturbing this conversation
I can have a go at converting the shadertoy shader for obs-shaderfilter and tell you the steps I did
The plot thickens for obs-ndi having some users reporting:
QWidget: Must construct a QApplication before a QWidget
From a user's --verbose OBS log:
...
info: Qt Version: 5.15.10 (runtime), 5.15.10 (compiled)
...
info: [obs-ndi] obs_module_load: Qt version (compile-time): 6.2.4 | Qt version (run-time): 6.4.2
...
Their OBS 29.1.3 is compiled and running under Qt5.
obs-ndi is compiled and running under Qt6.
What the heck?
linux?
Yes
ubuntu 20.04 is still running under qt 5
info: Platform: Wayland
info: CPU Name: AMD Ryzen 7 3700X 8-Core Processor
info: CPU Speed: 3593.215MHz
info: Physical Cores: 5, Logical Cores: 5
info: Physical Memory: 9898MB Total, 6079MB Free
info: Kernel Version: Linux 6.5.0-10-generic
info: Distribution: "Ubuntu" "23.10"
info: Desktop Environment: ubuntu:GNOME (ubuntu)
info: Session Type: wayland
info: Qt Version: 5.15.10 (runtime), 5.15.10 (compiled)
ah I might know, gimme 5 to check
Can the user force update to Qt6 w/ little problems?
No
yeah that's the snap install
it's generally broken, I wouldn't care too much about supporting it
But note that 20.04 and Qt5 support is dropped as soon as 30 is out.
but it says 23.10?
oh wait no am wrong, mb
User says:
Desktop: GNOME 45.0 wm: Mutter
OS: Ubuntu 23.10 x86_64
Kernel: 6.5.0-10-generic
I have several users reporting the problem.
Problem is because of Snap installs?
Not sure
no, I was mistaken that's not the snap
I don't how Ubuntu build their OBS deb package, but if they keep using Qt5 to build it. This may be the issue.
what's the version reported by the log?
yeah, 29.1.3.1-2 should be ubuntu's own package
And we will began to provide PPA for 23.10 only as of 30 (because of some build issue with 29 on 23.10).
info: OBS 29.1.3.1-2 (linux)
so as tytan said, probs ubuntu compile their own with qt 5
Surprised that even compiles...I thought Qt6 was a req since OBS 28
No, it is recommended and the default for 28 and later (it can fallback to Qt5 while building). For 30 it becomes required.
actually all 29 and 28 have had 20.04 official releases compiled with qt 5
ok...it is making sense now. Basically ask them to only install OBS 29.1.3 from https://github.com/obsproject/obs-studio/releases/tag/29.1.3 ?
@dense perch until 30.0 gets released and the ppa updates, they should be able to grab the mantic beta package and run that
No, those are 22.04 builds only.
nah 29.1.3 doesn't have a package for 23.10
they need the obs-studio_30.0.0.rc2-0obsproject1.mantic_amd64.deb from https://github.com/obsproject/obs-studio/releases/tag/30.0.0-rc2
(or later RC if there are later RC)
thanks all
Or a little better use the unstable PPA for OBS beta/rc.
oh yee
would flatpak 29.1.3 work on 23.10?
Flatpak is distro agnostic, Applications use their own runtime.
IIRC, the issue is that the NDI plugin on Flatpak can't be a thing because of how NDI is licensed (disallow redistribute).
Quite sure it's all distro releases fyi, including OBS 29.1.3 for Ubuntu 24.04 https://packages.ubuntu.com/noble/obs-studio. You can tell because they depend on the qt5 packages
again, thanks all. reasons like these are why mortals like me stick mostly to MacOS & Winblows.
nah I'm running 29.1.3 on 22.04 and it's compiled with qt 6
and it's accepting qt6 plugins
I run 22.04 and install and load and obs-ndi just fine
The obvious question, PPA in use ?
that's the official stable ppa
Yes, we build with Qt6, but Ubuntu themselves seems to not.
oooh you meant ubuntu's own build
yeah, mb, when I said "official releases" there I meant obs' official, not buntu's official
Ubuntu Store's official release of OBS 29.1.3 says "(unofficial)" 🙂
Ah right, yeah 20.04 did require Qt 5. Which is the reason why we still supported Qt 5 in code, and why it now got dropped with 30.0 https://github.com/obsproject/obs-studio/discussions/9055
yee
got the seascape shader from shadertoy working on both hlsl and glsl:
https://github.com/exeldro/obs-shaderfilter/blob/master/data/examples/seascape.shader
I edited my resource description https://obsproject.com/forum/resources/siilicam-obs.1817/ and now it says awaiting approval before displayed publicly. So if I edit the resource it will go to the approval thing right? but if I post an update it won't?
Sir, you are a legend!
I agree. Exeldro is kinda S tier
As for me, i have editedy resource a few times, never saw it go into approval
wtf so I pressed probably some wrong button
Seems like there's such a bug
Or that there's some factor that only someone knows
Perhaps how long since the resource was approved, or download count
aaah just my luck ill add it here so perhaps some admin will see and help me
I'm slowly wading through your modifications and mapping them to the original to understand: I see you didn't use a #define to replace vec2 with float2 instead literally string-replacing throughout the file, whereas there's an #ifndef OPENGL at the top with some replacements. Does this mean that OBS never uses vec2 (which seems to be OpenGL??) or has its own definition of it?
It looks like yes? (Bear with me, this is my first time braving the obs source code)
libobs-d3d11/d3d11-shader.cpp: * uniform float2 test1;
libobs-d3d11/d3d11-subsystem.cpp:float2 main(VertInOut vert_in) : TARGET \
libobs-d3d11/d3d11-subsystem.cpp: return float2(1.0, 1.0); \
the OBS shader compiler converts float2 to vec2 when compiling the shader for opengl
I gotcha, thank you
afaik, admins see everything that's awaiting approval, so you just have to wait till it gets reviewed
yeah but its actually already approved and it bugged, and the CodeYans link showed that I would have to do a new resource or something
In the original's map() it calls sea_octave() (which looks identical in yours, really) thus
d += sea_octave((uv-SEA_TIME)*freq,choppy);```
and you tweak this slightly rather than just passing `SEA_TIME` (which again to my eye looks identical in both) you pack it into a two-pronged `float2` and it's happy. I concede, it's been many years since my uni class in linear algebra, so maybe this is obvious to others 😅 but is it something you can explain?
``` d = sea_octave((uv+float2(st,st))*freq,choppy);
d += sea_octave((uv-float2(st,st))*freq,choppy);```
See: `float2(st,st)` where `st` is `SEA_TIME` which in both cases is a `float`
SEA_TIME is a float, sea_octave expects a float2 and I got an invalid type error so I made sure it was a float2 and split it up into multiple lines to find out what was causing the error
Weird. (Is it weird?) uv is a vec2 and multipled (uv+st)*freq I would expect that to be a vec2... but was st being only a float discarding data in OBS whereas on the Shadertoy site it was multipled across both? (Maybe I'm misreading it.)
Just trying to understand if this is a bug in the original vs. something particular to OBS
Not sure it was the bug, easiest way would be to try and convert it back step by step
is there plug-in that enable image if open windows. For example I play video player obs detect it and show it so I want to auto enable image like replay.png & off image when I close video player windows so obs also do to image
vec2(a)*float(b) should be the same as vec2(a)*vec2(b,b)
Right, okay. And yeah, that's fair enough. Thanks for smashing your face into this for me haha. I'm learning a LOT reading through your changes
did you get to the replace the matrix * with the mul fuction yet?
...no haha 🙈 let me skip to that while you're here then haha
oh I'm sitting right next to it; you mean this change in the map() function?
uv *= octave_m;
->
uv = mul(uv, octave_m);
this sounds like something the advanced scene switcher plugin could do
Is this a case where the *= operator just doesn't play that way in OBS's shader handling? So the mul() function is the way to go?
yes, if you want it working on both opengl and directx
I see you added CAMERA_TURN_SPEED and CAMERA_SPEED was this just to let there be sliders to modify them? (and replace the iMouse stuff that wouldn't really work in OBS?)
yes
I disabled AA by default, because it is an inefficient blur, you better use the composite blur plugin for that
Yes! I saw that, that's smart, thank you.
Maybe my last question for a while haha (it looks like basic stuff): what is VertData and TARGET here?
o.g.
void mainImage( out vec4 fragColor, in vec2 fragCoord ) {
->
float4 mainImage(VertData v_in) : TARGET
Seems like TARGET must direct the return where it needs to go? (Maybe that's a part of the obs-shaderfilter-plugin and not core OBS?) and VertData what's in that / where is it defined?
(I see that mainImage gets a return-type in your conversion rather than leveraging the out vehicle)
struct VertData { float4 pos : POSITION; float2 uv : TEXCOORD0; };
I see it now (looking in obs-shaderfilter.c)
Hey Exeldro, while we're here talking about shaders, I got a question for you. You know how stingers have a split image where it's basically the main image on one half and monochrome alpha (sort of) on the other half?
Would it be possible (I'm pretty sure it should be?) to write a shader (probably as part of a filter) to take a video in that format and convert the bottom half to actual alpha? Because that seems to me like maybe a good way to get hardware acceleration on videos with transparency -- user does a preprocessing step one time to create a video in that split format, and then it hardware decodes like any other video and the shader recombines the halves so there's proper alpha.
(One thing I don't know is if a filter can actually change the size of the frame it's working on, since if you did video on top and alpha on bottom, it'd need to take that at full res and output it as a video frame half as tall once the alpha was mixed back in)
(I may or may not have explained that well)
a shader file can not resize the source, that would need an other filter
Yeah, it'd probably need to be a shader wrapped in a filter to handle that part of it (and probably some user friendliness), assuming a filter can resize the source (can it?). And assuming a filter can, does the general idea at least seem sensical?
Mostly I ask because it seems like as long as transparent videos are effectively two different video streams that need to be decoded perfectly in sync, it's going to be really pretty difficult to have proper hardware decoding of them (not impossible, but probably not something that will get done in the forseeable future). And that seemed like maybe a reasonable compromise between "proper hardware decoding w/ alpha" and "videos with alpha forever being software decoded".
(Will I actually DO anything with this knowledge? Probably not. I don't stream anymore, and Qt scares me. But it was an interesting thought and I wasn't sure if I was being stupid or not)
Okay, I'm trying to take what we all learned and convert another shadertoy to work in OBS and I'm gaslighting myself into reading this log line 😅 true or false, this line is telling me there's a type mismatch at (or just before) line 85 in the shader?
12:22:28.765: (null) (145, 2): Error creating shader: C:\util_streams\OBS-Studio-30.0-beta3-portable\bin\64bit\ (Pixel shader, technique Draw, pass 0)(85,11-45): error X3020: type mismatch
Reason I ask is there's nothing on line 85 in this shader's source file, line 84 doesn't have a character beyond column 39 (if that's what 11-45 in the parens means)
and well I'll just show you
NOTE that in this screenshot I put a carriage return in to push 84 to 85 and the log error didn't change between reloads, so that's why I'm here
pos is a float3, t is just float t = 0.1;
Maybe I need to make some tea 🙃
the error line numbers in the log file are incorrect
Okay, that is what I was wondering. Is there a way to map them to the source? Or is it not really tenable post parser?
I can start commenting stuff out to track it down, but it's good to know I'm not looney. (Okay, maybe I am, but not in this case.)
I made a pull request to get line numbers better:
https://github.com/obsproject/obs-studio/pull/9831
someone here use the overlay on? i have 1 issue with it help pls
I'm going to avoid the temptation to build this right now 😅 and remain excited it's coming, thank you
How can i get a blur filter plugin
Composite Blur Plugin : https://obsproject.com/forum/resources/composite-blur.1780/
Ashmanix Blur Filter : https://obsproject.com/forum/resources/ashmanix-blur-filter.1742/
FreeFX (free version of StreamFX) https://obsproject.com/forum/resources/freefx-streamfx-fork.1754/
How do I put the 3D chat plugin in obs?
do you have a link to the plugin?
yes
but I don't have the executable because it's not there, it's a folder, where do I put it for it to work?
i dont know. There is no plugin by that name on the OBS Resources forum, which is why I asked for a link to it
oh, StreamFX. Yeah, you have to sigh up for the devs Patreon to get the actual plugin. The folder you downloaded is the source code and needs to be compiled
try FreeFX instead, its a free fork of StreamFX
https://obsproject.com/forum/resources/freefx-streamfx-fork.1754/
and how do I install it?
By downloading the installer from the FreeFX GitHub page
and running the installer app
welcome
thank you @weak escarp
is there a live support section
i am willing to pay for support i need help with obs and stream deck
live support is free and in the channels linked in #support-portal
it is all handled in chat by users
how do i put little videos together into a big video?
!editors Use an editor 👇
For a list of recommended post-production software, including video editors, see our list of Post Production Tools
thanks
Does OBS approve Tools and than delete them? My Program was approved and listed as an tool for several days. Now it says it is Deleted. I dont understand why, and I did not get any message
forum posts that haven't been approved just show as deleted
nothing has been actually deleted.
If you pushed an update that triggered the need for an approval again, it puts the resource back in pending approval.
It's an annoying quirk of the forum software we can't really do anything about, unfortunately.
I also see that you submitted the same resource twice
Hello, idk if this is the right place to ask but I thought I'd try cause I couldn't find my answer anywhere else, but, does someone know and can help me to find this key overlay for NohBoard please🙏 ? I tried searching online for it but did not find anything useful
Probably just a custom layout, they're not that hard to make.
I figured as much, but I've seen multiple people use it so I thought there might be a link for it somewhere that I just aren't able to find, thank you 🙏
probably easier to just ask one of the people that use it then
Best bet to ask them directly for it
Hi there, I am a sim racer who races on triple monitors, streaming or recording using all three monitors is not a good idea since it stretches the video to 48:9 and only recording the center screen can make the viewers miss out on a lot. Hence I had an idea whether I could use a head tracker to pan the camera left and right according to the head tracker, basically a rotation of a smaller source on a horizontally larger source. I tried talking to someone in the Tobii Eye Tracker discord, they told me to try asking in the OBS discord wether this plugin could be made possible or if it already exists, Thanks a lot in advance!
Becouse I thought it got delete, I made a new post. I Updates the old one, that mist have trigger ed it. Thank you for the update
Im scratching the ol web-midi post again. Anyone aware of any movement in terms of OBS CEF supporting MIDI devices?
https://focusritedevelopmentteam.wordpress.com/2013/10/31/cross-platform-with-web-midi/
Could this sort of approach possibly provide a work around? (Or is there any other possible work around?)
Using Midi Devices to send inputs to OBS Browser Sources
Maybe write an app that monitors the Tobii and then uses OBS websocket to update the transform?
https://github.com/obsproject/obs-websocket/blob/master/docs/generated/protocol.md#setsceneitemtransform
Or a lua/python script that does similar inside of OBS?
Ooh my programming skills are a -1/10 😭
@hard jay Hey GregSaintJean. I'm the one who opened issue #9839 on github. Here's the zip file for the scenes. They are in json format. I should mention that while I was trying to get these json files, OBS kept crashing over and over. I had to make one scene collection then duplicate it to get OBS in a state where after the duplication was done, it didn't exit. But then, when I tried to switch it did. Even when I tried to delete the collection, it would exit instead of successfully switching and staying open.
Thanks! I'll probably take a closer look tomorrow.
In the meantime, doing the test without the third-party plugins is best next steps.
Okay
- Windows 10 22H2 (OK)
- No Output Session
Intel Core i5-4590 @ 3.30GHz - Possible bottleneck / Radeon 550 - Possible bottleneck
hola por que me sale en obs la imagen asi
- Windows 10 22H2 (OK)
Intel Core i5-4590 @ 3.30GHz - Possible bottleneck / Radeon 550 - Possible bottleneck
My source clone has downloaded, but still won’t show up in the sources list
that would mean it is not installed, there is no attempt to load it in the log.
the screenshot of the shortcut properties you showed, that's the shortcut you use to open obs, right?
As an update, when I re-installed OBS barebones (without plug-ins) and switch the scene collections, it does not crash/exit. So yeah, it does seem like it's one of the plug-ins I installed.
I can close the issue and just figure out on my own which plug-in it is. Thanks @hard jay
Sure, that's fine.
i fixed it
I'm just starting out with the Avanced Scene Switcher and I have one particular unresolved issue:
When the system goes to a break, it plays the files in a folder using VLC Media Source. Now I am trying to find a way to make it play just ONE file (a station ID) and then go back to the main program. Currently, it plays through the whole folder and then returns to main program.
Currently I'm experimenting with
And...Media...Any Media Source on... --Break--..state is Playing...Time remaining is shorter than... 1 second
However, it is still playing all the videos in the folder instead of switching back after the playing ID clip.
Suggestions for making it play ONE random ID and return?
Show the whole macro, because you're using an AND condition
Is there a way to extract the text of the macro?
!screenshot
no, but there is a way to take a better screenshot
How to take a screenshot - http://www.take-a-screenshot.org/
EYE control OBS with your Game is now a free Tool.
Advanced scene switcher does something similar, but is harder to Setup and impact the CPU more. Maybe your interested: https://obsproject.com/forum/resources/eye-control-obs-with-the-game.1826/
Do you know anyone who could make this possible, maybe if I were to offer them a little tip
does this solve the problem of the person above? tho they're using tobii, and based on the capitalization, EYE is a different thing?
I know, but when I use the snip tool, OBS disappears.
You have to disable "Hide OBS from screen capture" in Settings > General of OBS
Nay, sorry. :/
in adv-ss, enable the setting that highlights conditions that become true
that will help you debug whether the all the conditions actually become true
Its not related.
okay thanks
Its a Tool to control OBS with your Game. Like losing life Triggers OBS Sources
@dense perch with obs-ndi 4.12.0 released, would you be willing to come up with a bullet point-list of things the template is lacking in terms of documentation or clarification?
i'm not the one you want answers from but if i may add, i'd appreciate instructions for getting the hashes for selecting a version. like, it's not clear where to get the sha256 or from what files.
that was my first question when i tried to use the new template before. and from what i've seen even pvhaus asked that
I have opened a pull request to update the plugin template towards OBS 30.0.0
I can look into that
@rancid fossil would the plan/goal be to also bring it up to OBS 30 build scripts (where appropriate)?
You mean something like this?
https://github.com/obs-ndi/obs-ndi/blob/master/buildspec.json#L3-L14
In a perfect world that could just be in the readme...but who reads those? 🙂
Yes, that's very informative, visible, and has examples
I mean, could be in both. While you probably meant that in jest, I believe many technical people actually read those. Not putting info where it should be and assuming people don't read them anyway is what makes docs bad. Better docs = less people asking. And we aren't able to quantify how many do not ask because there's enough info, because they don't need to ask.
Hey everyone!
Just trying to startup my first plugin development environment... modifying the buildspec.json file, how can I target OBS 30.0.0 - I'm on a Windows dev box, but cannot find any Windows checksums - so CMake is always going to fail, it seems.
OBS-Studio-30.0.0-Ubuntu-x86_64-dbsym.ddeb: efc3f5f228b424eb65fc8f8501ff61227ba50f049f0ea03215fad7ded7af3084
OBS-Studio-30.0.0-Ubuntu-x86_64.deb: 00d99f195b08a2d30d624b6e2203060bed69042b6a7f91cdc001e0733d573dfc
OBS-Studio-30.0.0-macOS-Apple-dSYMs.tar.xz: f21b1ca6c4d2734feb38125aeab7fe66320f1ea4ea3827e3788b65b10e9c7e26
OBS-Studio-30.0.0-macOS-Apple.dmg: a4bd98bc5bf224ef545f264188969a3d39a3e5e275686b8447e8ad7cc704aafc
OBS-Studio-30.0.0-macOS-Intel-dSYMs.tar.xz: 676b1b5b9f1246d2ce8b46d0dcb756c5e0e1b90ecc8f2a67acded991ebd525c0
OBS-Studio-30.0.0-macOS-Intel.dmg: 367b12299a7c226b8017108bd251093af50dfe2d86a6b0aaa54180a1da63f657
Checksums for this release are above, which should I use?
none of those
those are the checksums for the compiled release
you need the source code checksums
Mac/linux would be the .tar.gz file, Windows the .zip
lolz! That is precisely what the immediately preceeding conversation before yours was about!
Evidence that the documentation needs a little improvement? 🙂
I don't think we really need evidence, we need people willing to write it, heh
v1 text that I have in the plugin I work on (obs-ndi) that I need to make better:
https://github.com/obs-ndi/obs-ndi/blob/master/buildspec.json#L3-L14
"note": [
"To update",
"1. Download obs-studio release version source for macos .tar.gz & windows-x64 .zip.",
" Example for https://github.com/obsproject/obs-studio/releases/tag/29.1.3 commit c58e511",
" https://github.com/obsproject/obs-studio/archive/refs/tags/29.1.3.tar.gz",
" https://github.com/obsproject/obs-studio/archive/refs/tags/29.1.3.zip",
"2. sha256sum the macos .tar.gz & windows-x64 .zip",
"3. Update the obs-studio version and hashes below",
"4. Browse the obs-studio code buildspec.json **at that version commit** and copy the `prebuilt` and `qt6` versions and hashes to below",
" Example https://github.com/obsproject/obs-studio/blob/c58e511/buildspec.json",
"5. Update libobs.patch following the instructions in ./cmake/common/buildspec_common.cmake ~ line 76-91"
],
Probably better to have dedicated documentation I would expect.
It's been on The List™ for ages, nobody has had the time to sit down and do it :(
(ignore my step #5, which was a solution @ruby lichen gave me for missing includes that are not exported by libobs)
that hopefully isn't needed anymore with OBS 30.0.0?
or are there still headers missing?
I just released obs-ndi yesterday compiled to 29.1.3 and haven't braved an update yet using 30.
Which begs a question: If a plugin compiles to obslib 30 and someone installs it in OBS 29 [because they have some reason to not upgrade to 30], will the v30 based plugin work in v29 OBS?
It might, but that's a bit luck based and not really advised
when for example obs_source_info gets new attributes, an older OBS will reject the source
also if you use API's from the newer version that don't exist in the old one, bad things™️ will happen
I have found myself very tempted (by the dark side) to add basic Telemetry into the plugin to gather specs on how many users are running on what platforms and what OBS versions and what QT versions, etc.
That issue I finally understood a few days ago about Ubuntu redistributing OBS compiled to use Qt5 when my plugin requires Qt6 was mind blowingly [unnecessarily necessary I felt] complex.
That is probably also a reason why many people may knowingly or unknowingly be still running old OBS versions (or old redists that their source has not been updated to compile w/ Qt6) yet the latest plugin that they "need" and the plugin breaking/crashing.
Understood v30 helps to solve a lot of this.
Yeah Ubuntu’s default repositories shipping new OBS with Qt 5 is quite weird
Luckily OBS 30 indeed solves this, as they will probably notice when trying to compile
Apologies for the repetition! I've since gotten past that by manually installing the sources and using the "detected" hashes... either way - I'm still running into trouble with the "Configure OBS Sources (x64)" CMake task...
1> [CMake] CMake Error at C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.26/Modules/FindPkgConfig.cmake:123 (set):
1> [CMake] Syntax error in cmake code at
1> [CMake]
1> [CMake] C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.26/Modules/FindPkgConfig.cmake:123
1> [CMake]
1> [CMake] when parsing string
1> [CMake]
1> [CMake] C:\Users\maxpl\source\repos\relay_helper\.deps\obs-deps-2023-11-03-x64/lib
1> [CMake]
1> [CMake] Invalid character escape '\U'.
1> [CMake] Call Stack (most recent call first):
Anybody have any idea...?
Possibly a CRLF problem?
I'm gonna be that noob and ask how I would possibly look into that?
I'm not all that clued up on C++ plugin development, just need a hand getting started - once I can actually start writing some code I'll manage myself but
Is there are way to have OBS continuously switch between the certain scenes in a loop? It does not look like the auto or advance switcher can do it.
Hey you guys.
I'm having an issue with the NDI plugin. Before today, I was on OBS Studio 27.2.4 & NDI 4.9 (I think?).
I'd tried to update to OBS 29 earlier this year, as well as NDI 4.11. However, when I did that, my NDI connection became very stuttery for some reason, even though I hadn't changed any settings.
Today, I asked in #windows-support if this issue was still a thing and some folks got me to try OBS 30 & NDI 4.12. The issue from earlier this year is still present
I'm just super confused. I'm missing out on a lot of features in newer OBS versions due to NDI not running smoothly on those and idk what settings to change
If anyone can help, I'd greatly appreciate it
if current scene = scene 1 > wait (however long) > switch to scene 2
if current scene = scene 2 > wait (however long) > switch to scene 1
I want this to switch between 4 scenes for 10 hours
ok, the logic of what i have just written out can be applied to that as well.
Okay. what do I use auto or advanced?
The problem with this is it is looking for scene changes and there are none to very little.
Pain..
yup
Yeah I am rtying to set up an uto switch between 1 or 2 cameras, and maybe 1 or 2 slides and just loop for 10 hours. I can't figure why it has to use logic to detect changes in the scene when there really isn't any. I can't even predict if there will be changes.

