{"id":15065781,"url":"https://github.com/keijiro/klakspout","last_synced_at":"2025-11-16T16:02:49.650Z","repository":{"id":47570026,"uuid":"87800219","full_name":"keijiro/KlakSpout","owner":"keijiro","description":"Spout plugin for Unity","archived":false,"fork":false,"pushed_at":"2023-12-16T22:09:15.000Z","size":3463,"stargazers_count":711,"open_issues_count":15,"forks_count":108,"subscribers_count":32,"default_branch":"main","last_synced_at":"2025-05-15T14:18:48.661Z","etag":null,"topics":["plugin","spout","unity","unity3d"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/keijiro.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-04-10T10:50:50.000Z","updated_at":"2025-05-15T01:31:24.000Z","dependencies_parsed_at":"2024-06-21T07:09:56.021Z","dependency_job_id":"f614417c-6e71-4b5f-bb4f-8443ac88499b","html_url":"https://github.com/keijiro/KlakSpout","commit_stats":{"total_commits":86,"total_committers":7,"mean_commits":"12.285714285714286","dds":0.08139534883720934,"last_synced_commit":"981206ab46fc2289d3bcc963234eaac65aac4eab"},"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keijiro%2FKlakSpout","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keijiro%2FKlakSpout/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keijiro%2FKlakSpout/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keijiro%2FKlakSpout/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/keijiro","download_url":"https://codeload.github.com/keijiro/KlakSpout/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254414457,"owners_count":22067263,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["plugin","spout","unity","unity3d"],"created_at":"2024-09-25T00:48:07.582Z","updated_at":"2025-11-16T16:02:49.633Z","avatar_url":"https://github.com/keijiro.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# KlakSpout\n\n![gif](https://user-images.githubusercontent.com/343936/124232423-993f6c00-db4c-11eb-80d3-4c660a2025d9.gif)\n![gif](https://user-images.githubusercontent.com/343936/124217164-c4b55d00-db32-11eb-88f1-735a04bfb235.gif)\n\n**KlakSpout** is a Unity plugin that lets Unity send and receive video streams\nthrough the [Spout] system.\n\n[Spout]: http://spout.zeal.co/\n\n## System Requirements\n\n- Unity 2022.3 or later\n- Windows system with Direct3D 11/12 support\n\nKlakSpout currently supports only Direct3D 11 and 12; other graphics APIs such\nas OpenGL or Vulkan aren't available.\n\n## Pixel Format Compatibility\n\nKlakSpout currently supports receiving the following pixel formats:\n\n- R8G8B8A8 UNorm (sRGB/linear)\n- B8G8R8A8 UNorm (sRGB/linear)\n- R16G16B16A16 Half Float\n- R32G32B32A32 Float\n\nMost applications use R8G8B8A8 or B8G8R8A8, so you can receive frames without\nextra steps. When using [TouchDesigner], choose the appropriate pixel format in\nthe Spout Out TOP.\n\n[TouchDesigner]: https://derivative.ca/\n\nFor now, KlakSpout only supports sending the R8G8B8A8 UNorm format.\n\n## How to Install\n\nInstall the KlakSpout package (`jp.keijiro.klak.spout`) from the \"Keijiro\"\nscoped registry in Package Manager. Follow [these instructions] to add the\nregistry to your project.\n\n[these instructions]:\n  https://gist.github.com/keijiro/f8c7e8ff29bfe63d86b888901b82644c\n\n## Spout Sender Component\n\n![Sender](https://github.com/user-attachments/assets/ef1f7388-fe06-4054-9ddb-dd379f96dc61)\n\nUse the **Spout Sender** component to send a video stream. It provides three\ncapture methods:\n\n- **Game View**: Captures the content of the Game View.\n- **Camera**: Captures a specified camera.\n- **Texture**: Captures a 2D texture or a Render Texture.\n\nThe Camera capture method is available only on URP and HDRP—you can't use it on\nthe built-in render pipeline.\n\nThe **KeepAlpha** property controls whether the alpha channel is preserved or\ncleared. Enable [alpha output] when using HDRP. On URP, select the Texture\ncapture method to output alpha.\n\n[alpha output]:\n  https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@12.0/manual/Alpha-Output.html\n\n## Spout Receiver Component\n\n![Receiver](https://github.com/user-attachments/assets/469c535a-2917-4dc8-9b04-8ee74d342fd6)\n\nUse the **Spout Receiver** component to receive a video stream. It stores\nincoming frames in the Target Texture and overrides the material property set\nin the Target Renderer.\n\nYou can also access the received texture via the\n`SpoutReceiver.receivedTexture` property.\n\n## Scripting Interface\n\nEnumerate available Spout senders with the `SpoutManager` class; see the\n[SourceSelector example] for details.\n\n[SourceSelector example]:\n  https://github.com/keijiro/KlakSpout/blob/main/Assets/Scripts/SourceSelector.cs\n\nYou can create Spout senders or receivers at runtime, but you must assign the\n`SpoutResources` asset (which holds references to package assets) after\ninstantiation.\n\n## Frequently Asked Questions\n\n### What's the difference between NDI and Spout?\n\n- NDI: Video-over-IP codec/protocol\n- Spout: Interprocess GPU memory sharing on DirectX\n\nNDI consumes CPU, memory, and network bandwidth but is highly versatile.\n\nSpout adds virtually no CPU load, though its applications are more limited.\n\nIf you need to share video between applications on a single Windows PC, Spout\nis usually the better option.\n\n## Related Repositories\n\n- [Unity-OBS-AlphaWorkflowSample](https://github.com/keijiro/Unity-OBS-AlphaWorkflowSample)\n- [KlakSpoutTestSuite](https://github.com/keijiro/KlakSpoutTestSuite)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeijiro%2Fklakspout","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkeijiro%2Fklakspout","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeijiro%2Fklakspout/lists"}