Download

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.

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.

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.

2 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.