All Projects → keijiro → Klakndi

keijiro / Klakndi

Licence: other
NewTek NDI™ plugin for Unity

Projects that are alternatives of or similar to Klakndi

Meshstreaminggrasshopper
Plugin for Grasshopper to stream mesh geometry through web socket.
Stars: ✭ 52 (-87.03%)
Mutual labels:  unity, unity3d, plugin
Minimumaudioplugin
Minimum implementation of a native audio plugin for Unity
Stars: ✭ 33 (-91.77%)
Mutual labels:  unity, unity3d, plugin
Unitypluginwithwsl
Unity native plugin with WSL (Windows Subsystem for Linux)
Stars: ✭ 39 (-90.27%)
Mutual labels:  unity, unity3d, plugin
Klak
Creative coding library for Unity
Stars: ✭ 1,347 (+235.91%)
Mutual labels:  unity, unity3d, plugin
Textureupdateexample
An example showing how to update textures from a native plugin in Unity.
Stars: ✭ 133 (-66.83%)
Mutual labels:  unity, unity3d, plugin
Hisocket
It is a lightweight client socket solution, you can used it in C# project or Unity3d
Stars: ✭ 275 (-31.42%)
Mutual labels:  unity, unity3d, plugin
Klaksyphon
Syphon plugin for Unity
Stars: ✭ 149 (-62.84%)
Mutual labels:  unity, unity3d, plugin
Klakspout
Spout plugin for Unity
Stars: ✭ 332 (-17.21%)
Mutual labels:  unity, unity3d, plugin
Retro3dpipeline
A minimal example of a custom render pipeline with the Retro3D shader.
Stars: ✭ 354 (-11.72%)
Mutual labels:  unity, unity3d
Hsv Color Picker Unity
HSV color picker for Unity UI
Stars: ✭ 355 (-11.47%)
Mutual labels:  unity, unity3d
Starforce
This is a demo made with Game Framework.
Stars: ✭ 375 (-6.48%)
Mutual labels:  unity, unity3d
Unity Wireframe
General purpose wireframe shaders for use in Unity.
Stars: ✭ 378 (-5.74%)
Mutual labels:  unity, unity3d
Timelineparticlecontrol
An example of controlling particle system from timeline.
Stars: ✭ 348 (-13.22%)
Mutual labels:  unity, unity3d
Game Networking Resources
A Curated List of Game Network Programming Resources
Stars: ✭ 4,208 (+949.38%)
Mutual labels:  unity, unity3d
Unityfx.outline
Screen-space outlines for Unity3d.
Stars: ✭ 335 (-16.46%)
Mutual labels:  unity, unity3d
Opencvforunity
OpenCV for Unity (Untiy Asset Plugin)
Stars: ✭ 359 (-10.47%)
Mutual labels:  unity, unity3d
Unity Shadersketches
Sketches made with ShaderLab in Unity.
Stars: ✭ 362 (-9.73%)
Mutual labels:  unity, unity3d
Laspvfx
Audio reactive Unity VFX with LASP
Stars: ✭ 337 (-15.96%)
Mutual labels:  unity, unity3d
Texture maker
A texture maker tool for unity.
Stars: ✭ 358 (-10.72%)
Mutual labels:  unity, unity3d
Akvfx
Azure Kinect plugin for Unity VFX Graph
Stars: ✭ 366 (-8.73%)
Mutual labels:  unity, unity3d

KlakNDI

gif

KlakNDI is a Unity plugin that allows sending/receiving video frames between computers using NDI.

NDI® (Network Device Interface) is a standard developed by NewTek, Inc that enables applications to deliver video streams via a local area network. Please refer to ndi.tv for further information about the technology.

System Requirements

  • Unity 2019.4
  • Windows: D3D11 and D3D12 are supported
  • macOS: Metal required
  • Linux: Vulkan required
  • iOS: Metal required

KlakNDI supports all the standard render pipelines (built-in, URP, and HDRP).

Limitations On Mobile Platforms

At the moment, KlakNDI only supports the sender functionality on iOS. This limitation came from the NDI SDK, so it's not possible to add receiver functionality support.

KlakNDI requires the NDI SDK v4.5 to build to iOS. Please download and install the SDK before compilation.

At the moment, KlakNDI doesn't support Android.

How To Install

The KlakNDI package uses the scoped registry feature to import dependent packages. Please add the following sections to the package manifest file (Packages/manifest.json).

To the scopedRegistries section:

{
  "name": "Unity NuGet",
  "url": "https://unitynuget-registry.azurewebsites.net",
  "scopes": [ "org.nuget" ]
},
{
  "name": "Keijiro",
  "url": "https://registry.npmjs.com",
  "scopes": [ "jp.keijiro" ]
}

To the dependencies section:

"jp.keijiro.klak.ndi": "1.0.12"

After changes, the manifest file should look like below:

{
  "scopedRegistries": [
    {
      "name": "Unity NuGet",
      "url": "https://unitynuget-registry.azurewebsites.net",
      "scopes": [ "org.nuget" ]
    },
    {
      "name": "Keijiro",
      "url": "https://registry.npmjs.com",
      "scopes": [ "jp.keijiro" ]
    }
  ],
  "dependencies": {
    "jp.keijiro.klak.ndi": "1.0.12",
...

NDI Sender Component

screenshot

The NDI Sender component (NdiSender) sends a video stream from a given video source.

NDI Name - Specify the name of the NDI endpoint.

Enable Alpha - Enable this checkbox to make the stream contain the alpha channel. You can disable it to reduce the bandwidth.

Capture Method - Specify how to capture the video source from the following options.

  • Game View - The sender captures frames from the Game View.
  • Camera - The sender captures frames from a given camera. Note: This option only supports URP and HDRP.
  • Texture - The sender captures frames from a texture asset. You can also use a render texture with this option.

You can attach metadata using .metadata property.

NDI Receiver Component

screenshot

The NDI Receiver component (NdiReceiver) receives a video stream and feeds it to a renderer object or a render texture asset.

NDI Name - Specify the name of the NDI source. You can edit the text field or use the selector to choose a name from currently available NDI sources.

Target Texture - The receiver copies the received frames into this render texture asset.

Target Renderer - The receiver overrides a texture property of the given renderer.

You can extract metadata using .metadata property.

Tips for Scripting

You can enumerate currently available NDI sources using the NDI Finder class (NdiFinder). See the Source Selector example for usage.

You can instantiate the NDI Sender/Receiver component from a script but have to specify an NDI Resources asset (NdiResources.asset) right after the instantiation. See the Sender Benchmark/Receiver Benchmark examples for details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].