#plugins-and-tools

1 messages Β· Page 99 of 1

silk bison
#

more specifically for the properties of a source that I'm providing

wary escarp
#

what exactly does the properties api not expose?

silk bison
#

One thing I want is a UI element that is a list that is sort of like the UI list that appears in the settings where you select loaded plugins

#

but the properties API as far as I can tell only has combo box lists

#

I also would like to have nested popups if possible

#

such as an "are you sure"

wary escarp
#

i see

#

currently thinking of a source with custom properties, I'm sure theres one

#

just cant remember which

silk bison
#

I guess another route would be for me to try to expose more UI elements through the properties API

#

but I'm new to OBS development

#

so I suspect that's a more involved thing

sick yarrow
#

Does anobody know of a way or plugin to allow the webcam (single) used by multiple applications (here 2 OBS applications). I've heard its a limitation for Windows, but there is programs out there that prevents this. But there must be other ways

wary escarp
#

@silk bison i tried to find it and can't, sorry

wary escarp
silk bison
#

thats okay, thats for trying

#

I will search around a bit more

#

its ultimately not the end of the world if I can't have a nicer UI, it's just... very clunky

sick yarrow
#

Currently the way to do this is having two applications of OBS running, one recording and delaying that recording to the stream. Its just not really efficient though

olive wolf
#

hey guys anyone here for help ?

#

i have already updated my gpu driver and also my windows

#

if anyone please know how to solve this !?

oblique yewBOT
# olive wolf

A current log file is required to help fix your issue. Please post a link to your current log file.

  • In OBS select Help > Log Files > Upload Current Log File.
  • Click Copy URL and then paste the link here.
olive wolf
oblique yewBOT
# olive wolf https://obsproject.com/logs/KiQgQDgzhgRq1oCy
πŸ›‘ Critical
  • Hardware-accelerated GPU Scheduler
⚠️ Warning
  • Mismatched Sample Rates
  • Non-Standard Aspect Ratio
  • Capture Interference
ℹ️ Info
  • Windows 10 2004 (OK)
  • No Output Session
Hardware Check

Intel Core i5-2500 @ 3.30GHz - Below cpu encoding requirements / Radeon R7 + R7 200 Dual - Possible bottleneck

olive wolf
#

what should i do now ?

#

@oblique yew

dark sapphire
olive wolf
#

what u mean

#

@dark sapphire

dark sapphire
olive wolf
dark sapphire
#

...

#

not what I mean

olive wolf
oblique yewBOT
# olive wolf https://obsproject.com/logs/KiQgQDgzhgRq1oCy
πŸ›‘ Critical
  • Hardware-accelerated GPU Scheduler
⚠️ Warning
  • Mismatched Sample Rates
  • Non-Standard Aspect Ratio
  • Capture Interference
ℹ️ Info
  • Windows 10 2004 (OK)
  • No Output Session
Hardware Check

Intel Core i5-2500 @ 3.30GHz - Below cpu encoding requirements / Radeon R7 + R7 200 Dual - Possible bottleneck

olive wolf
#

thiss ?

dark sapphire
#

that's the same log file link as before

#
  1. make the error appear
#
  1. click Help -> Log Files -> Upload Current Log
olive wolf
#

okay wait

dark sapphire
#
  1. post the new link
olive wolf
oblique yewBOT
# olive wolf https://obsproject.com/logs/RN886bP1bWrXwKoc
πŸ›‘ Critical
  • Hardware-accelerated GPU Scheduler
⚠️ Warning
  • Mismatched Sample Rates
  • Non-Standard Aspect Ratio
ℹ️ Info
  • Windows 10 2004 (OK)
  • No Output Session
Hardware Check

Intel Core i5-2500 @ 3.30GHz - Below cpu encoding requirements / Radeon R7 + R7 200 Dual - Possible bottleneck

olive wolf
#

the new link

dark sapphire
#
04:06:27.123: [AMF] <Id: 3> Unable to set converter transfer characteristic, error AMF_NOT_FOUND (code 11)
04:06:28.998: [AMF] <Id: 3> Unable to initialize converter, error AMF_OPENCL_FAILED (code 19)

Looks like your encoder is misconfigured or incompatible. Post that log in #windows-support and ask your question again

olive wolf
#

ahh okay thanks broo ❀️

hollow verge
#

Hey, does anyone know anything about background-images not showing in browser sources? I get it to load properly when I load it into a browser, but no background-image textures load into OBS when I load my browser source

mortal harbor
#

Hi, I tried to stream my oculus quest 2 using ndi capture hx to obs. However, I got the picture to show and the sound to be heard to obs but when I tried to record the gameplay then the game sound was not heard and the picture was cut off pretty badly. Are there any suggestions on how I can make the sound heard?

wet jolt
#

Hi all! I'm trying to connect Deckboard with OBS Studio but isn't working. I install the websocket, but nothing happens, can you guys help me?

analog ruin
oblique yewBOT
karmic solar
oblique yewBOT
oblique yewBOT
# karmic solar https://obsproject.com/logs/P1FDAZuWVP0RS5tx

Record to FLV or MKV. If you record to MP4 and the recording is interrupted, the file will be corrupted and unrecoverable. If you require MP4 files for some other purpose like editing, remux them afterwards by selecting File > Remux Recordings in the main OBS Studio window.

wicked ivy
#

Does anyone have any guidance on triggering a hotkey by name via obs-websocket when the hotkey has a space in the name? For example, having trouble getting a Downstream Keyer hotkey working with Touch Portal's trigger by name feature. The name in my scene collection's json file is "Show on DSK 1". I see someone else has the same issue - https://obsproject.com/forum/threads/downstream-keyer.142247/page-2#post-529149

wary escarp
#

@still pond and don't spam every channel with it, #tech-talk would've been enough

hollow verge
analog ruin
#

!remotedebugging

oblique yewBOT
#

To expose Chrome Dev Tools for your browser sources, add --remote-debugging-port=1234 to your OBS Studio shortcut (where 1234 is your preferred port number) and navigate to http://localhost:1234/ in Chrome to connect to the session

hollow verge
analog ruin
#

CEF is not chrome πŸ™‚

stark narwhal
#

Also our CEF is older on Windows

silk bison
#

move-transition seems to cause a crash [almost] every time I close OBS. has anyone experienced this?

#

stack is: move_source_tick -> update_item_transform -> signal_handler_signal - > pthread_mutex_unlock

#

wondering if some data the handler is relying on is getting destroyed before it runs, and sometimes stuff just happens to work anyway

#

it's mostly just an annoyance since it only happens on shutdown, but I imagine that if I'm experiencing it, probably other people are too. I don't think I can reduce it to an easy repro, unfortunately

white dune
#

race conditions are always fun to debug

silk bison
#

yeah. though it might even just be a single-thread issue, where something gets "destroyed" and the memory just happens to not get trampled before being read

#

(sometimes)

#

are each of the plugins isolated? if move-transition crashes, does the whole process for all other plugins also crash? I guess that's my bigger concern

#

as-in, can it effectively leave some other sources/filters partially-saved or something

white dune
#

there is only one obs process

#

maybe CEF creates extra processes, but that's nothing to do with libobs

silk bison
#

yeah, so I guess that's the only reason i even care that it crashes on close

#

i guess another possibility is the mutex handle is getting trampled over

#

sometime between the lock and the unlock

white dune
#

could be a double free issue

#

i remember running into double free issues when working on my plugin

slim lily
#

Hey everyone, is there a plugin specialized for effects that have facial recognition? Like Instagram effects.

hollow stirrup
#

I’m interested in implementing the idea. Maybe it consists of face detection, face landmark detection, and putting textures on the face.

mild abyss
#

Problem with gstreamer plugin : Instead of showing in the OBS display window, a new window opens which displays the video feed and hence not able to stream through OBS. I am using this command to start pipeline from Rpi "raspivid -t 0 -w 1280 -h 720 -hf -vf -fps 30 -b 2500000 -o - | gst-launch-1.0 -v fdsrc ! h264parse config-interval=1 ! rtph264pay ! udpsink host = xx.xx.xx.xx port= xxxx" and using this one in the OBS-gstreamer plugin "gst-launch-1.0 udpsrc port=xxxx ! application/x-rtp,encoding-name=H264,payload=96 ! rtph264depay ! avdec_h264 ! videoconvert ! autovideosink".

slim lily
slim lily
lapis dust
#

After I uninstalled old version of Source Record to install the new version, SR is not showing up on my filters! Any idea why?

#

I am running OBS version 26

weak escarp
lapis dust
#

Thanks

harsh topaz
weak escarp
harsh topaz
#

I simply tried on whatever build !nightly was 2 days ago.

I didn't check the log file, I just couldn't see the plugin at all (the 6 others loaded fine). I can try and look, hold up.

#
14:06:44.493: [Source Copy] loaded version 0.1.3
14:06:44.513: [Source Dock] loaded version 0.1.1
14:06:44.531: [Source Record] loaded version 0.2.5
#

Strange.. hmm

hollow stirrup
harsh topaz
#

No it works 27.0.1. Well, partially, we patiently waiting for 27.1 to allow some more functionality πŸ™‚

mortal harbor
#

i dunno where i put this, but i do need help,
so i downloaded this .zip file called "obs-vintage-filter''
but i dunno how to use it, so if someone can help me, please dm me or get in a vc or call with me!!!

mortal harbor
#

i do not have a plugin folder

vagrant inlet
#

Hi Team!

do you have any plugin when starting live, opening a post on twitter?

brazen oyster
#

Has anyone heard of inStreamly?
It allows streamers to show images in between their streams (like once per hour for 5 seconds) with just a browser source URL.
It looks like https://app.instreamly.com/campaigns?u=12345&t=ijcdu7od5hrgd3t5l2nhiq and only requirement from the streamer to use it is to put that URL as a browser source and lock it as the topmost layer. No setup or any other manual intervention needed from the streamer.

