Daniel B. Chapman

Feature Request: NDI Support

7 posts in this topic

I've been recently using NDI in my previz workflow to pass streams from machine to machine and it is definitely easier than any of the other solutions I've worked with recently. Can I request that we get this into Vision to replace the clunky video capture problems? 

 

https://www.newtek.com/ndi/

 

Here's a link to the open frameworks plugin which gives some idea of how easy this actually is:

https://github.com/leadedge/ofxNDI

 

I think the receiver code (video source) is less than 600 lines of code interfacing with the SDK

0

Share this post


Link to post
Share on other sites

Hey Daniel,

 

While I must point out that, integrating something new into existing code is rarely as easy as it may seem, this is interesting. I've seen similar in use with large video walls in the past. Which media servers are using this protocol I haven't looked at them in a while so I'm a bit behind the times.

0

Share this post


Link to post
Share on other sites

Mark,

 

As a developer myself I can understand the hurdles. I'd also like to point out that video input has been broken in Vision 4, Vision 2017, and Vision 2018 with some, but not all, capture cards working in Vision 2.3. I have (4) computers that I can test against (a surface, a MacBook Pro 2016 Touch, a MacBook Pro 2010, and a box I built myself running windows 10 that's nothing fancy) and none of these have working video input. Mac OS ends up the closest with some bizarre pixelated green/magenta image of my webcam.

 

Considering the fact video is broken in Vision as it stands you guys might want to explore "universal" connectors like NDI as it seems your ability to support hardware is hampered at best. I could be wrong and a video patch is on the way but I downloaded the Vision 2018 demo today and I get the same broken interface with no available inputs for video projection.

 

While I'm on the topic it would be nice to see you integrate:

  * Blackmagic inputs (the SDK is pretty well documented)

  https://www.blackmagicdesign.com/support/

  Why? Because they are solid affordable capture cards that run on Mac and Windows 

 

  * Syphon inputs on Mac (again, very well documented software and a simple texture-share given the fact you're rendering in OpenGL this is borderline trivial)

   http://syphon.v002.info/

 Why? Because it is native to Mac OS and used in the VJ pipeline by basically every media server. This bypasses the hardware issue entirely so it seems like an obvious choice.

 * Spout inputs on Windows (which is basically Syphon for Windows)

   http://spout.zeal.co/

Why? Because it is Syphon for Windows. It bypasses the hardware chain entirely and is a simple shared texture.

 * Support for Virtual Webcams in general which would render all the above moot as you could use Syphon or Spout to make virtual inputs

 

OR

 something like NDI which has converters for Blackmagic, Syphon, Spout, Capture Cards, Web Cams, Other media servers and CITP protocols. Since this runs of TCP/IP it also renders the hardware question moot. As a software company the phrase "renders the hardware question moot" should be of interest to you.

 

I've been fairly patient on this issue but I'm currently evaluating Capture Nexum and Realizzer for purchase in my next project because Vision is broken for video. I've already suspended my subscription until this issue is fixed. And I suspect that will mean I'm running Vision 2017 for a very long time at this rate.

 

"Which media servers are using this protocol I haven't looked at them in a while so I'm a bit behind the times."

This isn't really a valid question at this point given the state of projection design. Not everyone is running a Hippotizer or a D3 on gigs. Many of us use Watchout, QLab, Resolume, or a variety of other pipelines (Touch Designer/Isodora) in our work at the regional level for theater and dance and the inability to plug anything into Vision is extraordinarily frustrating. 

 

1

Share this post


Link to post
Share on other sites

** by "not plug anything into" I mean I literally can not purchase a capture card that will work with Vision 2017/2018 on Windows 10 or Mac OS and render video inside Vision. This isn't a case of me trying to skirt a hardware requirement. I would happily pay $300 to get this working right now and the answer is I can not.

Edited by Daniel B. Chapman
0

Share this post


Link to post
Share on other sites

Daniel,

 

Believe me I understand your frustration. I probably get more upset than you do, when vision falls short. I along with others have years of our lives in this product, so it’s something we very much want to be good.

 

As for what media servers support the protocol, that’s my fault. In my head, when I said media servers I was including software with that. What I’m really asking is, how many people would I make happy if we put the time into this, over fixing the existing system. We only have so many hours in the day, so we want to make the most people happy with that time as we can. To justify putting time into changing the existing system, I have to be able to say I’m going to make more people happy adding the new thing, than I would fixing the old thing.

 

Honestly, I like the idea, but I do have some concerns. Glancing over their website I saw they have a VLC plugin, which is super awesome but, their download links are broken so I couldn’t check it out. Same thing for the SDK. If you happen to have good download links to those, please DM them to me so I can give it a look. One of the major things I’m concerned with is you said it uses converters to deal with other protocols. Are these converters hardware or software? How much do they cost? Who makes them? With capture cards there’s lots of venders and price points, can we say the same thing about NDI?

 

These are all questions we have to ask when we’re trying to figure out where our time is going to be best spent. So, the more detail you can give me, the better.

0

Share this post


Link to post
Share on other sites

Mark,

 

I think the general problem with the way Vision is attempting to handle video is that you are not providing solid hardware support and the only reliable support seems to be CITP which is pretty similar but far more complex to implement for most applications because it manages a lot more than video.


NDI's SDK is here. I have not personally coded up an implementation (though I'm probably adding it to my media servers after this opera). It is really just a UDP video stream that you can tap into.
https://www.newtek.com/ndi/sdk/

 

