CLR Browser Source Plugin [OBS Classic ONLY]

I am trying to use CLR browser to display HTML files I write to disk. However, when I change an HTML file the browser image doesn't change on OBS. Is there any way to change this? Thanks in advance, whatever the answer! :D
 

deetari

Member
I am trying to use CLR browser to display HTML files I write to disk. However, when I change an HTML file the browser image doesn't change on OBS. Is there any way to change this? Thanks in advance, whatever the answer! :D

As far as I know, the plugin cannot detect changes to HTML files, and will simply display a cached page (like any browser you use normally). You can use Javascript and other methods to serve dynamic webpages or content instead, but I'm not too familiar with the scripting involved, myself, as I just use .swf files.
 

Kjopa

New Member
Hello guys i got problem with onPaint when i want to display alert in obs
14:10:56: CLR host plugin strings not found, dynamically loading 4 strings
14:10:56: CLRHost::Initialize() attempting to load and start the .NET runtime (null)
14:10:56: CLRHost::Initialize() Found version v2.0.50727 .NET runtime
14:10:56: CLRHost::Initialize() Found version v4.0.30319 .NET runtime
14:10:56: CLRHost::Initialize() attempting to use v4.0.30319 .NET runtime
14:10:56: CLRHost::LoadInteropLibrary() load the assembly plugins\CLRHostPlugin\CLRHost.Interop.dll
14:10:56: CLRHost::LoadPlugins() attempting to load the plugin assembly CLRBrowserSourcePlugin
14:10:56: CLRHost:: Could not find/load browser settings at location C:\Users\Marcin\AppData\Roaming\OBS\pluginData\browser.json
14:10:56: CLRHost:: Exception: System.IO.FileNotFoundException: Nie można odnaleźć pliku 'C:\Users\Marcin\AppData\Roaming\OBS\pluginData\browser.json'.
14:10:56: Nazwa pliku: 'C:\Users\Marcin\AppData\Roaming\OBS\pluginData\browser.json'
14:10:56: w System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
14:10:56: w System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
14:10:56: w System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
14:10:56: w CLRBrowserSourcePlugin.Shared.BrowserSettings.Reload()
14:10:56: CLRHost::LoadPlugins() successfully added CLR plugin [Type: CLRBrowserSourcePlugin.CLRBrowserSourcePlugin, Name: CLR Browser Source Plugin]
14:10:57: Open Broadcaster Software v0.656b - 64bit ( ^ω^)
14:10:57: -------------------------------
14:10:57: CPU Name: Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz
14:10:57: CPU Speed: 4080MHz
14:10:57: Physical Memory: 8134MB Total, 5040MB Free
14:10:57: stepping id: 3, model 60, family 6, type 0, extmodel 1, extfamily 0, HTT 1, logical cores 8, total cores 4
14:10:57: monitor 1: pos={0, 0}, size={1920, 1080}
14:10:57: monitor 2: pos={1920, 0}, size={1680, 1050}
14:10:57: Windows Version: 10.0 Build 10240 (revision 16384)
14:10:57: Aero is Enabled
14:10:57: -------------------------------
14:10:57: OBS Modules:
14:10:57: Base Address Module
14:10:57: 0000000006600000 OBS.exe
14:10:57: 000000005F9D0000 OBSApi.dll
14:10:57: 0000000066950000 CLRHostPlugin.dll
14:10:57: 00000000630C0000 DShowPlugin.dll
14:10:57: 0000000060050000 GraphicsCapture.dll
14:10:57: 0000000060020000 NoiseGate.dll
14:10:57: 000000005FE90000 PSVPlugin.dll
14:10:57: 000000005FE60000 scenesw.dll
14:10:57: ------------------------------------------
14:10:57: Adapter 1
14:10:57: Video Adapter: NVIDIA GeForce GTX 970
14:10:57: Video Adapter Dedicated Video Memory: 4202971136
14:10:57: Video Adapter Shared System Memory: 4265015296
14:10:57: Video Adapter Output 1: pos={0, 0}, size={1920, 1080}, attached=true
14:10:57: Video Adapter Output 2: pos={1920, 0}, size={1680, 1050}, attached=true
14:10:57: =====Stream Start: 2015-10-06, 14:10:57===============================================
14:10:57: Multithreaded optimizations: On
14:10:57: Base resolution: 1920x1080
14:10:57: Output resolution: 1920x1080
14:10:57: ------------------------------------------
14:10:57: Loading up D3D10 on NVIDIA GeForce GTX 970 (Adapter 1)...
14:10:57: ------------------------------------------
14:10:57: Audio Format: 48000 Hz
14:10:57: ------------------------------------------
14:10:57: Audio Channels: 2 Ch
14:10:57: Playback device Default
14:10:57: ------------------------------------------
14:10:57: Using desktop audio input: Głośniki (Realtek High Definition Audio)
14:10:57: Global Audio time adjust: 0
14:10:57: ------------------------------------------
14:10:57: Using auxilary audio input: Mikrofon (C-1U )
14:10:57: Mic time offset: 0
14:10:57: ------------------------------------------
14:10:57: Audio Encoding: AAC
14:10:57: bitrate: 128
14:10:57: ------------------------------------------
14:10:57: device: Logitech HD Webcam C270,
14:10:57: device id \\?\usb#vid_046d&pid_0825&mi_00#6&2166276f&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\{bbefb6c7-2fc4-4139-bb8b-a58bba724083},
14:10:57: chosen type: I420, usingFourCC: false, res: 1280x960 - 1280x960, frameIntervals: 333333-2000000
14:10:57: use buffering: false - 0, fourCC: 'I420'
14:10:57: audio device: Wyłącz,
14:10:57: audio device id Disabled,
14:10:57: audio time offset 0,
14:10:57:
14:10:57: Using directshow input
14:10:57: Using bitmap image
14:10:58: CLRHost:: Browser 1: Status message:
14:10:58: Scene buffering time set to 700
14:10:58: ------------------------------------------
14:10:58: Video Encoding: x264
14:10:58: fps: 30
14:10:58: width: 1920, height: 1080
14:10:58: preset: veryfast
14:10:58: profile: high
14:10:58: keyint: 250
14:10:58: CBR: yes
14:10:58: CFR: yes
14:10:58: max bitrate: 1000
14:10:58: buffer size: 1000
14:10:58: ------------------------------------------
14:11:00: CLRHost:: Browser 1: Status message:
14:11:23: CLRHost:: Browser 2: Status message:
14:11:25: CLRHost:: Browser 2: Status message:
14:11:27: CLRHost:: Browser 3: Status message:
14:11:28: CLRHost:: Browser 3: Status message:
14:11:41: CLRHost:: Browser 4: Status message:
14:11:43: CLRHost:: Browser 4: Status message:
14:12:05: Total frames encoded: 1979, total frames duplicated: 0 (0.00%)
14:12:05: Total frames rendered: 2004, number of late frames: 0 (0.00%) (it's okay for some frames to be late)
14:12:05:
14:12:05: Profiler time results:
14:12:05:
14:12:05: ==============================================================
14:12:05: video thread frame - [100%] [avg time: 1.081 ms] [children: 42.2%] [unaccounted: 57.8%]
14:12:05: | scene->Preprocess - [34.2%] [avg time: 0.37 ms]
14:12:05: | GPU download and conversion - [7.96%] [avg time: 0.086 ms] [children: 7.22%] [unaccounted: 0.74%]
14:12:05: | | flush - [6.57%] [avg time: 0.071 ms]
14:12:05: | | CopyResource - [0.463%] [avg time: 0.005 ms]
14:12:05: | | conversion to 4:2:0 - [0.185%] [avg time: 0.002 ms]
14:12:05: Convert444Threads - [100%] [avg time: 1.026 ms] [children: 99.6%] [unaccounted: 0.39%]
14:12:05: | Convert444toNV12 - [99.6%] [avg time: 1.022 ms]
14:12:05: encoder thread frame - [100%] [avg time: 2.016 ms] [children: 0.149%] [unaccounted: 99.9%]
14:12:05: | sending stuff out - [0.149%] [avg time: 0.003 ms]
14:12:05: ==============================================================
14:12:05:
14:12:05:
14:12:05: Profiler CPU results:
14:12:05:
14:12:05: ==============================================================
14:12:05: video thread frame - [cpu time: avg 0.701 ms, total 1406.25 ms] [avg calls per frame: 1]
14:12:05: | scene->Preprocess - [cpu time: avg 0.21 ms, total 421.875 ms] [avg calls per frame: 1]
14:12:05: | GPU download and conversion - [cpu time: avg 0.109 ms, total 218.75 ms] [avg calls per frame: 1]
14:12:05: | | flush - [cpu time: avg 0.085 ms, total 171.875 ms] [avg calls per frame: 1]
14:12:05: | | CopyResource - [cpu time: avg 0.007 ms, total 15.625 ms] [avg calls per frame: 1]
14:12:05: | | conversion to 4:2:0 - [cpu time: avg 0.007 ms, total 15.625 ms] [avg calls per frame: 1]
14:12:05: Convert444Threads - [cpu time: avg 1.029 ms, total 4078.13 ms] [avg calls per frame: 2]
14:12:05: | Convert444toNV12 - [cpu time: avg 1.029 ms, total 4078.13 ms] [avg calls per frame: 2]
14:12:05: encoder thread frame - [cpu time: avg 2.029 ms, total 4015.63 ms] [avg calls per frame: 1]
14:12:05: | sending stuff out - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
14:12:05: ==============================================================
14:12:05:
14:12:05: =====Stream End: 2015-10-06, 14:12:05=================================================
14:12:05: CLR host plugin instance deleted; removing dynamically loaded localization strings
14:12:05: Terminating 0x168c
 

Chi-Man Cheung

New Member
I used to have no problems using the CLR host plugin on windows 7. I upgraded to windows 10 this weekend and I tried reinstalling the CLR host plugin and I can see the plugin as a plugin but when I want to add it as a source it is not listed. Little more details:
Using the latest version of OBS656b, I installed the .net framework 4.6 and Visual C++ from MS, I tried using the plugin for both 32 bit and 64 bit. Added it to the seperate folders and started 32bit and 64 bit obs but same result. There are some youtube videos explaining this problem and with solutions like reinstalling it without uninstalling OBS but that didnt work.

Anything I can add to give more information or do to make it work?
 

Gunduct~

New Member
i don't know if this is the right place to ask help on this plugin but whatever.

So hi, i'm Gunduct and i want to use CLR browser. Right.
So the problem is that when i install clr host, everything goes fine. BUT when i try to add a new source, the CLR browser doesnt show up. but when i enter the "plugins" window of OBS, it shows
that CLR is propely installed. a bit of help would INCREDIBLY be appreciated :(
 

DRF

New Member
Hey,
I tried installing the clr plugin, but it says that the plugin version is "internal version".
The issue is that in the settings -> browser, the general tab is empty.
I tried all sorts of solutions, changing obs version, deleting the 32 bit folder(leaving the 64 bit one), uninstalling the c++ for x84, nothing works.
Does anyone know how to fix this :)?
Here is my log file:
17:54:57: CLR host plugin strings not found, dynamically loading 4 strings
17:54:57: CLRHost::Initialize() attempting to load and start the .NET runtime (null)
17:54:57: CLRHost::Initialize() Found version v2.0.50727 .NET runtime
17:54:57: CLRHost::Initialize() Found version v4.0.30319 .NET runtime
17:54:57: CLRHost::Initialize() attempting to use v4.0.30319 .NET runtime
17:54:57: CLRHost::LoadInteropLibrary() load the assembly plugins\CLRHostPlugin\CLRHost.Interop.dll
17:54:57: CLRHost::LoadPlugins() attempting to load the plugin assembly CLRBrowserSourcePlugin
17:54:57: CLRHost:: Could not find/load browser settings at location C:\Users\Administrator\AppData\Roaming\OBS\pluginData\browser.json
17:54:57: CLRHost:: Exception: System.IO.FileNotFoundException: Could not find file 'C:\Users\Administrator\AppData\Roaming\OBS\pluginData\browser.json'.
17:54:57: File name: 'C:\Users\Administrator\AppData\Roaming\OBS\pluginData\browser.json'
17:54:57: at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
17:54:57: at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
17:54:57: at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
17:54:57: at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
17:54:57: at CLRBrowserSourcePlugin.Shared.BrowserSettings.Reload()
17:54:57: CLRHost::LoadPlugins() successfully added CLR plugin [Type: CLRBrowserSourcePlugin.CLRBrowserSourcePlugin, Name: CLR Browser Source Plugin]
17:56:03: CLR host plugin instance deleted; removing dynamically loaded localization strings
 

Pro7ip

New Member
I've created several custom alerts and labels for a friend's stream, however my friend is having issues with fps drops when CSS animations play across multiple instances of the CLR browser plugin.

We are using CLR Browser sources to display twitch alerts, stream labels, and an ad slider with custom css/js. The issue is isolated to his computer/obs client and I'm unable to replicate the problem.

You can see them working properly, together and without frame lag, in this gif or on this VOD.

Gb8HFX6.gif


His hardware (i7 4790k, GTX 980 ti) easily eclipses mine (i5 3570k, GTX 560 ti) so it's not a performance issue.

It occurs even when previewing the stream with no other sources (game or video) so its not an issue of bitrate or encoding.

We both run 64bit OBS for Windows, client and plugin versions, and the same .Net runtime.

Reverting to the older CLR Browser plugin (Mark2.7) fixes the issue for him, unfortunately this version doesn't support <audio> used by twitch alerts. I'm hoping this helps narrow down the cause.

I appreciate any help or ideas you can offer.
 

Draygera

New Member
Anyone have any ideas how to add something like a GoFundMe widget to a stream using CLR Browser? I'm asking because I'm working on setting up a charity event and would like to be able to show my goal and everything else on the stream
 

Anaerin

New Member
I have a request:

When this is made a global plugin (for instance), could it be possible to have a Javascript event fire when the scene changes? This would mean that in some instances, for overlays and the like, a single global source is needed, rather than one per scene, and the JS event can fire a function to alter the CSS, animate the moving, hiding or showing of items, and more.
 

ryigui

New Member
I just purchased a new laptop and it runs windows 10. I installed OBS no problem but then when I added and installed the CLR plug in and reopened OBS, everything was smaller. The whole program was very tiny but still ran. Resizing the window does not do anything and just adds more white space. Is there a way I can fix this?
 

Tink

Member
I'm trying to add an HTML page that embeds my webcam in CLR browser by using webrtc. But it seems that instead of selecting my webcam, it selects my capture card (Blackmagic Intensity Pro) instead, not sure why because it's not sorted alphabetically. I have to disable my capture card in Device Manager, reboot, start OBS and re-enable my capture card for both to work.

I've tried using getUserMedia() and sourceId constraints to select the correct device and it works when I test in Chrome/Chromium. In Debug mode the correct device is shown in the console but I still get a black screen in CLR Browser? The --enable-media-stream flag is set in the CommandLineArguments and it works when my capture card is disabled altogether but obviously I'd rather not reboot my pc every time I wish to stream.
 
Last edited:

BrojayHD

New Member
Problem here:
The plugin works fine, I can show any webpage in OBS without any problem, HOWEVER twitch alerts doesn't show at all.
Yes I've copied the correct url, and yes if i change the url to any other website they show up just fine.
I'm trying this using the "test follower" feature on twitch alerts, they work if i just capture the launcher window instead of using CLR.
 

RoboticLizard

New Member
Same issue as ryigui here, affecting both 32-bit and 64-bit versions.

uO4mitC.png

7FsOe52.png

As you can see, the UI elements are greatly reduced in size, while the text in the menu bar and the volume sliders stretch outside of the areas they usually occupy. Will have to rework my setup until this gets fixed and I can use the plugin again.
 

RoboticLizard

New Member
@Sapiens To ensure scaling was completely disabled while also not affecting any other programs, I did so via OBS' compatibility settings. The results are better, but still unsatisfactory.

T2G2Ao4.png

While this does cause the menu bar to fit the text properly (and cause all other text to increase in size), the volume sliders still stretch beyond their boundaries and the whole interface is still incredibly small. As a visually impaired person using a 15-inch monitor, I cannot use the plugin until it can be installed without altering the size of the interface.
 

Sapiens

Forum Moderator
OBS isn't DPI-aware so you'll need to disable DPI scaling for your system (probably required to fix the remaining UI elements), wait for an update that fixes it, or try OBS-MP.
 
Top