NDI SDK for UE5

Hello guys, just wondering if anyone has successfully ported the NDI plugin to UE5. Cause i have been trying to debug this but have no joy.

Hi, Sorry I think you might find this jump from 4.20 to UE5EA too large. There is the NDI SDK which does not have source code anymore and the original plugin is 4.20 there is a huge amount changed from 4.20 to 4.27, and hence to UE50EA

“EngineVersion” : “4.20.0”,
“Description” : “Implements a media player using Newtek’s Network Device Interface (NDI).”,
also, the “Removal of support notice” is not going to make it easy
The pointers at the bottom of the page to the headers are no longer valid.

1 Like

The NDI for UE4 SDK here supports 4.26, includes source code, and I have successfuly built it for 4.27.

1 Like

Hi @WossnameX , @Prakoxo ,
I tried the SDK in 4.26 and 4.27 the documentation seems fine.
My only worry is that UE50 EA2 may not have all the code from 4.26 and 4.27.
It’s a great improvement on the 4.20 Git Hub version

yes the SDK works fine from 4.26 to 4.27. Just hoping i’m not missing any documentation on the changes of the codes for the 5.0 .

hi @Prakoxo
I found this sort of tutorial about
Converting Rokoko Studio Live Plugin for Unreal Engine from 4.26 to UE50EA - Unreal Engine 5 Early Access / Feedback for Unreal Engine 5 Early Access - Unreal Engine Forums

Hello, I took a look at the errors after building and there are just some changes that need to be done:

//FRHIResourceCreateInfo CreateInfo = {FClearValueBinding(FLinearColor(0.0f, 0.0f, 0.0f))};
			FRHIResourceCreateInfo CreateInfo = FRHIResourceCreateInfo
			(
				TEXT("NDIVideoTextureBuffer"),
				FClearValueBinding(FLinearColor(0.0f, 0.0f, 0.0f))
			)
				;
//FRHIResourceCreateInfo CreateInfo;
FRHIResourceCreateInfo CreateInfo = FRHIResourceCreateInfo(TEXT("NDISourceTextureBuffer"));
// Register the NDI Receive Actor a placeable item within the editor
		PlacementModeModule.RegisterPlaceableItem(PlacementCategoryInformation->UniqueHandle, MakeShareable(
			new FPlaceableItem(
				*UActorFactory::StaticClass(),
				FAssetData(ANDIReceiveActor::StaticClass()->ClassDefaultObject),
				FName("ClassThumbnail.NDIReceiveActor"),
				FName(),
				TOptional<FLinearColor>(),
				TOptional<int32>(),
				NSLOCTEXT("NewTek", "NDIReceiveActor", "NDI Receive Actor")
			))
		);

Some changes for some depecrated types like FBufferRHIRef and some paramaters that need to be commented:

//this->PostProcessSettings.ScreenSpaceReflectionIntensity = EReflectionsType::ScreenSpace;
//this->PostProcessSettings.bOverride_ReflectionsType = true;

Maybe I’m missing something but essentially these are the changes that I did to get it building, I’m still testing in 5.0EA now.

The tip is to take a look at the differences in the UE API Reference for the errors that you find in the first build try.

2 Likes

Thank you soo much for taking the time and debugging it. I’ll go test it out and see if if i can replicate anything and update the codes here.

Probably all the postprocessing settings should be further debugged, it seems like the ndi broadcast works and I can see the render target, but getting black from the camera, so I need to polish it a bit more :sweat_smile:

Hello @WossnameX, how did you get the NDI 4.26 plugin to load enabled in 4.27?

Did you tried rebuilding the project in visual studio once copied the 4.26 version into the plugins folder?

It should be straight forward. You just need to create a C++ blank project, copy the NDIIO folder into a Plugins folder that you should create in that project and generate the Visual Studio project files.

After that you should be able to open the .sln file in visual studio and see the source content of the NDIIO plugin. Select the NDIIOPlugin.uplugin under /Games/ProjectName/Plugins/NDIIO and edit the “EngineVersion” tag like that:

"EngineVersion": "4.27.0",

Then just save that file and build the solution (Control+Shift+B) and then you will have the plugin build for UE4.27, you then can copy that NDIIO folder to other Plugins folder of any UE4.27 project and you should be able to open the project and see it enabled in the plugins window as usual, like in UE4.26.

3 Likes

It seems like it was already working, the black from the camera was a particular problem of one test project, but in other projects it seems all working fine.

What ocalaf said is basically what I did.

Hello @ocalaf,
I’m new to using Visual Studio and have 2022 version, but UE5 only supports up to 2019 and VS Code. My question is can I use the same method you outlined above to convert the GitHub - Rokoko/rokoko-studio-live-unreal-engine at master_5_0EA
NDI to work in the newest build of UE5 EA?

Hello, yes the method should be valid for any plugin, you will need just to adapt in each case depending on each plugin particularities. Since you mention a plugin already build for 5.0EA probably you don’t need to touch anything but the EngineVersion tag.

Although I guess it would be better if you use VS 2019 instead of VS 2022, but I didn’t try it so who knows.

1 Like

I’m going to give it a try. Microsoft no longer has an installer for VS 2019 available on their site.

Also, where will I find the “Engine Version Tag”? Sorry if that’s a dumb question.

1 Like

In the .uplugin file - it’s just a text file in JSON format

I did that and I managed to make the plugin work in my 4.27 engine. But now I’m testing the alpha channel to use with the ndi material set to alpha pre multiplied and it wont work in 4.27 but works great in 4.26.

Did you see that problem as well? Any chance you how to fix it?

Thanks!

1 Like

Good day to everyone. Has anyone managed to run the NDI plugin on version 5.0? I’m very bad at programming, but I really need NDI for my project. In versions 4.26 and 4.27, the project is already ready and running. But I want to reach the maximum with Nanite technology. If anyone has succeeded, upload a compiled plugin to any file sharing site. (I apologize in advance for mistakes in the text, I use a translator)