Jitter DeckLink duo 2 with 3 SDI in and 1 SDI out

Christophe Burkman's icon

Hi there,
A question already many times asked and yet i did not found any answer.

Let's keep aside the purely hardware questions : everything is set DeckLink side, simple mapping SDI 1 2 3 4

What i want to do :
3 cam getting in SDI 1,2,3
in MAX getting my jit.grab and do my stuff ( color, framing, cropping etc ... )
SDI 4 getting to projector

The input is not a problem once you get how works DeckLinks. I grab all my cams and can do everything i want.
Yet the output is the problem. Can't get to output my final comp through SDI 4. For now i use my GPU HDMI with SDI converter.

But, I have no problem in other solutions like OBS, Resolume, Isadora, to set up my output to SDI 4.

So i'm probably missing something to reproduce this with MAX, knowing that max jitter is a real choice for other reasons and i can't afford to switch to another software.

Any tips on this please ?
Thanks
;)

David Butler's icon

So AFAIK, a Decklink SDI output is not the same as a Windows/Mac accessible display. It has no connection to the GPU, therefore in order to output to it, you have to implement the Blackmagic SDK in your software and specifically support it. Unless someone writes/has written a Jitter external to support this, it won't be possible natively. Your best bet is to look for some sort of utility which you can send your Jitter output to (https://vdmx.vidvox.net/blog/black-syphon for example).

Personally I would avoid using these cards for output as the requirement to use an SDK for output introduces extra latency, performance cost and troubleshooting complication. In order to send a video output frame to the Decklink, the SDK has to readback the texture from the GPU, which is an expensive operation. Doing a hardware SDI conversion out of a GPU output is a far better solution. All professional PC based video servers which offer native SDI outputs do it this way (using their own internal hardware converters), and seeing as you can get an HDMI-SDI converter for dirt-cheap now anyway, it's also more cost-effective.

Christophe Burkman's icon

That's some great informations. Thanks David.

I would prefer the converter option than using a second app like syphon or spout to send to OBS and SDI out. ( forgot to say i'm working on PC windows ).

Yet i cant explain why is it so easily done with OBS and almost no latency. Does that mean the BM SDK is fully implemented in OBS ?
As we can see in this photo, where i asked my friends to move their arms , i have a slight latency with live action ( background ) and SDI input ( left screen ), but i have almost none with input and output ( right screen ). I made a strong hue shift color correct. This effect would be proof that the GPU does his part between SDI in and SDI out, am i right ?
The same can be done with Isadora or Resolume with almost no latency neither.

Thanks again for your help.

Latency check between SDI in and SDI out


Jesse's icon

There are ways to interface with SDI hardware through the GPU-direct system that can achieve low i/o latencies such as what you're seeing with OBS. As far as I know Max does not have this implemented, so if you need to stay in Max you're better off using a GPU output with a converter as you're currently doing.

David Butler's icon

PC video capture by its nature involves a copy from the device to RAM or VRAM (and in the worst case to RAM and then VRAM depending on software implementation). Even the highest performance software systems (using GPU direct as Jesse says above) have an unavoidable amount of latency, at minimum around 3 frames at 60 Hz (50 ms), and more likely to be 4-5 (~80 ms). This is unfortunately the cost of software-based video processing!

Christophe Burkman's icon

Thanks for your help guys.

When you say "PC video capture", do you mean it would be different and maybe easier with mac ?


Still sad to think Max suffers the lack of this function where every one else seems to have it.
Maybe in time it would be possible. For now i keep the hdmi>sdi converter from GPU solution.

I stay tuned in case of new development and go back to my other post about live camera slow motion, if you have the courage to take a glimp at it. ;)
Thanks again !
;)

David Butler's icon

I was using 'PC video capture' as shorthand for any kind of software based video processing, as an alternative to hardware based processing. A mac still has to go through the same process.

Features in Max to support specific hardware tend to get implemented when someone needs them and develops them themselves or funds their development. I've implemented support for lots of different video hardware before, but I'd never have the requirement to implement deck-link output because IMO it offers a worse alternative to something that's already quite easy.

Decklink output is really a tool designed for broadcast playback or video-editors. The advantage it does have over converting a GPU output is that the output 'location' is very specific and not subject to the whims of the operating systems display manager, or the GPU driver and output system. This avoids a lot of issues with arranging displays/identifying them/dealing with EDID, etc. So it makes getting an SDI output easier in a way. The cost of this is the additional latency/processing overhead. For very basic playback this is of no consequence because you're not pushing the system very hard anyway. However in a live real-time performance environment, or one where you can directly visually compare the live subject and the camera feed, it's problematic.

Christophe Burkman's icon

Everything is much clearer now, thank you all.

And yes my choice will be hdmi from GPU to a good SDI converter and then to the projector. If some would ask why not directly HDMI to the projector, well because HDMI is not really suited for long cable.

Another way, for those interested, would be to output your final video to a jit.world and then under OBS studio, capture a window, choosing the window of your jit.world, whatever the name you choose, and then configure OBS to output the SDI of your choice from Decklink. But i can easily guess it would be poorly reliable for a live show. But just for fun of testing it's a nice little "hack".
Thanks again.
See you.
;)

Dante's icon

Hi all, very interesting conversation to follow, thank you for sharing.

I am curious David, when you say 'decklink' are you referring only to blackmagic type cards, or would your assessment here:

Decklink output is really a tool designed for broadcast playback or video-editors.

also cover capture pci cards such as an elgato or AVer?

David Butler's icon

I'm only really talking there about cards with integrated output (which most capture cards don't have). PCI capture cards suffer from issues with latency, but there's no other way way to get a video signal into a PC. Video output however is always best done with an actual GPU.

Dante's icon

gotcha, thanks David

Roland Nebe's icon

Christophe, would it be possible for you to let me know which version of Max and the Blackmagic Video Desktop you are on, and which format does work for you? I'm in an awkward situation with latest win 10, latest Max 8 and Blackmagic Video Desktop 12 that doesn't let me jit.grab the Decklink Duo 2 Stream (but a Decklink Mini Stream on the same machine.) You'd help me a lot by letting me know which configuration works for you!