JPGPU for OBS v1.0 Release
Added 2023-12-29 15:56:28 +0000 UTCAfter much fiddling around with things, I'm finally comfortable enough to release this initial version of the port of my personal JPEG compression effect to OBS, complete with truncation controls, built-in scaling options, & (admittedly crude) alpha preservation features.
It's never been easier to gaslight your stream viewers into thinking their connection has deteriorated!
Features:
- Compatible with individual sources & full scenes (NOTE: some sources, like groups, will need an extra Padding filter applied if scaling acts incorrectly)
- Truncation slider in filter allows for dynamic, user-controlled compression intensity
- Render Downscale slider allows easy setup for scaling without requiring multiple filter passes
- Block Size picker allows you to experiment with alternative block sizes for the DCT blocking (NOTE: higher block sizes will result in exponentially heavier GPU usage! It's highly recommended to use downscaling with the default 8x8 blocks setting to effectively intensify the compression instead)
- Alpha mode picker to choose the behavior for copying alpha data from the original input, either by copying the original alpha (clean, sharp edges with more control) or by checking the pixel color delta for areas with transparency (blocky, chunky edges with background bleed)
Setup:
1) Download the attached LUA script on this post, JPGPU-for-OBS.lua
2) In OBS, open Tools > Scripts to open the Scripts window
3) Under the box listing loaded scripts, click the + button ('Add Scripts') & choose the downloaded script
4) Back in the main OBS window, right click your scene (or source) & choose Filters
5) Click the + button in the lower left of the filters window & add 'JPGPU by ompuco'
I am very much looking forward to seeing what creative uses creators find for this silly, overly convoluted filter!
If you have any questions or concerns, please feel free to leave a comment. I'm well aware of many of the issues it currently has, but mention of any will let me know which ones people actually run into.
Comments
Yup, unfortunately I’m still working on fixing that issue. It’s sorta eluded me for the past 3 months. You can also use a crop/pad filter after the JPGPU filter and it should fix it as well.
ompuco
2023-12-31 07:37:16 +0000 UTCIt zooms into a corner when the filter is on and trimming the source brings the full screen back , as a workaround
Hope Ashmore
2023-12-31 06:46:06 +0000 UTCOoof, yeah, those instabilities are why I was hesitant for so long to release. Honestly haven’t been able to figure it out yet but I’d like to try again soon. You should be able to get a stable setup with enough tinkering, but getting there is annoying for sure. I’ve been keeping things disabled while reordering effects for that reason.
ompuco
2023-12-30 22:42:32 +0000 UTCI've run into an odd one (although I don't think this should affect my ability to use the filter yet, I was mostly testing it out) - if the filter is 5th or later in a list of filters, regardless as to whether the prior filters are enabled or not, the filter preview is just a solid colour block and the output freezes up. When this happens, I also sometimes notice a flood of logs alternating between "effect_setval_inline: invalid param" and "A sprite cannot be drawn without a width/height" in my logs folder. I also ran into a crash trying to hide/show other filters surrounding it, but I haven't been able to reproduce it, it's vague about why it crashed (It just says "Unhandled exception c0000005"), and I can't be 100% confident it's a JPGPU problem (although the responsible thread was the graphics thread, and part of the stack on that thread does involve Lua, so it might?) I can send you the crash log if it'd help with things, regardless! That being said, this is still super cool and I'm gonna have to figure out a way to use this! I'm gonna make my streams literally unwatchable >:3
Holly Tenna Lotor
2023-12-30 22:06:41 +0000 UTC