> For the complete documentation index, see [llms.txt](https://docs.otherside.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.otherside.xyz/odk-docs/odk-plugin/odk-video-millicast-screens.md).

# ODK Video/Millicast Screens

<figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXePnj7WOYF5QwBBQG-LaJ9CQ8DbdptC7EJIGF0FkVJiYjzBQUVzgRLOiDdgvxL7t5hC9Ha1em5Ny7oNNY5exZkiwMJRjvNv5eQB9T0ilmAOj4FRoNejidQY9xdDN-se380uEDTQSEVPCL2GQQfzlY9Ymtg?key=W2-ZMNBPiGgQoccqzXSqMg" alt=""><figcaption></figcaption></figure>

<br>

The video screens in the ODK are intended to be a seamless solution for playing video alongside important millicast streams.\
\
The BPM\_VideoPlayerWithMillicastBase actor is a base class for these screens but will not function without a mesh to display the video on.

BPM\_VideoPlayerWithMillicastCurvedScreen is an example of how the base class can be extended to show the stream on a mesh in the world.

<br>

The important function to consider here is “GetMeshComponentToDisplayOn” and should be overwritten to define a static mesh component and MaterialIDs

<br>

<figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXedTM8vT8lpR0XYOM4w1x5OE7byYUiSw_SsMRQDm5T2yxtGnaqfEYkCnlwYN0YjhnvHEgdV3t6i2a5N6bdU5FHSl3QWsua2MbJEMGc5K02dZWWeGRZKRosRGYLbRjfR0RnI6vMhu_shzg7HaM2cYabOc6Yp?key=W2-ZMNBPiGgQoccqzXSqMg" alt=""><figcaption></figcaption></figure>

<br>

In this example, the video is displayed on the curved video screen mesh and assigned to material IDs 0 and 1. This allows for the image to be shown the correct orientation on the back side of the mesh.

\ <br>

## BPM\_VideoPlayerWithMillicastBase

The base class contains several configurable variables to help with the setup of the videos and millicast.

<br>

<figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXcUnb86bHhm36aWxk6UYGkQ5eDsb05k5nDJzfI9AIZ3aWK-cqGlEShpSPieuJjou9vGn4XsNptFfBMPsXfwo6m0d0HebyntAr4aulDB2v5IR-aUrpd3D3H1gTJVa1dj774N1rDsa85w6Gjc5MsnmAXRAPKx?key=W2-ZMNBPiGgQoccqzXSqMg" alt=""><figcaption></figcaption></figure>

<br>

The Receiver name will be used on the Millicast Control panels to set which screen to display millicast content on.

<br>

The media texture and media player variables can be reused across multiple screens to keep them in sync, or a unique media player/texture can be created if the user would like media to continue uninterrupted while millicast streams are played on other screens.

<br>

The playlist variable contains a list of M2FileMediaSource assets that reference local video files.\
The player will loop through the playlist until interrupted by a live Millicast stream, at which point it will switch to the millicast stream texture.\
When the stream ends, the screen will switch back to the playlist and continue.

<br>

<figure><img src="/files/swAi7lJVX052bd48hjD7" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.otherside.xyz/odk-docs/odk-plugin/odk-video-millicast-screens.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