Essentially the pipeline is just:
[NDI Stream Name]::[Frame #][some headers with sizing][pixels]

Since that's pushed over IP it is available on local host or on your network. It has a couple little preview image things that get pushed but in general you just pick a name and then decode it on whatever device you want.

 

Here's a link to two utilities I use because I'm using OpenGL calls most of the time:

Windows I just take a Spout broadcast and throw it over the network

http://spout.zeal.co/download-spout-to-ndi/

On Mac I run

http://techlife.sg/TCPSyphon/

which is basically the same thing.

 

This takes the video hardware entirely out of the chain because you're taking a texture and mapping that to a video stream that is decoded on the other end. It really is pretty simple, especially if you are (and I assume you are) just taking a texture and mapping that to your light source for video. 

 

As to your concerns about converters: yes, that's a problem but it is significantly less of a problem than trying to support all the native capture cards out there (and it is clear your native hooks do not work at the moment). The IP solution bypasses this because there are a variety of utilities to get the format into NDI. There's a "pro version" here for Blackmagic cards:

https://itunes.apple.com/us/app/ndi-source/id1097524095?ls=1&mt=12 which makes some pretty cheap USB3/Thunderbolt hardware available or you.

 

Frankly, I'd rather see Syphon/Spout connectivity, but I operate at a pretty high technical level for video/projection design as I write my own software for most of it. I think having some simple connectors available would be a very quick way to get around this problem. I suspect NDI is going to be a standard that sticks around for quite a while. I first used it on a major corporate event and I'm seeing it everywhere now. 

 

At the end of the day I don't actually care how I get a video stream into Vision I just need to be able to get a video stream into Vision. NDI makes multiple inputs a lot easier and in many cases you can completely bypass a capture card with software. That being said, running a HDMI cable out of a Mac into the back of my PC wouldn't really bother me if it meant I could render projection mapping effects easily for a director. In many ways I think supporting Blackmagic devices would be a good choice as they are relatively low cost (Intensity Shuttle) and the SDK is available for Windows/Mac so you don't have to do the hard work or depend on the operating system.

 

At the end of the day I just want to get a video source into Vision. 2.3 just doesn't cut it for professional renderings (and I did make that work with an AverMedia PCIe card). 

Edited by Daniel B. Chapman
0

Share this post


Link to post
Share on other sites

Daniel,

I totally get it. There's like to have and need to have, and we need to have video steaming back in vision in some form, we're on the same page there. Honestly, I'd love it if we could support both or everything really, but again there's only so many hours in a day. On the up side NDI is cross platform, and at least on the concept level it seems simple enough. The converters though may be a little harder sell, if we looked at this as a full replacement.

 

As for spout and syphon, we've been asked several times about them. Spout is in a lot of stuff now, so it would be cool to support it but, it's windows only. Same thing for syphon. Everything in vision is cross platform. As it is now, I don't know that it would be considered because of that, I could be wrong though. If there was a library that rolled them together so we could use a single call for either in vision, that might be something to be considered.

 

On the up side, the library we use for capture actually has support for a lot of hardware, including black magic. It's just a matter of running down why it's not working. Which we are working on. I've personally put in more hours than I can count looking at this one thing. That being said, while I can't promise anything, I will be doing some deeper research into NDI once I get their SDK.

0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now