Spout and Resolume Arena 6

Hi, I’m very new to both, Spout and Arena. I’m trying to connect OBS to Arena so I can correct a perspective from a live feed.

So far I got the feed from a live cam into Arena via USB Video to OBS but the input is very jerky/laggy. One of the support guys from the Resolume slack suggested to use Spout instead of USB Video. I got Spout but when I drag the Arena Composition on the deck from the Spout Servers, under Sources, it’s black. No feed is coming trough.

I tried the Demo Sender and that one it’s working.

Any suggestions? Thank you.

The “Arena Composition” source is the output of Arena itself. What you need is a Spout output plugin for OBS to send to Arena. The Spout plugin from Off World Live should do the job. Then you should see OBS listed in the Arena Spout sources.

1 Like

OK, I installed the plugin, I started it in OBS and now I can see the OBS_Spout under sources. But now the feed constantly loops, between OBS and Arena and back, and every correction I make in Arena just multiplies with every loop.

I might be missing something but in my mind, the right way to do what I need was to get the live feed into the Arena first, apply the correction, then send it to OBS where I can add some overlay before I send it to youtube

That seems the way to do this. I am not sure what is happening with the feedback you describe.

I mean, I got the input from the OBS into the Arena and then back to OBS, and now the OBS is changed, going back to Arena and so on… it’s like streaming your own monitor :slight_smile:

Back to the issue, I was thinking to get the feed into the Arena with USB Video (I know that works) and output with Spout. But is there a different (maybe better) way to get the feed into the Arena?

Yes I see. That would be feedback as far as I can see.

I don’t know what “USB video” means. Is it a webcam of your camera? That could be slow. If it comes with some software that displays the image, you could try screen capture of that window.

USB Video is the option under Sources in the Arena, that’s available once I connect the camera. The camera is Canon LEGRIA HF R806 and it’s connected via a HDMI cable with a capture device on the end, to a USB port.

What I’m really asking, I think, is, is it possible to use Spout for input (somehow) and not just for output instead of NDI (network streaming)?

Not unless software for the camera supports Spout output like Arena does.

A follow up on the issue.
I managed to input the feed into the Arena and send to the OBS using Spout. But the end result is still a bit laggy. This is my latest stream

As you can see, the ball doesn’t roll very smooth, it glitches a bit.

Maybe I’m missing something on the settings side.

The feed is 1920x1080 at 24fps, reduced from 30fps in Arena.
In the OBS, under Sources > Spout Capture I have:

  • Composite mode: Opaque
  • Poll time for new senders: Slow

Under the Settings > Output > Streaming I have

  • Video Encoder: (NVENC, HEVC)
  • Encoder Preset: P6 Slower (Better Quality)

Bitrate is 8000 but the same is happening with 6000, the network can handle even higher bitrates.

If I bypass the Arena and source the feed directly into the OSB everything is smooth. The video card is an Nvidia GTX 1050 on a laptop.

Spout texture sharing is unlikely to be directly causing the latency. Time per frame is less than 0.5 milliseconds. But I notice you mentioned laptop. This brings in complications of Power Saving graphics and differences between applications.

Open SpoutSettings and you will find help buttons next to "Nvidia " and “Windows graphics settings”. Read them both. Make sure that “Optimus global processor” is set to “High performance” and “Threaded Optimization” is checked off. Check the Windows “Graphics performance preference”. If Resolume Arena is listed, set to high performance.

Also open the Nvidia control panel “Manage 3D settings” and check the Global Settings tab to make sure these settings are changed. In the “Program Settings” tab, if “Resolume Software Arena.exe” is listed, check the individual program settings. If OBS is in the list, check that as well.

I also notice that you are reducing the frame rate from 30 to 24. This is a difference that could be having an effect. Try leaving it at 30 if possible. As separate test, try the fastest streaming settings in OBS to see if they make a difference (Tuning - Ultra Low latency and Preset - P1).

I have had some experience with a USB camera and found that, although it is compatible with USB 3.0, the camera utilised all of the available USB bandwidth. Using a USB 2.0 port gave a better result.

1 Like

i still see your latest stream is stil laggy, i also suspect a frame missmatch. i notice you’re from romania which is a pal country so your camera might be set to 25 or 50 fps. usually that can be changed in camera settings for dslrs but not with all camcorders. if you cannot change it, set obs and resolume to 25. another thing for ntsc users, 30 in cameras is usually 29.97, obs has a preset for that but resolume does not, however you can type in your desired value even if it’s not in the composition settings presets. so if your camera is 30p [or 60] try setting arena and obs to 29.97. if your camera is 25p [or 50] set arena and obs to 25. no need to lower preset quality, the dedicated hardware encoder on the gtx 1050 should handle p6.
or, if you can, just use the corner pin shader in obs to do the perspective correction and bypass this whole arena thing, if distortion correction is all you’re using it for

Thx for the suggestion.
Unfortunately I couldn’t make it work. I tried every combination I could think off. The lag was there.

I did my last stream on monday, but I bypassed Arena altogether. I set the framerate to 25 and everything else to maximum settings and everything workd smoothly. Unfortunately the stream was over 6h long so youtube restricted any editing to it so it’s offline atm. I need to split it in two and upload it again, but I didn’t found time.

I was anxious to try the corner pin filter but I had limited time before the action started and didn’t manage to make it work, I copied the .lua file to

C:\Program Files\obs-studio\data\obs-plugins\frontend-tools\scripts

but it doesn’t appear under filters (maybe it’s not a filter) - any advice on how to make it work would be appreciated.

As @dradutu has suggested, your camera is 25fps but the encoded video is 30fps. The two should match.

To activate the corner pin script you have to add (+) “Corner Pin” to “Filters” - “Effect filters”.

In my last attempt I did match the frames. It didn’t help. I’ll experiment some more after I try the ‘corner pin’ filter.

About the filter, I copied the filter-cornerpin.lua file in the script folder quoted in my previous message but there is no “Corner Pin” option in neither locations, Filters or Effect filters. What am I missing?

and sorry if this is not the place to ask questions about a plugin.

If you download your Youtube video and use MediaInfo, you can see that it is encoded at 30 fps.

To test Corner Pin, I copied the lua file to the same folder as you indicated . “Corner Pin” shows up in the list of effects in the “Filters > Effect Filters” pane when you press “+” to add. You have to select it as an effect to add.

And regarding the stream, the one you are referring to is from 2 weeks ago and you are right, it is at 30fps. The last one is from monday, 3 days ago, but because of background music it raised some copyright claims and it’s blocked atm.

OK, if the last video from Monday checks out with MediaInfo at 25fps, and does not show the hesitations of the 30fps version, it shows something at least. If Youtube is converting it to 30fps, you can test that too. I can’t suggest why the filter does not appear in your list.