The Virtual Camera Publisher is a feature that allows Unity apps running on Horizon OS v81 or higher to create and share custom virtual cameras. These cameras can be used for system recording, casting, and livestreaming. This functionality is designed to help developers quickly add new and creative camera angles, making it easier for content creators to capture engaging perspectives:
User in-headset POV
App seen through headset.
Stands virtual camera POV
Recording from virtual camera placed in the stands.
Courtside virtual camera POV
Recording from virtual camera placed courtside.
Drone virtual camera POV
Recording from virtual camera programmed to circle the court.
How the Virtual Camera Publisher works
With the Virtual Camera Publisher, you can register up to three virtual cameras at a time within your app. Once registered, these cameras appear in the system camera picker UI, making them available for use by other apps and system features. Apps such as Meta Camera can then record, stream, or cast your virtual cameras. To learn which app declares which permission, see Permissions. You have the flexibility to customize camera names, assign unique IDs, set the resolution and framerate, and even provide custom thumbnails for the camera picker interface.
Permissions
The Virtual Camera Publisher uses two permissions, one for each side of the camera feed:
horizonos.permission.CREATE_VIRTUAL_CAMERA (publishing app): Your app creates one or more virtual cameras and generates their image content. Most apps need only this permission.
horizonos.permission.APP_DEFINED_CAMERA (consuming app): A separate app, such as Meta Camera, declares this permission to read the published camera feed and record, stream, or cast it.
In the typical workflow, your app publishes the cameras and Meta Camera consumes them, so you only need to declare CREATE_VIRTUAL_CAMERA. Add it to your AndroidManifest.xml:
For detailed integration steps, advanced usage, and the latest updates, please refer to the official GitHub repository. Additional resources, such as a sample project and troubleshooting tips, are also available here.