I want to know how is that possible? The URL might be sending the img to OBS I believe, but how does that URL tells OBS that it needs to be shown for 10 seconds every hour?
Reference 2 min video (https://www.youtube.com/watch?v=_uGJ7SqltgE)

hard jay
#

Because there's a server sending information to the browser page.

#

Same way that alerts and any other number of stream overlay stuff works.

#

Pretty common concept.

random nexus
oblique yewBOT
feral rain
#

Hello, i have a problem with my streamlabs chatbot im using. My soundcommands are working with my chatbot and im hearing the sounds, but i send the commands to obs and twitch chat and my stream are not heraing them. what is wrong ?

hard jay
#

You'll need to contact Streamlabs for assistance with their products.

feral rain
#

i talked with streamlabs, but with there products iss it working. i hear the sounds by the chatbot, but live in obs not ?

hard jay
#

You'll still need to work with them to ensure your OBS is configured to use their products, we don't support them here. Sorry!

feral rain
#

Ok, i will talk with them soon, Thank you. πŸ™‚

vagrant inlet
#

@hard jay , do you have any plugin when starting live, opening a post on twitter?

civic crest
#

^^ perfect use for something like the elgato streamdeck

lilac sleet
#

Is there any plugins for a timer for Mac like a countdown timer?

idle dagger
#

i have a problem always that i transmit after a time my transmission stops, i leave an announcement that has been disconnected

dark sapphire
remote sorrel
swift dust
#

But it looks like this might be an issue with the repo itself

#

Did you open an issue there?

supple fossil
#

Stijn, if you've the background required to compile C code, you've a debugger, I'm assuming, yes? You'll need to step through your problem.

#

OK, let me back up. I've an MS in CS. I've done precisely f-all with actual programming in the last 5 years. What is your experience with programming?

#

While I applaud your passion to solve the issue with the slide show in OBS, it kinda seems like you're disassembling a sub-compact car and trying to turbocharge it so it can haul more cargo, when the better solution would probably be to go and buy a truck.

hollow magnet
#

When I use the Source Record plugin, the regular recordings have audio. The replay buffer recordings do not have audio. Any fixes? Thanks.

remote sorrel
#

I only have experience in web development so excuse my unknowingness

vapid charm
remote sorrel
#

Ford rangers are sexy af though

vapid charm
#

Newer ones yes.

#

They are built like the f000's

remote sorrel
#

Currently just removing max_mem_usage in plugins/image-source/obs-slideshow.c and see what that does

supple fossil
#

OK, which compiler/IDE were you using? Do you know how to program in C?

remote sorrel
#

After this I give up

#

No, I have no experience. Using VS 2019

supple fossil
#

Cuz otherwise you're gonna need to learn Japanese to turbo that Honda you want

remote sorrel
#

Sounds like a nice learning curve

supple fossil
#

hai, so desu ne

remote sorrel
#

f me it worked

supple fossil
#

LUL

remote sorrel
#

I can add unlimited images

supple fossil
#

I am very surprised. But congrats

remote sorrel
#

well, untill my gpu freezes that is

#

Yeah me too

supple fossil
#

Yeah, I was gonna mention that

remote sorrel
#

Art of the bodge I guess

supple fossil
#

You may wanna just...ya know, add a few digits to that value instead

#

Rather than completely taking out the parking brake πŸ™‚

remote sorrel
#

Yeah, gonna do that

#

Big kudo's to https://github.com/an0ndev

All you have to do is follow the normal build guide for your system, except before running make, edit plugins/image-source/obs-slideshow.c.
If you want to remove the limit entirely, remove the lines starting with #DEFINE BYTES_TO_MBYTES and #DEFINE MAX_MEM_USAGE as well as the if and break statements that check the memory usage against the maximum (if (ss->mem_usage >= MAX_MEM_USAGE) break; in two places).
Alternately, if you'd like to keep but raise the limit, you can leave everything in place but raise the number of megabytes in the MAX_MEM_USAGE definition.

To keep your change present while being able to update the source and rebuild, just add your change to Git (git add plugins/image-source/obs-slideshow.c from the obs-studio directory) and make a commit out of the change (git commit -m "obs-slideshow: removal of limit on VRAM usage"). Now, to update the source and rebuild, you can just run git pull and go through the build instructions again, skipping the beginning part where you run git clone.

#

I'm off

supple fossil
#

Nice.

mortal harbor
#

how do i get the bongobs cat plugin

hollow stirrup
mortal harbor
mortal harbor
#

ive been trying to find a way on how to install the bongo cat into obs for a while now but it seems that obs studi doesnt have bin, data and obs plugin anymore

peak vector
#

it does and it works with OBS 27 (I used it myself)

#

make sure you have the correct folder

mortal harbor
#

ok which folder do i need to use?

hollow stirrup
mortal harbor
#

ok i will try

hollow stirrup
peak vector
#

click there

mortal harbor
#

oh

peak vector
#

then you will see the data and plugins folder

mortal harbor
#

ok thank u so much

hollow stirrup
#

Thank you, H4ndy. I've edited my guide page to have the red circle as H4ndy's picture.

lyric dock
#

Hey guys, was wondering if there was a plugin or a script I could download that would show/hide a media source depending on whether my game capture is active. Ive been looking for over an hour now. Thanks ❀️

swift dust
#

I can't find it on the OBS Plugin page, but I could also be searching wrong

#

Maybe someone else knows it

lyric dock
#

Thank you anyway

white dune
#

i doubt that such a thing is feasible, the game capture plugin doesn't expose this data to the rest of the program

#

at least without a PR such as 2659

hollow stirrup
#

I want to +1 for that PR.

#

It looks Ryan’s requests were resolved but still the status is changes requested.

deep current
#

Hello, everyone. Yesterday, I came up with how to make "tricky" blend modes between any sources, using ShaderFilter Plus and you get something like this.

hollow stirrup
#

I think you won’t loose width quality if you use a group that has double-size width.

deep current
ancient glade
#

finally a plugin that can capture audio directly from a app

daring plover
#

There's a github issue complaining it does not get audio from discord, despite the readme saying it doesn't work well with electron apps

brazen oyster
hard jay
#

On... How the internet works?

#

I don't have anything specific.

thick kestrel
#

Hi, I'm having trouble getting the Move Transition plugin to appear in my scene transition drop down menu.

#

in my log file, it says the dll was not loaded.

#

everything appears to be installed in the right place.

oblique yewBOT
thick kestrel
oblique yewBOT
# thick kestrel https://obsproject.com/logs/CcYp-s17FrHUqpBU

Log contains debug messages (browser/ftl/etc), for a filtered version click here

⚠️ Warning
  • Old Version
  • Mismatched Sample Rates
  • Multiple Game Capture
ℹ️ Info
  • Windows 10 20H2 (OK)
  • No Output Session
Hardware Check

Intel Core i7-4790K @ 4.00GHz - OK! / GeForce GTX 1070 Ti - OK!

thick kestrel
#

yes it's an old version of obs studio, but it's to be able to work with obs.live

wary escarp
#

I don't think move transition works with 26.1

thick kestrel
#

Oof.

wary escarp
#

Try updating OBS if possible

#

Yup, the log says OBS tries to load it but fails

thick kestrel
#

how might I solve mismatched sample rates?

wary escarp
#

Click on the "Solutions / Full Analysis" button, it should tell you

thick kestrel
#

thank you

steep tree
#

I'm trying to isolate my xbox party audio so I can use just game audio. Currently using xbox companion on my computer to run the party so it comes in via the destop audio. My audio is through a mic so I can turn my voice off the recording. Any suggestions?

spring elbow
#

@steep tree you might be able to achieve this with voicemeeter. send the game audio to one virtual input and the xbox companion to the other. you would have to route each one of those to individual voicemeeter outputs, and thusly bring them into OBS on separate tracks. not 100% but i've done similar

#

Kind of along those same lines, does anyone know if there's a plugin out there that would allow for audio sources to be mixed down to a "master fader" which could then be effected as a whole? For example, strapping a mastering limiter across your final broadcast feed. I'm currently doing this outside of the box with hardware and just feeding a single stereo mix to OBS but would love to be able to do it right within OBS. This would eliminate the need for separate audio moves between scenes on the hardware.

untold jay
#

@spring elbow i think obs studio music edition has something like this

white dune
#

i hope that's mergeable, because it would be a cool feature in general to have.

spring elbow
#

and also thanks @obtuse hingeyo. haha. didn't mean to exclude.

#

i'm a mess. you get what i'm trying to say.πŸ˜‚

rain field
#

Question: Is there a plug-in or filter that can bind a Text Source Object?

hollow stirrup
#

It's not a plugin but the Projector Window (obs-studio/UI/window-projector.cpp) has private text sources to show some labels.
A plugin obs-websocket has a mechanism to change the text property of text sources.
Is that something you are looking for?

narrow gale
#

im having ndi trouble. Is there where I cah ask those questions?

quasi garnet
#

Is there a way I can put scenes in a group and get them to change to random scenes and get them to change the same time as the beginning of the next song?

silk bison
#

Trying to register some hotkeys to be associated with one of my sources. I believe I should be using obs_hotkey_register_source, correct? I see that the "name" has to be unique, but what does it need to be unique with respect to? As-in globally unique with respect to all other registered hotkeys in the entire profile? Or just unique with respect to this specific source instance?

#

also, if I register a bunch of hotkeys with a source, and that source gets removed, do I need to unregister all of the hotkeys or does that happen automatically

hollow stirrup
silk bison
#

thanks

flint violet
#

I have this weird issue with the Plugin "Source Record". For some reason it does not record my game sounds, but does record everyone else's. So if I shoot a gun, nothing, but if someone in my group shoots then that is recorded.

If I record outside of the plugin, then everything is fine. So I am not sure what is going on. Anyone use that plugin to record?

#

Also does anyone know what the "different audio" and "audio track" above refers to?

civic crest
#

is there a way to use a newer/custom ffmpeg binary w/OBS for recording? i see how to call ffmpeg with specific arguments, but that still uses OBS' included ffmpeg. any way to call another one?

silk bison
#

does video_tick of a source run in a different thread from other callbacks?

brazen bone
ebon minnow
#

[PC] Hi. I need a filter that I can put on an audio source. That source should become quieter by a dB value as soon as the microphone is turned on. (I'm not talking about a compressor!).
If I mute the mic again, the source gets louder again. With attack and release time it would be A+ of course. πŸ™‚

Is that possible?

hard jay
wintry mauve
#

MS is supposedly working on a noninvasive per-process audio capture API that should be easier to maintain going forward though. DLL injection is a pain to deal with.

ashen thistle
#

-mute

white dune
#

i want to believe that claim.

fierce lynx
peak vector
#

@fierce lynx We do not have any "social" bot commands here, sorry

#

We use Dyno for moderation support only

harsh topaz
#

<@&715347355565817879>

brazen bone
hollow stirrup
#

I guess they are looking for a binary gain control rather than proportional to the volume of the sidechain.
If that's the case, how about making an audio source dedicated for the sidechain having a very large gain to make it clip. When the microphone is turned on, small noise will be expanded and cause the compressor to reduce the gain. However, even if speaking, the reduction won't change because the sidechain has already been clipped.

hollow stirrup
# silk bison does video_tick of a source run in a different thread from other callbacks?

The call back video_tick will be called from the graphics thread. The other call back video_render is usually called from the graphics thread as well but it could be called from another thread if taking screenshot from obs-websocket.
(I also followed the built-in screenshot code but I gave up to see how it works.)
Other call backs such as get_width and get_height could be called from several threads.

silk bison
#

ah. so is the expectation that people always assume differrent threads? my concern is accessing data associated wt my sources.

hollow stirrup
#

I actually have the same question. Most of them are exclusive by calling obs_enter_graphics before the call back is called but looks not everywhere.

silk bison
#

i wish this were a bit better documented. kind of important heh

stone tangle
#

Hi there, I need some help...I simply just want to update a text field inside a plugin inside OBS.

Here is my text field:
obs.obs_properties_add_text(props, "url", "XML PATH", obs.OBS_TEXT_DEFAULT)

I want to update the text inside of it but for the life of me can't...

#

Does anyone have some advice?

silk bison
#

however, if you do that programmatically while the properties are open, you will not get an immediate refresh of the value

stone tangle
#

I got that far and I am using obs_data_set_string

silk bison
#

you can also have it initialized to a default, with the get_defaults callback

stone tangle
#

But when ever I click my button the text don't update and even gives me errors

silk bison
#

when you click what button

stone tangle
#

`def browse_for_file(props, prop):
obs.obs_data_set_string(props, "url", "ThisIsTest")
obs.obs_data_release(props)
#root = tk.Tk()
#root.withdraw()

#file_path = filedialog.askopenfilename()

------------------------------------------------------------

`

silk bison
#

you shouldnt be releasing props there (Edit: "props" is of type properties, you cannot use any of those obs_data_ functions on props)

stone tangle
#

In the template code it had it so I assumed that's what I needed

#

`def script_properties():
props = obs.obs_properties_create()

obs.obs_properties_add_text(props, "url", "XML PATH", obs.OBS_TEXT_DEFAULT)
obs.obs_properties_add_button(props, "button_br", "Browse", browse_for_file)
obs.obs_properties_add_int(props, "interval", "Update Interval (seconds)", 5, 3600, 1)

#MORE CODE AFTER THIS
return props`

#

This is where the button is being made

silk bison
#

oh woops thats the props, not the data

#

either way, you shouldnt release

stone tangle
#

So how can I make this work? The docs really aren't much help haha I am still very new to Python let a lone doing it for OBS

silk bison
#

these are two different types

#

you need to call obs_data_set_string on your settings object. this is not the same as the properties object

stone tangle
#

I hear ya but I am still lost xD

#

How do I pass that through to my button click handler ?

silk bison
#

I think you're going to have to stash the settings from one of the other operations that gives you settings if you want your button to be able to update it internally.

#

(such as from the parameter of script_load)

#

however, If anyone else here has better advice on how to do what you are doing, trust them.

#

it is not obvious to me why "script_properties" isn't given the settings as a parameter, itself

#

or similarly the button callback

#

it may be that the API is trying to discourage interaction with settings

stone tangle
#

Would you be able to provide some pseudo code? I am working directly off examples since this is all still new to me

silk bison
#

Yes, but with the disclaimer that I am also relatively new to working with the obs APIs, and what I suggest seems to be fighting against the API

#

so you can store that, for instance, to a global

#

and then your button (and/or script_properties) can reference it

#

this seems very... hacky, though. there may be a better way to do what you are trying, I just do not know offhand given the API

stone tangle
#

def script_load(settings): global scope_settings scope_settings = settings

#

Like that?

silk bison
#

yeah, something like that

#

and then similarly refer to the global inside of your callbacks

stone tangle
#

I tried that and the text field did not update 😦

silk bison
#

are you returning true from your button callback?

#

returning true should tell it to update the properties

#

(your browse_for_file function)

stone tangle
#

NameError: name 'true' is not defined

#

`def browse_for_file(props, prop):
obs.obs_data_set_string(scope_settings, "url", "ThisIsTest")
obs.obs_data_release(scope_settings)
return true
#root = tk.Tk()
#root.withdraw()

#file_path = filedialog.askopenfilename()

------------------------------------------------------------

`

silk bison
#

True

stone tangle
#

Ah!

#

HOT DOG THAT DID IT!

#

Thank you!!!!!!!

silk bison
#

np!

#

again, though, it's entirely possible there is a better way to do this

#

glad it worked though

stone tangle
#

πŸ™‚

smoky kiln
#

Hey does anyone here use WebSockets for Touch Portal because for the life of me I cannot get them to connect. I have the pro version so that's not the issue.

minor lily
analog ruin
#

is there a reason you chose to use this plugin instead of the built in version that comes with updated versions of OBS? @minor lily

minor lily
#

I dont think the built in one works on discord right?

analog ruin
#

it does πŸ™‚

minor lily
#

oh ill use that then! can you help ne set it up?

analog ruin
#

sure πŸ™‚

#

would recommend you remove the other plugin tho

minor lily
#

how?

analog ruin
#

did you use the installer?

#

if so, you can just close OBS, and go to add/remove programs (just like you uninstall any other program), and find the virtualcam in there

minor lily
#

done :)

analog ruin
#

cool. and you've installed the latest version of OBS? You see the "start virtualcam" in the bottom right?

minor lily
analog ruin
#

perfect πŸ™‚ Now we need to add what you want to show in discord (to your OBS)

#

what are you looking to have shown?

minor lily
#

anything, something that looks cool tho

analog ruin
#

the virtualcam will just show whatever is in your OBS (currently the black box)

#

ok, add a cool picture or a video

minor lily
#

smt like this

analog ruin
#

that looks like an empty overlay

#

you dont wanna add anythign to that? Like gameplay, your desktop etc?

minor lily
#

Not yet

analog ruin
#

ok, well, i cant help you with an overlay. You would have to make the overlay (graphics) yourself, or download some (paid or free), or you could pay someone to make one for you

#

this has nothing to do with the virtualcam, it just shows what is in your OBS, which is currently nothing

minor lily
#

smt like this?

analog ruin
#

ok, then add that πŸ™‚

minor lily
#

idk how lol

#

im a noob

analog ruin
minor lily
#

kk

violet kayak
#

has anyone here ever used the Tuna plugin by univrsal? https://github.com/univrsal/tuna
I'm trying to use the Web Browser song source, and everything's working fine (I think?) on the Browser side, however it's telling me in the Output Editor that "The selected music source does not support one or more of the used format options", and it's telling me that for every single one (except whitespace and linebreak but... well)... ssooo am I just stupid or is that a weird bug with the web browser source mode?

#

Just don't wanna report it as a bug when I don't know if it might be me

#

actually I get the same when I set it to Spotify which.. is natively implemented? I don't get it

tardy abyss
#

Made a browser based overlay (runs from local source) for someone I know and thought all this looks pretty nice so made a few improvements and here's how it looks like https://youtu.be/mdfwXWwmSo4

chrome crane
#

anyone knows if there is any plugins that give me a better cpu monitoring on obs?

swift dust
chrome crane
vale vine
#

The cpu % as reported in obs is just for core obs usage. Not full cpu load

vivid wind
#

@proud relic Cannot start GStreamer: could not link bin to queue2 any idea what this is about?

#

I'm trying to receive an SRT stream

#
srtsrc uri="srt://10.0.0.1:9710?mode=listener" name=bin ! queue ! video. bin. ! queue ! audio.
#

might have something wrong here

proud relic
#

probably you are missing tranport protocl demuxer and decoder. srt is just a transport protocol.. you can transmit any format over it.

vivid wind
#

!decodebin is all I needed apparently

proud relic
#

it has an autodetection included, yes

vivid wind
#

if this is finally the solution I needed to solve all my problems I will poop my pants

silk bison
silk bison
#

The way I do the actions here is how I sort of wish move-source worked (feature request?). Often times in a move-source chain I want to trigger something arbitrary, and sometimes complicated actions span between different scenes. By just allowing hookins to arbitrary hotkeys, that becomes easy.

night rivet
#

Hi, I'm having issues with creating a Replay for my stream, can someone lend me a hand? I'm trying to use Dynamic Delay right now, but I'm open to other suggestions

pure junco
#

Hi, im having an issue with my alerts not showing up on my stream i do use own3d pro if anyone could help me that would be great!

worldly rain
#

Is there a plugin I can get that will allow me to stream to muiltiplatform?

untold jay
#

!multirtmp @worldly rain

oblique yewBOT
little sparrow
#

Hi, does anyone have a suggestion (workflow, tools, plugin) for matching 2 sources of camera?
usually I calibrate by taking 2 images and perform color matching in photoshop, then made a LUT to be applied to each source on OBS.
I tried to scripting for histogram matching, but still cannot get it right. at least I want to have both of them have same distribution by numbers, since I can't really rely on laptop monitor

boreal hearth
sand ridge
#

anywhere German?

swift dust
violet kayak
# boreal hearth i was working on a fix for that but haven't pushed it yet

Ah that explains that, thank you.
Now I'm just wondering why the files don't end up being filled with the information coming from the browser.
When I console.log in the browser before sending it to OBS, all the values seem fine, and it can connect as soon as OBS is running (got an error when it wasn't).
So I'm wondering if anything is off between the browser and OBS, or anything else. Are there any logs what happens on OBS' side when it receives data from the browser?

slim raptor
#

Do I still have to download the Virtualcam plugin or is it added in the update?

oblique yewBOT
# slim raptor Do I still have to download the Virtualcam plugin or is it added in the update?

Windows: OBS v26 and above contains a basic virtual camera. For advanced usage, such as preview or specific scene/source output, try the third party plugin.

macOS: OBS v26.1 and above contains a standard virtual camera. Having issues with specific programs? Check this guide.

Linux: OBS v26.1 and above contains a standard virtual camera. v4l2loopback is required, best installed via the v4l2loopback-dkms package.

ancient matrix
#

I know there is a plugin to auto switch scenes, but is there a way to just hide/show sources instead? I could just duplicate the entire scene and have them switch, but that is a little too clunky personally lol

swift dust
#

Mind you: Hiding them won't stop them capturing stuff, it's just invisible

ancient matrix
#

i meant using the auto scene switcher plugin or a similar one to hide sources. i know you can manually do it

mortal harbor
#

hello

boreal hearth
rich mountain
#

so I'm a total noob with audio and such but I'm trying to make a plugin that can play arbitrary MP3 files. I've got the plugin working, but the audio sounds slowmo/garbled. I know this is a can of worms but does anyone have a good primer for understanding audio streams? In this context of the plugin: the confusion I have here is taking an MP3 "frame" (output by https://crates.io/crates/minimp3) and translating that to something obs_source_output_audio accepts. Here's my code:

let mut source_audio = obs_wrapper::obs_sys::obs_source_audio {
    data: [std::ptr::null(); 8],
    format: obs_wrapper::obs_sys::audio_format_AUDIO_FORMAT_16BIT, // the data from the mp3 library is defined as i16... is this correct?
    frames: 0, 
    speakers: obs_wrapper::obs_sys::speaker_layout_SPEAKERS_MONO,
    timestamp: data.timestamp.unwrap(),
    samples_per_sec: frame.sample_rate as u32,
};
source_audio.data[0] = frame.data.as_ptr() as *const u8;
// this is setting "frames" to the number of samples
source_audio.frames = (frame.data.len() / frame.channels) as u32;

unsafe {
    obs_wrapper::obs_sys::obs_source_output_audio(
        data.source.id() as *mut obs_wrapper::obs_sys::obs_source_t,
        &source_audio as *const obs_wrapper::obs_sys::obs_source_audio,
    )
}

// this is clearly wrong but there's no video -- does this matter too much?
data.timestamp = data.timestamp.map(|ts| ts + 1);
#

like i said, this "works" but bridging from the MP3 container to the "raw" format OBS expects is a huge gap for me

#

huh nvm, I can just do my entire plugin in a browser source I think... it would greatly simplify things

peak vector
#

but yeah you can use browser source or media source which already support MP3

rare spear
#

How can i have an overlay to know im recording, so i won't forget to stop recording

chrome thistle
#

how to install plugins

oblique yewBOT
rose stump
#

with voicemeeter bannana how can I set this to the default without just dragging it "close enough"

vale vine
#

Double click it I believe

rose stump
simple flame
#

I want to do a livestream of a livestream presentation. I want to be able to hear audio from the livestream presentation, but also set up audio to where the viewers can also hear. Would some headphones work for this?

untold jay
#

@simple flame go to edit>advanced audio properties, and set monitoring to "monitor and output"

simple flame
untold jay
#

@simple flame not entirely sure, try reading this:

#

!bluetooth @simple flame

oblique yewBOT
#

@simple flame

If your audio is muting when you launch OBS, and you're using a Bluetooth headset, it's caused by the underlying design of Bluetooth. To fix this, you can either switch to a wired headset, don't use the Bluetooth headset's mic, or set your sound to go through the HFP device for your headset.

Note: HFP offers lower sound quality.

simple flame
simple flame
untold jay
#

@simple flame this shouuldn't require any special setup, you should be able to hear it and stream it without monitoring

simple flame
#

So I don’t need to do anything then?

untold jay
#

@simple flame try it, see if it works

simple flame
#

I did. And it worked! All I did was set up my headphones to my laptop via Bluetooth, and set it as an audio input

limpid sand
#

Hi, can anyone recommend a plugin to change the Hz bands (to change the voice for a stream)? πŸ™‚

real rampart
#

Hey can you guys follow me on Instagram?

#

I'll follow back?

real rampart
#

Thanks

cyan peak
#

hi there @real rampart -- you'll need to check out our rules

#

we don't allow advertising content

jade chasm
#

Can someone help me , I want to run two virtual camera for 2 scenes but I am not able to select a particular virtual camera for each scene

terse hornet
#

Hi, is it possible to access general obs settings and encoder settings in another plugin? I'd like to be able to do some auto configure in a separate plugin

jade chasm
#

Could you suggest a plugin which would specifically suite that

pale flower
#

what's the latest version of the move transition plugin? trying to cross check some stuff

pale flower
#

ty

rare spear
#

How can i have an overlay to know im recording, so i won't forget to stop recording

terse hornet
#

looks like the only way is to copy the whole encoder plugin into the custom plugin?

white dune
#

that's not good...

white dune
#

seems fairly obvious. you want a big on screen overlay to tell you that you are recording.

#

you are not the first to ask for it. and not the last.

rare spear
analog ruin
#

unfortunately not. Having overlays over the game is not as easy as it might seem. THere is a plugin called srbeep that will make a noise when you record etc, but its not a continually updated information on whether you're recording or not

terse hornet
sweet path
#

Does anyone have time to give me a hand with Advanced Scene Switcher? I'm having issues

hollow stirrup
#

!hi

oblique yewBOT
#

Welcome to the OBS community support channel. If you have a question, go ahead and ask it, and if someone is available to help they'll respond. Try to be detailed, and provide a log if you are having issues with streaming/recording (Help -> Log Files -> Upload Current Log). Please be patient if someone doesn't respond right away!

mortal harbor
#

is there a way i can set up a bot on my discord so itll notify everyone in my discord when i go live?

analog ruin
#

@mortal harbor yeah, there is, but that question is better suited for #tech-talk There are no OBS plugins that will do that for you, as its not really made to host bots πŸ™‚

tough lion
#

hey there! im just diving in to OBS plugins for the first time and had an idea for a plugin that i cant seem to find anywhere

is there a way to implement a "new window" function that creates a full-screenable window for extra docs and tools you want on a separate monitor from your preview, chat and mixer and such. but still keep as a part of that instance of OBS?

untold jay
#

@tough lion no, no such thing exists, though some devs are considering working on it
currently, you can detach any dock into its own standalone window, is that enough?

tough lion
#

possibly, only problem is ive had bad experiences wit getting detached docs loading back into their proper locations wen that instance is closed and restarted

#

thats why i asked Xp

untold jay
#

weird desu
i tried it and it didn't break, maybe it was fixed later?

#

or, maybe you're using the obs-multi-rtmp plugin, their dock tends to forget its location

tough lion
#

it was like 6 months ago so that might be a good shout

#

il give it a try later

#

but hey, least i don't have to waste my time looking for something that dosent exist now lol

#

also, another possibly stupid question, is there a way to dock a filter tied to a specific source? like a filter slider?

untold jay
#

@tough lion no, not possible

tough lion
#

cool XP

violet kayak
# boreal hearth yeah I think I already fixed that but haven't made a release

sorry to ping you again about this, I just tried the CI build from here: https://github.com/univrsal/tuna/actions/runs/1156146119 which should be the latest commit, but I still get the message in the output editor.
The output file seems to be OK though, so it seems just a display bug.
Only thing that doesn't seem to work is the album %a? I'm sending album_url like it does on the Yandex part of the script, but the file just outputs a as the content πŸ€” also tried album instead with no effect
edit: actually same for artist, output file is just m although I'm sending artists like the existing services are

#

On a sidenote: where would I send PRs/improvements to the tampermonkey script? I can't find it on the repo and can't find a PR-esque feature on Tampermonkey either

boreal hearth
violet kayak
#

OK πŸ‘

urban ice
#

How do I get Websockets to open in obs?
I tried moving the files to the plugin folder

solar narwhal
#

Does anyone know of a good timer plugin?

untold jay
#

@solar narwhal a timer for what, to show on screen?

solar narwhal
#

I need a countdown timer that starts when I make the source visible @untold jay

untold jay
#

@solar narwhal there's already a script that does this, go to Tools>Scripts and add Countdown.lua, then add a text source for it to write text to

solar narwhal
#

thank you very much @untold jay

untold jay
stark narwhal
#

Yeah it's no longer injecting a dll

supple fossil
#

This is probably asked rather frequently but is it possible to run advanced-timer.lua twice? I wanted to implement two countdowns in my stream.

dark sapphire
#

Make a copy of the file and rename it

supple fossil
#

I tried that. It immediately locked up OBS and I'm in the process of trying to get it to even open again

#

I assumed it was simply referencing the same code/variables and didn't like that

#

I deleted the copy but OBS still won't open

dark sapphire
#

That shouldn't happen

#

Very weird

supple fossil
#

Oh, good. I'm special. I love it when I'm special πŸ™‚

#

To the logs!

untold jay
#

you can rename both scripts so they wont' load at startup anymore

supple fossil
#

Ah, it had to be both. Thanks. I'd just deleted the copy and expected that'd solve it

#

Well...I suppose that's good and bad. Renaming the script lets OBS load. Putting the name back freezes it up again. Guess I'm not using scripts anymore

#

Curious. I guess that's why I didn't use this in the past. It works just fine setting up one, but if I restart, OBS fails to load. I have to rename the file to get it to work again. Not seeing any errors in the log file. Even more curious that just trying to start two of them also hangs it up.

#

Is there another log file? It's not crashing so I'm not getting those

#

Even verbose gives me nothing to indicate why it's hanging up

untold jay
#

@azure totem development questions usually go to #development

azure totem
#

Oh sorry, I thought plugin question etc, y'know. Will move it

supple fossil
#

Well I'll be damned. It works in my "Testing" scene collection

dark sapphire
#

Usually that means it's unhappy with the config

supple fossil
#

and it doesn't barf if I make two countdowns in the "Testing" scene collection. But how am I to figure out what in the production collection is interfering with it?

#

Oh god what if it's just the font or something

#

I didn't bother setting the font all nicely

#

Well 🀞

#

It takes like 90 seconds to switch back to production

#

Nope, that ain't it. Default Text (GDI) source or not, it hangs. So if it shows nothing of note in the logs, what's the recourse? Just duplicate the OBS-studio folder, launch a sacrificial duplicate and start deleting sources until it'll open?

#

Cuz that sounds like a job foooor!...

...another time! πŸ™‚

glossy matrix
#

Someone actually made a plugin that allows obs to capture audio from a specific application

silk bison
#

oh shit, thats actually huge

#

some games the virtual cables thing isnt even an option because they dont let you select audio device (it goes by system default)

silk bison
#

ahhh it works

vagrant kite
#

Omg yay

#

It works!!

#

Now i can finally control spotify volume while streaming now 😭

glossy matrix
#

@silk bison @vagrant kite it's truly a huge breakthrough from all the confusing VB cables and Voicemeeter! I'm currently waiting for other reviews and developments about this plugin but so far so good πŸ™‚

atomic horizon
untold jay
#

hey, i don't refuse to share them, i'm just too dumb to explain it to someone else properly

vagrant kite
glossy matrix
#

along with windows and their ever annoying driver issues that are impossible to troubleshoot

violet kayak
#

on windows I just installed VB cable and that was it, restart and it worked...

glossy matrix
violet kayak
#

what I'm saying is I'm not sure whats wrong with your systems that this happens lol

sullen gulch
#

anyone know how to get my elgato wave 3 mic to sound better on obs

hollow stirrup
#

It depends what is your problem you are facing…

  • If your loudness of the voice fluctuates, you can use compressor to reduce the louder voice to make the overall voice even.
  • If you have a background noise, I think there are some noise suppression filters.
steep field
#

Hey all. I'm wondering if there is a record plugin that allows you to set a timer for your record? To have it basically shut off at a set amount of time.

#

I always know exactly how long of a record I need but I find myself running back and forth or setting external timers to go and stop the recording if I'm not sitting at the PC while it's doing the record.

#

πŸ€”

vale vine
steep field
#

πŸ‘€πŸ€¦πŸ½β€β™‚οΈ!!! I literally had no idea lol.

#

This will speed so many things up. Thank you @vale vine

vale vine
harsh topaz
#

Hey @weak escarp

Testing RC1 with your Source Record.

It seemed to be somewhat working (few bugs I'd talk about later). However, after AFKing for 15 mins, coming back to pc and going to the source > left clicking on the source record filter (Set to Buffering 20 sec NVENC (new)) it instant shut down OBS, without any error or log.

I tried booting OBS up again, but nothing happened. I tried again; got the message "OBS already running". Checked background processes, it boots up in the backend but never launches the frontend.

I rebooted PC, it persisted.

I deleted scenes, added my scenes again (backup) and OBS booted. I assume something in the Source Record plugin corrupted/broke the Scene Collection and disallowed OBS to boot after that. Any input/ideas? Linden7Love

thorn notch
#

Since I wanted to do the update, obs keeps crashing when I want to launch it with obs live. Is there anything I can do?

analog ruin
#

you mean the beta/rc? I dont think you should attempt to use that with obs.live

ruby jasper
#

yo, anyone know if there is a slow-mo plugin out there that can do the following:

  • slow down the scene for a set time
  • after the set time expires snap back to the current time
#

there is a slow mo plugin out there but it doesn't seem to support the instant snap back I want, it can only fast forward the stream until it catches up with the current stream time

#

unless I'm misunderstanding what it's capable of

#

please drop me a ping if you have anything tyhanks

weak escarp
weak escarp
rotund ocean
#

Hello... so I've been developing a piece of software (for a couple of years now) that interacts with OBS via a python script and OBSWebsockets.
It's a mainly a Transform and Filter(using StreamFx, OBS, Shaders etc) animation system with a timeline feature.
Here's a short demo: https://www.kapwing.com/e/612866a40f14d700be800458 I use it on my streams and think it could be useful for others!
What do people think?

errant talon
#

so, whats happened to the "stream information" dock?

#

suddenly disappeared

#

its not in the drop down menu either?

vale vine
#

Settings > stream. Disconnect and reconnect your account @errant talon

ruby jasper
ruby jasper
weak escarp
#

Or use a lua or python script to do it.

ruby jasper
uneven latch
#

Good evening everyone!

frank idol
vivid wind
#

But I switched to Media source, more reliable

#

My biggest problem is keeping the audio and video in sync, idk if you can help with that

grim wharf
#

How much would it be to for someone to basically fix the monitor ID thing? I want to identify monitors for display capture based on said monitor's name, not the device ID (that in windows changes all the time, in my case whenver i plug in/unplug a monitor or restart my system)

#

i think this might end up being a source code mod; although it would hopefully get integrated into OBS in a near update

white dune
#

monitor names aren't unique, are they?

grim wharf
#

i mean if it shuffles identically named ones i guess u could go by something else but i dont think that is an issue

paper barn
#

They're named by model

#

If you have two identical monitors, your theory falls

grim wharf
#

yes but like... still having it as a primary sorting option would be nice

#

cuz all my monitors are different

#

so it would fix the ID thing

paper barn
#

Yeah

#

But it would bring other issues too

#

Example

#

You connect your monitor by hdmi instead of displayport, that's a different monitor even though is the same one

grim wharf
#

just more options besides ID, ex. resolution and framerate, would be super nice as windows is stupid in this regard

paper barn
#

That way wouldn't work

#

My monitor doesn't even have a name

grim wharf
#

just device properties in general

#

or actually, "what monitor is at these coornates"

#

there, the best solution

#

because whatever monitor is to my left, for example, would just be at (-1, 0)

#

and top would be like (0, 1081)

pale zenith
#

if anyone knows the bongobs plugin, id really like to be able to find more versions but the discord link from the original bongobs cat plugin on github has expired, does anyone know a place that i can get more versions?

#

this is the version i have right now

#

but i have seen cooler versions like these:

#

i was wondering if anyone knew where i could find these? or if anyone is in the bongobs cat discord and could invite me to it so i could get more modes? thanks

#

ping me or dm me if you think you can help

tulip sparrow
#

When I click 'View' then' Docks' then 'Chat' I do not see the chat dock anywhere.

vale vine
#

Go to settings > stream. Disconnect then reconnect your account @tulip sparrow

muted karma
#

Hi

#

login in youtube no acept

#

stream Elements

#

login

idle mulch
#

hola alguien habla espaΓ±ol

#

neecsito saber si alguien sabe sobre aplicar luts en obs

#

??

opaque blaze
oblique yewBOT
# idle mulch hola alguien habla espaΓ±ol

Welcome to the official OBS Community Discord server! Unfortunately, our support volunteers can only provide support in English. Most of our support documents and guides are also only in English. If you feel comfortable using a service like Google Translate, feel free to use that to send messages to us. We'll do our best to understand your intent, and we'll try to help you as much as we can. google_translate Translate

oblique yewBOT
untold jay
#

@opaque blaze looks doable with the move transition plugin, but expect to spend a lot of effort manually animating most of this

opaque blaze
untold jay
#

@opaque blaze that was my only guess, and if it's wrong, i have nothing else to suggest, maybe try asking later

opaque blaze
untold jay
#

@opaque blaze the move transition plugin allows chaining multiple transitions together, which would hopefully allow recreation of this animation, but every keyframe would need to be done by hand

opaque blaze
untold jay
#

no idea how they'd do this

opaque blaze
#

I believe it could be a script. I'm researching to see if I can find something related.

untold jay
#

if you can't find it, it's most likely a custom-made script they're unlikely to share

opaque blaze
untold jay
#

or, more likely, commissioned

high jackal
#

Hi guys, i have a question: can I receive text messages from chat via obs-browser plugin (e.g from twitch.tv chat) or another one?

#

exactly the text buffer of messages

white dune
#

it's not impossible for a plugin to offer that feature. but as far as i know, none does

untold jay
#

@high jackal if you want twitch chat messages in plaintext, try Chatty, it can output chat log in plaintext

high jackal
untold jay
#

@high jackal i don't know of any pre-made software solutions for this, you might have to make one

high jackal
#

but for this I need to grab the text buffer from streaming services

#

just by link ?

untold jay
#

i'm not a programmer, i can't answer that

#

obs-studio natively supports python 3.6 and lua, need scripting reference for them?

high jackal
#

no ty, i want to use c++

untold jay
#

!plugintemplate @high jackal

oblique yewBOT
untold jay
#

if you need help writing plugins, or compiling, or something else related, it's best to ask in #development

high jackal
#

ok ty so much

dense rune
#

apologies if this has been asked a million times (im sure it has), but i updated OBS and the browser plug-in isn't working, and the link to download it again is broken. how do i get the browser plug in back?

white dune
#

i was under the expression that was a stock plugin that's included in the install

dense rune
#

hmm hold on let me try one more thing

analog ruin
#

do you have obs.live?

dense rune
#

it keeps prompting me to download obs.live when i open obs, even though ive already done it.

#

i tried the one more thing and it didn't work

analog ruin
#

!se we cant help you with obs.live, we dont make that. If you would like to remove it, we can probably help with that

#

whoops, wrong command

#

!sehelp

oblique yewBOT
dense rune
#

ok thank you!

#

fixed it! thanks!

analog ruin
#

nice work πŸ™‚ Happy to help

rotund ocean
mortal harbor
#

Hello? I was wondering if there is an option or a plugin to have your chat show up on a stream

#

Like how some popular streamers have it

white dune
#

they use the browser source plugin for that

opaque blaze
mortal harbor
unique gorge
#

Hello, does anyone here know how to add a poll on a stream?

Example would be like the viewers will pick between A or B and after a certain amount of time the results of the poll will be shown in the stream.

untold jay
#

@unique gorge where, on twitch?

strong tulip
#

You do that on the Twitch dashboard, I thought

#

It's one of the Quick Actions

unique gorge
unique gorge
strong tulip
#

Yeah, on FB Live, it's also done on the live dashboard

#

@unique gorge no, it's just done from the streaming platform's website, not from OBS

unique gorge
strong tulip
#

?

#

At any rate, this isn't really related to plugins and tools for OBS. You should probably talk about this in #stream-setup or #off-topic

unique gorge
#

alright thanks! Appreciate it

vagrant kite
#

Is there ETA for that :0

arctic echo
#

!csgo

oblique yewBOT
#

Valve has implemented a Trusted mode which does not allow OBS to hook CS:GO using Game Capture. Read more in their announcement post. Additionally, they have no plans on allowing OBS in Trusted mode.

We recommend running the game in either windowed or borderless fullscreen and using a Window Capture source instead.

Alternately, you can launch the game with -allow_third_party_software .

mortal harbor
#

Hello guys,
I installed RTMP plugin and its great but I looking for how to start and stop it automatically. i welcome your suggestions.
thank you

dark sapphire
#

check the plugin's resource page on the forums

mortal harbor
#

thanks matt. for your ressponse. i will check it.

stable olive
#

I've been looking through the documentation, but I'm having trouble working out how plugins should hold references to sources. Is there a guide somewhere on when a plugin should hold a reference or a weak reference to a source?

#

For the obs-ptz plugin I want to associate a PTZ device with a particular source, but I haven't worked out the lifecycle rules yet

mortal harbor
peak vector
#

there is no comparable plugin to this currently to my knowledge

mortal harbor
fickle cove
#

Any guides/example projects on developing plugins? I've gone through the plugins page on docs and can kind of understand source, output, etc.

oblique yewBOT
knotty eagle
#

Hey, when I got to tools the websocket bit isn't showing. Help?

analog ruin
#

!clog @knotty eagle

oblique yewBOT
#

@knotty eagle

A current log file is required to help fix your issue. Please post a link to your current log file.

  • In OBS select Help > Log Files > Upload Current Log File.
  • Click Copy URL and then paste the link here.
knotty eagle
oblique yewBOT
knotty eagle
#

Did an entirely fresh install and copied the websocket plug in back in, no dice

analog ruin
#

11:32:09.563: Module '../../obs-plugins/64bit/obs-websocket.dll' not loaded
Its possible they refuse to load if its an older verison, but your OBS is newer. I'm honestly not quite sure

#

probably good to grab the latest version πŸ™‚

#

!websocket

oblique yewBOT
#

OBS can be controlled remotely with the obs-websocket plugin.

Click here to download, or here for more info on using it.

wary wasp
#

@knotty eagle What version of obs-websocket do you have installed?

#

4.9.1 should work fine on that. However 5.0.0-alpha1 is only for 27.1.0 or above

#

And @analog ruin we don't purposefully block it from loading on older versions, but we tend to implement API calls found only in the latest versions of OBS, so it fails to load when we use a function from a version of OBS that doesn't have that

analog ruin
#

thank you tt πŸ™‚ good to know

#

would an issue like this possibly happen if its incomplete?

#

like if I copy only the plugin dll (there are more stuff, right)? @wary wasp

#

(missing imageformats)

wary wasp
#

It won't fail to load if there are missing files. Possible issues arising from incomplete installations are:

  • If the image extensions are not installed correctly, not all image formats will be available for requests like TakeSourceScreenshot. On windows it's DLL's that the installer adds to the OBS folder. On linux I believe it's qt5-image-formats-plugins
  • If the locales are missing, then strings displayed in the plugin will show only the translation id instead of the string itself
analog ruin
#

perfect, thanks πŸ‘

wary wasp
#

Available image formats are determined on runtime, so it doesn't have issues with missing dll's because it doesn't make assumptions that they are available

rotund ocean
odd onyx
#

So sorry if this isn't the correct channel in advance but I'm having an annoying issue with chatbot and thought I would come here for help since I'm struggling to find an answer on youtube or anywhere else

#

I'm having a really annoying issue with chatbot that's started ever since I stopped using Streamlabs OBS and started using OBS studio and I could use some help ironing out the problem. Basically, anytime I go online now, I can't use any of my commands and it doesn't say "online" in the top right corner..

#

anytime I try to do a shout out command it sats "failed to send the message..are you connected with the account that you're trying to send a message?" I don't understand, I'd imagine I was connected already since when I go online on OBS, the chat is displaying in chatbot..so, what is going wrong?

vale vine
#

I'm assuming you should reach out to support for that chat bot

odd onyx
#

hmm

wary wasp
rotund ocean
wary wasp
#

Interesting. Any reason not to do everything in obs-websocket?

rotund ocean
#

My very first attempt was to exclusively use obs-websockets and update it all the parameters with that. But I ran into issues when increasing the amount of commands being sent when the animations got large. So went a different route

#

It worked...but was limited

wary wasp
#

I see. Did you happen to try using batch requests as a way to perform the requests at higher throughput?

rotund ocean
wary wasp
#

Batch requests work where you send an array of requests to be performed, and obs-websocket processes them with much higher precision than sending them individually. Combined with Sleep requests, you get the ability to essentially "compile" animations and send them as one request

rotund ocean
wary wasp
#

Ah you're using the script_tick() callback?

#

That gives me an idea. We could possibly implement per-frame batch requests. Where each request gets tagged with a frame number of which frame to perform the request

rotund ocean
rotund ocean
wary wasp
#

Yes I'm the current active maintainer

rotund ocean
#

Ah sweet!

wary wasp
#

We're developing obs-websocket 5.0.0 which uses a whole new protocol and is a much more modern plugin.

rotund ocean
#

Nice. I look forward to it!

#

But yeah... I probably should have spoke up in here what I was creating earlier. I can give you the beta soon if you'd like to see what I've made. I've already used a earlier version on my stream for like 2 years with no issues at all

wary wasp
#

Yeah I'd love to check it out

rotund ocean
#

Sweet. I've already moved from exclusively obs-websocket commands to my own system but would totally move it back if you implemented some kind of per frame batch system like you said.

fierce spade
rotund ocean
fierce spade
storm stirrup
rose stump
#

which is which?

abstract geyser
#

ΰΉ‚ΰΈ«ΰΈ₯ΰΈ”ΰΈ’ΰΈ±ΰΈ‡ΰΉ„ΰΈ‡

oblique yewBOT
# abstract geyser ΰΉ‚ΰΈ«ΰΈ₯ΰΈ”ΰΈ’ΰΈ±ΰΈ‡ΰΉ„ΰΈ‡

Welcome to the official OBS Community Discord server! Unfortunately, our support volunteers can only provide support in English. Most of our support documents and guides are also only in English. If you feel comfortable using a service like Google Translate, feel free to use that to send messages to us. We'll do our best to understand your intent, and we'll try to help you as much as we can. google_translate Translate

mortal harbor
#

What plugin do i need to use for my elgato stream deck in order for it to work on my macbook pro air with big sur os

civic crest
#

install the Mac version of the streamdeck software. restart OBS. go.

quasi garnet
#

My advanced scene switcher won’t install

mortal harbor
#

What can I do to get my elgato stream deck to connect to my OBS so I can set it up for all my transitions and so fourth. I’m having a major issue figuring it out.

analog ruin
#

so Tori, did you attempt to install it already?

quasi garnet
#

I installed it once yes

analog ruin
#

!clog @quasi garnet just wanted to check if its try to load it

oblique yewBOT
#

@quasi garnet

A current log file is required to help fix your issue. Please post a link to your current log file.

  • In OBS select Help > Log Files > Upload Current Log File.
  • Click Copy URL and then paste the link here.
quasi garnet
#

So I need the link to advanced scene switcher?

analog ruin
#

nah, I just thought we would get a regular log, so we could see if its trying to load it, or if it cant find it at all

#

!clogi

oblique yewBOT
analog ruin
#

or do you just want to try installing it from scratch?

quasi garnet
analog ruin
#

what keeps failing? The installer? Does it give you an error message?

quasi garnet
#

The installer but it’s not there when I check on the app

analog ruin
#

but it dosent give you an error message?

quasi garnet
#

No

analog ruin
rose stump
#

if there's 5 inputs but in the end they go to the same 2 outputs what's the point in having all of these?

quasi garnet
#

i tried but it's giving me the wrong link

oblique yewBOT
# quasi garnet https://obsproject.com/logs/WUruWOf2Fr17Q3wj
πŸ›‘ Critical
  • Insufficient Hardware
⚠️ Warning
  • Old Version (26.1.0)
  • Integrated GPU
  • Windows 10 1903 (EOL)
  • 32-bit OBS on 64-bit Windows
  • Browser Not Accelerated
ℹ️ Info
  • Not Admin
  • No Output Session
Hardware Check

Intel Pentium G3240 @ 3.10GHz - Below minimum requirements / Intel HD Graphics 620 - Possible bottleneck

analog ruin
#

@quasi garnet why do you think its the wrong link? The link is to send here, because it containts information about your machine that I need

#

you're running an old version of OBS, so you need to upgrade it before you can use advanced scene switcher

#

I would re-install the correct version of OBS while you're at it. (you are using 32bit instead of 64)

quasi garnet
#

but it worked for me before

rose stump
#

perhaps your launching the wrong version?

analog ruin
#

yeah, but they update the plugin to support newer versions of OBS, and that can also cause the updated versions of plugins to no longer work on ord versions of OBS

#

you have 26

quasi garnet
#

so i need to install obs 64bit?

analog ruin
#

I would recommend doing so, yes. But most importantly you need to update in order for the plugin to be supported

quasi garnet
#

now it won't install

analog ruin
#

what wont install?

quasi garnet
#

obs 64bit

analog ruin
#

did you uninstall 32bit OBS first?

quasi garnet
#

no

#

it's telling me it's currently running

analog ruin
#

I believe you need to do that first. That means you will also need to re-install any plugins you have, and potentially copy any scripts you are using

#

hmm, ok. Yeah, then you need to close obs first. If you believe it is closed already, you'll have to end it in task manager, or reboot the computer

quasi garnet
#

oh great

analog ruin
#

I need to head out, but the people over in #windows-support can assist with re-installing the correct OBS version.

#

Looks like the only script you had added is missing, and I can only see one other plugin

quasi garnet
#

yeah

#

Ok my computer is restarting

lusty bay
#

@rose stumpyou have to use vaio

#

and the other one for outputs

#

i mean output>inputs

rose stump
#

!help

oblique yewBOT
#

If you need help or have questions about OBS, check out our #support-portal first!

rose stump
#

!commands

oblique yewBOT
quasi garnet
#

it worked

swift dust
rose stump
#

ok

dense swift
#

How do I go about making a OBS plugin? Is there a JS or C# library available?

stark narwhal
#

OBS plugins are in C or C++ from what I remember

oblique yewBOT
wary wasp
#

C and C++ are the only sane ways of making an OBS plugin. If you're looking to go an insane route, I know a guy building an OBS plugin in rust

quasi garnet
#

Is there a way I can get the advanced scene switcher to switch scenes in time with music tracks?

simple wasp
#

hello is there a way to mirror my phone's screen to my pc that doesnt devore my cpu?

simple wasp
#

android

#

looking for just a screen mirror, without controlling the phone's screen would be perfect

dark sapphire
simple wasp
#

using scrcpy and my pc still lagging when the phone has high ram usage

onyx vapor
#

what is the difference between an audio/video plugin and an effect plugin? why are a/v plugins limited to certain sources? and given that limitation, why would i want to make one instead of an effect plugin?

hollow stirrup
#

The effect filter is applied to a frame data in GPU. Usually the effect filter is written in shader and some code to control the shader.
On the other hand, the A/V filter is applied to a data in CPU.

#

Some video source directly render it's frame data in GPU so that such sources cannot get the A/V filter.

#

why would i want to make one instead of an effect plugin?
What you can do with the effect filter is limited. For example, GPU has smaller memory than CPU, so the GPU delay has only 0.5s delay at max but the Async Delay has more delay because the Async Delay uses the main memory that can access from CPU.

dark sapphire
#

I will be honest, I did not know this

hollow stirrup
#

Is there something wrong?

dark sapphire
#

I cannot honestly answer that question as I do not know πŸ˜‚

onyx vapor
#

ah, that makes sense, thanks

hollow stirrup
#

As someone suggested to discuss on this thread, I'd like to comment to this message here.
#development message
I'm also thinking how to do this but I still don't have the concrete idea.
The plugin [1] is implemented in Qt.
The plugin [2] is implemented in the backend of libobs.
Maybe, the frequency of the message would be more than 15 times per second.
One idea is sending Qt message from [2] to [1] but not sure how to find the window of the plugin [1].
Another idea might be using callback; registering a callback from [1] to [2] so that [2] can calls to [1]. However, I actually don't know much about the callback and not sure it is really feasible.

#

I feel both of my ideas are not so good. Is there any idea to communicate some data between them?

stable olive
#

Already I've got a backend/frontend split where the part of my plugin that would expose an API doesn't need to provide UI elements.

#

It would be possible to abuse the source or filter structure for one plugin to discover the other and pass data between, either for setting up signals or assigning callbacks

wary wasp
#

What you're looking for sounds like proc handlers @stable olive

If you're operating on an input, register procedures to the input's proc handler. If it's for the plugin itself, create a proc handler object and register something like [pluginname]_get_proc in the OBS core proc handler, which would fetch your custom proc handler. Then, calls can be made with it.

#

libobs already has plenty of options to implement this

stable olive
wary wasp
#

You can grep the OBS code to find instances of proc handlers being used. It's not used very often but it's pretty much designed for instances like this

hollow stirrup
#

Thank you, tt2468. It looks get_nb_frames is one of the usage; querying from transition-stinger to obs-ffmpeg-source.

wary wasp
#

Yep, it's very useful.

We'll be developing a standard soon that will allow plugins/sources to add their own obs-websocket functionality

hollow stirrup
#

That's sound useful. I was thinking my another plugin obs-text-pthread to keep scrolling dynamic text fed from a script that connect through obs-websocket. That idea requires script-side to retrieve some information from the backend plugin.

stable olive
#

@hollow stirrup I'll look into creating proc handlers for both querying information about cameras and sending pan/tilt/zoom commands

#

@wary wasp Are calls via proc handlers thread safe?

wary wasp
#

I believe that proc handlers themselves are threadsafe, but it is up to you to make the callback threadsafe

stable olive
#

As in the callback gets called in the context of the caller?

wary wasp
#

Yes when you call a procedure, the callback is executed in the same thread as the caller

stable olive
#

Gotcha. Thanks. I think within the plugin I can use Qt signals to transfer the message to the UI thread.

hollow stirrup
#

Then, inside the callback need to be threadsafe I guess.

wary wasp
#

Also looking at the proc handler code (which is only 92 lines, lol), proc handlers do not have any synchronization primitives. So while you can use proc_handler_call() in multiple threads at once, using proc_handler_add is not threadsafe

stable olive
#

And I'll need to be careful not to block the calling thread

wary wasp
#

So don't add procedures to a handler after the fact

wary wasp
#
    for (size_t i = 0; i < handler->procs.num; i++) {
        struct proc_info *info = handler->procs.array + i;

        if (strcmp(info->func.name, name) == 0) {
            info->callback(info->data, params);
            return true;
        }
    }```
#

this is the core of proc_handler_call()

#

There are no shared mutexes or anything

hollow stirrup
#

I think the handlers will be registered by proc_handler_add in the .create. At that moment, the source cannot be found because the source is under creation. After that, obs-ptz can find an instance of obs-face-tracker by enumerating sources/filters.

wary wasp
#

Yes that would be appropriate usage

lean berry
#

can we add alerts of multistream platforms to obs

cosmic grotto
#

Hi folks, hope you are all safe and sound. I have a question regarding the websocket-plugin that connects the Touch Portal app on the phone to the computer - how can I get the plugin into a second (portable) instance of OBS that is running at the same time as the local OBS instance? I need this because I am recording a tutorial video on using TP, but I can only see it under Tools in the main OBS instance.

stable olive
white dune
#

now you can probe if a proc handler exists without trying to call it

cosmic grotto
#

Can I just put the websocket plugin files in the portable OBS plugins folder?

stable olive
#

@hollow stirrup, have you tried to get VISCA over TCP working on the Jimcom hardware?

wary wasp
#

@hollow stirrup @stable olive So I'm working on a PR to make proc handlers threadsafe like signal handlers are. Do you think procedures should be mutexed? (Eg. a given procedure can only be called once at any time. Execution protected by a mutex)

#

Technically they don't need to be mutexed from what I understand

hollow stirrup
#

Basically, I just replaced the backend connecting to the serial port with TCP socket. Same approach should be applicable for Qt's implementation.

stable olive
#

I don't think so. As long as I know that calls may be multithreaded then I can handle making the plug-in thread safe

hollow stirrup
stable olive
hollow stirrup
#

Yes, so, I'm thinking multithread.

stable olive
#

The obs-ptz code is reentrant, and I'll make sure the ABI calls are non-blocking so that you don't need to use threads if you want to avoid them

wary wasp
#

Then I'll just mutex the handler itself

hollow stirrup
hollow stirrup
#

Since pan/tilt can be inverse-proportional to current zoom, either of us need to query the current zoom. Do you prefer to do that calculation in obs-ptz side? Or, just send the zoom to obs-face-tracker and obs-face-tracker multipliy 1/zoom?

wary wasp
#

Well the general idea for the implementation is:

  • Create procedure in the core proc handler to fetch obs-websocket's proc handler (obs-websocket will have their own proc handler to not clog up the core one)
  • Outside implementations use the proc handler to add their own functionality to obs-websocket. Whether this will be actual events and requests or subroutines is yet to be determined

We would distribute a header file which 3rd parties would implement into their plugins which would have function methods available to do this easily

stable olive
stable olive
hollow stirrup
white dune
#

just don't call proc handlers on destroyed sources.

hollow stirrup
#

It’s opposite, a source is calling a proc belonging to a front end plugin.

wary wasp
#

So if you wanted to add face tracker requests to obs-websocket, you'd do something like

#include "obs-websocket-api.h"

obs_data_t *example_request_callback(obs_data_t *requestData)
{
  obs_data_t *ret = obs_data_create();
  obs_data_set_string(ret, "test_string", "pp");
  return ret;
}

void register_requests()
{
  obs_websocket_handle_t *handle = obs_websocket_get_handle();

  obs_websocket_vendor_handle_t *v_handle = obs_websocket_register_vendor("obs-ptz");

  obs_websocket_register_request(v_handle, "TestRequest", example_request_callback);
}
hollow stirrup
#

Maybe, destroying sources is earlier than deleting front end plugins.

white dune
#

i seem to recall not being happy with how sources are destroyed at shutdown

#

something about ignoring reference counts

wary wasp
#

Well if everything used the source_remove signal, there wouldn't really be any issues

#

But when you delete the last scene item for an input, it's never called

stable olive
#

hmmm... It would be interesting to expose the PTZ controls via websocket too.

hollow stirrup
white dune
#

must add more source type callbacks. it worked fine for controlling playback of media sources. /S

wary wasp
#

I need to PR a fix to the UI where it calls source_remove during scene item deletion if it's the last scene item, in order to get plugins to release it appropriately

white dune
#

shouldn't every scene item count as a reference to a source?

stable olive
#

If I want to reference a source in callback parameters, what is the best way to do that? Passing the char* name? or char* id?

white dune
#

bump the count when you create the item, reduce it when you delete the item.

stable olive
#

I'm assuming I should not pass a pointer reference to the obs_source_t

stable olive
wary wasp
# white dune shouldn't *every* scene item count as a reference to a source?

Yes, it does.

However take a situation where a reference to an input is being held by a plugin. If the last scene item is removed, there will be no more scene items for the source, but the source will not get destroyed because there is one last reference and the plugin does not know to release its reference, because neither source_destroyed or source_removed were called.

wary wasp
sterile fjord
#

Oh, hi goodmorning

stable olive
#

No. I'm thinking of PTZ devices associated with sources. So, when the facetracker asks for a camera move, it would make a call with the source and the movement direction as arguments

#

Which might not be the best API design. I'm still thinking through the best way to do this

hollow stirrup
#

I was thinking obs-ptz send a pointer with the proc. Then, obs-face-tracker send PTZ control function with the pointer received.

#

The problem is what data the pointer is pointing.

stable olive
wary wasp
hollow stirrup
#

If multi-camera environment, there are multiple sources but there is one obs-ptz.

stable olive
#

If it is acceptable for obs-ptz to register callbacks on the source's proc handler, then that would be easiest

hollow stirrup
#

Can obs-ptz have an instance of proc hander, then send the proc hander to obs-face-tracker instances?

wary wasp
#

I don't think it's appropriate to create a proc handler for obs-ptz. I think it would be best for each source to register procedures to its own proc handler

#

So if you want to call a procedure for a camera, you get the source's proc handler, then call the procedure

#

Because each source is a camera, right?

stable olive
hollow stirrup
#

The source is camera such as NDI. And, the source has a filter called obs-face-tracker, which has face-detection algorithm.

wary wasp
#

Ok so you're saying I can have two different sources outputting the same feed from one camera

stable olive
#

e.g., The video source may be NDI or HDMI, but obs-ptz uses a separate control path to move the camera

hollow stirrup
#

One camera has one feed of video.

stable olive
#

In the obs-ptz plugin I need to associate a PTZ device instances with a video source, which could be any video capture devices

wary wasp
#

Watching a tutorial for the plugin right now

hollow stirrup
#

But control of multiple cameras could be tied to one interface such as RS-232C.

#

obs-face-tracker was originally a standalone filter not using PTZ. The tutorial might not be helpful to understand what we are doing in the furture.

wary wasp
#

Oh I see, so theres not really any association between the input source itself and the controls?

stable olive
#

Not yet. Right now there is a soft association by name; but it is pretty ugly (e.g., if the PTZ name matches the source name then they are assumed to be connected)

wary wasp
stable olive
#

obs-ptz

hollow stirrup
#

I'm drawing a brief concept figure...

#

Data flow is something like this.

wary wasp
#

And what does the association between input and obs-ptz camera do? Like what features rely on it

stable olive
#

When source is visible in preview, it changes the active PTZ device to that camera. This is so that the controls by default adjust the preview camera, not the live one

hollow stirrup
#

obs-face-tracker (FT) detect where the face is and how the camera should point. Then, FT send the pan/tilt/zoom control information into obs-ptz.

#

not the live one
Live is also under control.

stable olive
#

I'll also be adding a feature to block out camera moves when the source is live.

wary wasp
#

Hmmm.

hollow stirrup
#

My major target is controlling live camera to follow a person.

wary wasp
#

Well don't register calls to a proc handlers you don't own (unless it's the core proc handler)

#

Just keep that in mind

stable olive
wary wasp
#

It sounds like the two plugins just need to stay isolated to me

stable olive
stable olive
hollow stirrup
#

Especially for RS-232C connected device. Also UDP-connected devices.

wary wasp
#

Ah because connections cant be shared

stable olive
hollow stirrup
#

If you can make your prototype in a branch at your repo, I can pull it and compile to test.

wary wasp
#

So here's what I suggest then, and it's similar to what you already want to do:

  • Create your own proc handler in obs-ptz.
  • Register the proc handler in the OBS core proc handler
  • Make it so that proc handler is as modular as possible. E.g. have even obs-ptz's calls go through the proc handler. This will help you stay organized in the long run
  • Other plugins can use the proc handler just as obs-ptz does
hollow stirrup
#
  • Register the proc handler in the OBS core proc handler
    I didn't notice there is a core proc hander.
wary wasp
#

And remember that once you register a procedure, remember that you cannot unregister it.

stable olive
#

How about I provide a function in the form: ptz_move_relative(const char* device_name, float pan, float tilt) where float and tilt are in degrees. ?

hollow stirrup
#

I don't like relative but prefer speed.

wary wasp
hollow stirrup
#

If using move-relative, the camera don't return until it stops so that it keeps move and stop.

stable olive
stable olive
hollow stirrup
#

Yes, that's it. Not focus but zoom.

#

It should keep moving until the next drive call arrives so that the camera moves smoothly.

stable olive
#

oops, that's what I meant to write. void ptz_drive(const char *device_name, float pan_speed, float tilt_speed, float zoom_speed) where speed values are signed, and +/-1.0 is fastest, and 0.0 is full stop.

hollow stirrup
#

The speed vs. binary-code would be different for camera. Are you going to implement the table for some models?

stable olive
#

I could change it to rad/s or deg/s. Unfortunately that information isn't always available

stable olive
#

Internally right now obs-ptz maps the float values to whatever the dynamic ranges of the ptz controller is

hollow stirrup
#

I appreciate tt2468 for a lot of help. Also Henke37.

stable olive
wary wasp
#

Ping me whenever you get your prototype done if you'd like me to review the code

oblique yewBOT
#

Self-advertisement or advertisement for others is not allowed on this server unless it's directly relevant to a discussion or question. Please read the rules in the #rules channel.

white dune
wary wasp
#

I think that it could also be fine though for plugins to ignore the source_removed signal if they still want to use it

#

Though its probably not intended behavior

oblique scarab
#

I’m currently using the advanced switcher to change scene to play different videos with transitions - but would like to be able to have a playlist of videos from a folder or something and still have transitions between them… is this possible?

lusty bay
#

how is this related?

onyx vapor
#

so the async delay plugin... it just adds the received video frames to a FIFO, then pops off and returns an earlier frame that it stored previously?

#

and that is okay?

#

so for example i could make a plugin that re-orders frames? it would be useless... but it is valid?

#

filter_video receives an obs_source_frame as an argument. does it have to return the same one? is it valid to return a different pointer to an earlier frame? or do i have to memcpy the framebuffers around?

#

can i return the same frame pointer multiple times?

swift dust
#

That's why

lusty bay
#

oh its also a wrapper

wary wasp
# onyx vapor can i return the same frame pointer multiple times?

Well each frame has an attached timestamp, so depending on what you're doing you may have to generate new timestamps for the frames in order for the graphics thread to accept them. I believe it's technically possible to submit the same frame multiple times (with timestamps modified), but I'm not sure if there are negative implications (like performance or memory usage) to it.

onyx vapor
#

i'm hacking on obs-backscrub. it removes camera background without a greenscreen using tensorflow

#

the problem is it can't quite run in real time

#

so currently the background region it removes actually belongs to an earlier frame

#

so i want to delay the frames so that they match the mask

#

the maskgen is run on a separate thread, so you get a frame, pass it to the thread, then some time later when you get another frame, pull the (now out of date) mask from the thread

#

so i'm thinking two queues, push frames, pull frame+mask and return it

#

the video will then be delayed, but it will match the mask, and it opens the possibility to use more than one worker thread

wary wasp
#

Whatever you do, you can't block the graphics thread for things like synchronization primitives.

#

You can also make your processing thread submit the frames directly to libobs, with a timestamp attached, where OBS will manage the buffering required

onyx vapor
#

by the graphics thread, you mean the "main" thread from the plugin pov?

wary wasp
#

Well from a plugin's POV, there really is no main thread. Execution can be performed in any of the 3 threads pretty easily

onyx vapor
#

i consider the main thread to be the thread that calls .filter_video

wary wasp
#

In the case of outputting video though, yes it would be the graphics thread

#

I consider the main thread to be the UI thread personally

onyx vapor
#

i'm not interacting with that from within the context of a filter plugin though

#

anyway, i know i can't block in .filter_video, and the current code doesn't - at least not for any significant length of time (there's a minimum amount of locking, way less than 1 frame)

wary wasp
#

Oh I was not aware you are developing a filter and not an input, sorry

onyx vapor
#

yeah

#

also i didn't create this plugin, i am just trying to improve it

lofty yarrow
#

why obs does not render a scene when im on the another screen , my mean is i send a scene preview to a monitor and my choised scene is another one ,,, the last scene on monitor and ndi output is black.. thats mean obs dont render that

versed knoll
#

i'm trying to switch to obs portable mode, but for some reason websocket doesn't seem to work. if I use my regular obs install i can connect with SL Chatbot just fine, but using OBS in portable mode doesn't seem to work. websocket appears to be installed correctly and i'm using the same credentials, but chatbot just doesn't connect. anyone have any suggestions?

#

The Portable folder is separate from the install. I copied all my config from appdata into the portable dir, all the scenes are there. and unzipped the websocket plugin into the portable dir. websocket appears in the menu, but chatbot just doesn't connect to portable, but it does to the normal install

somber beacon
#

websocket seems to be broken on portable mode

versed knoll
#

oh no 😦 it's not listed as an issue on the websocket github

somber beacon
#

I tried to use the websocket for my stream deck but it wouldn't connect on portable

versed knoll
#

I hope it's just something we're missing, because I stream from a different PC that I'll be using to change config and stuff, would be cool to just change it in one place

somber beacon
#

well I just used the official obs plugin from my stream deck instead of barraider's garbage so at least I got it fixed lol

versed knoll
#

ah yeah I'm not using streamdeck 😦

simple wasp
#

can someone help me? I use scrcpy and is there anyway for me to record phone internal audio on my pc?

peak vector
#

unfortunately capturing androids is a bit finicky

simple wasp
#

so sndcpy?

mossy lintel
#

@versed knoll websocket works perfectly fine in portable mode here. and also it works fine with SL chatbot in portable mode as well. must be some particular culprit in your case.

versed knoll
storm star
#

Does anyone know of a tool that could create a text input with advance option like the right side bar featured here in PTI? Not looking for scrolling text, but something that could move on to the next in the list essentially when needed.

topaz crypt
#

are there any obs plugins that maybe provide a filter that's like... "when this thing is showing, hide or show this other thing"?

vale vine
#

Streamer.bot may be able to do that with custom if/logic statements

#

Lioranboard, which I've not used, I imagine should be capable too

topaz crypt
#

i'm trying to figure out how to use the obs-source-record plugin to stream a scene that contains my content (via virtual camera) and twitch overlays while simultaneously recording just the content, but i want to have different twitch overlay layouts

#

i've got the scene streaming separately

#

i just don't have any idea how i could turn on/off different overlay "layout" sources in that scene when i change other scenes

vale vine
#

Already using multiple obs instances?

topaz crypt
#

no, just one

vale vine
#

That might make your life "easier"

topaz crypt
#

the obs-source-record plugin enables this

#

well, wouldn't it be even harder to turn sources on and off if they're in a whole separate obs instance?

harsh topaz
#

Nested scenes and multiple scenes with various overlays?

vale vine
#

That might be a good vibe

#

Groups if they weren't buggered

topaz crypt
#

but i need to record an overlay-less version while streaming the overlay version

harsh topaz
#

If you're enabling disabling an overlay anyway you may as well change scene

topaz crypt
#

so i have to separate the overlays from the scenes

vale vine
#

2 instances for this might actually be the ideal approach

harsh topaz
#

You put your gameplay in a nested scene. Put that scene into your main scene

topaz crypt
#

what would 2 instances give me that one instance can't?

harsh topaz
#

Then source record filter on the nested scene

#

And press record

topaz crypt
#

ok but i have a dozen scenes with vastly different layouts

#

that i want to switch between

harsh topaz
#

It's almost like having many different overlays and layouts require different scenes :)

topaz crypt
#

well, let's say 3 layouts

vale vine
#

I think you are missing how the nested scene functions

harsh topaz
#

That's why they exist, scenes

topaz crypt
#

i have many nested scenes

#

i think you may be missing a part of what i'm saying

vale vine
#

Or maybe I'm missing your end game?

analog ruin
#

like that? Web source some cool duder made (FunctionDJ)

#

@storm star