LogoLogo
API Status
  • 👋Welcome
  • 🌐What is Morpheus Platform?
    • Interoperability
  • â„šī¸Help
    • 📗Glossary
    • 🆘Support
    • Firewall problems
    • EULA
  • CREATION
    • 🎮Unreal Development
      • ⚡Get Started
        • âš’ī¸Download the Editor
        • âĢUpload Content
        • 🌎Creating your own map
        • 📝Morpheus Base Project
        • ❓Differences from Unreal
          • 🧍Character Configuration
        • 📡Morpheus Networking
          • Introduction to Morpheus Networking
          • Network Levels
          • Replicated Properties
          • RPCs
          • Morpheus Render Targets
          • Morpheus Array
          • Networking FAQ
          • Replicating Sublevels
      • 📚Features & Guides
        • 📒Example Plugin
          • Nameplates
          • In-game roles
          • Resizing
        • 🏊Actor Pooling
        • 🔊Audio
        • 🎭Avatars
          • Creating an Avatar
          • Attachments
            • MML Attachments
          • Custom Animation Variables
          • Importing an NFT collection
          • Capsules and Mesh Transforms
        • 🤖Bots
        • đŸŽ™ī¸Chat
          • Unreal Text Chat
        • đŸŽ›ī¸Control Panels
          • Control Panel Configuration
          • DJ booth mission control
          • Observer Controls
        • 🔉Crowd Audio
        • đŸ¤ŧCrowd Rendering
          • Legacy Animated Crowd
            • Animated Crowd Console Commands
            • Attaching static meshes to crowd members
          • Crowd Materials
          • Performance Parameters
          • Live Config Settings
          • Crowd Animation
            • Crowd Anim Blueprint
              • User Guide - Crowd Anim Blueprint
              • Reference Guide - ABP Nodes
                • Animation Playback
                • States and State Machines
                • Variables
                • Transitions
                • Special
                • Blends
                • Additional Notes
        • 🍱Helpers & Extras
          • "Instanced Objects" in Blueprints
          • Objects with "world context"
          • Making DataAsset classes
          • Duplicate Objects
          • The Bootflow Subsystem
          • The "Wait For Condition" System
          • Advanced Graphics settings
          • Listening to inputs on UObjects
          • Morpheus UserID
          • World Services
          • M2Extras: Skins System
        • đŸ–Ĩī¸Loading Screen
        • ⚡Live Config
          • Editing for a World
          • Editing Locally
          • Default Settings
          • Accessing via Blueprint
          • Adding New Settings
          • Overriding Defaults
          • Using Arrays
        • 🧊MML
        • đŸ•ēMotion Capture
        • 📡Networking
        • đŸ“ĸNotifications
        • Raycastable Crowd
        • 🌐Singletons
        • 📱Streaming & Multiplatform
          • GFN on mobile
        • đŸ–Ĩī¸UI
          • "UI Mode"
        • đŸ—ƒī¸User Collections
          • Creating a New Object Definition
          • Accessing from Unreal
            • Creating Objects Definitions
            • Transfer Objects
            • User Collection Views
            • Receiving Updates
        • đŸ“ēVideo Players
          • Embedded Video Player
          • Millicast video streaming
            • How to Setup an In-Game Video Stream
            • Picture-in-Picture mode
          • Streaming Video Player
            • How to Setup a URL Video Player
            • Picture-in-Picture mode
        • 🐞Visual Debugging
          • Inspector
        • đŸĒŸWeb UI
        • Online Services
          • KV Store Service
        • 💠Web Requests
          • Http Requests
            • Legacy HTTP Nodes
          • JSON Handling
          • WebSockets
          • Identity Validation
          • Allowed External URLs
          • Walkthrough Example
            • Example Counter Service
        • âœˆī¸World Travel
          • World Travel in the editor
        • Avatar Physics Assets
        • Action Gameplay Helper Components
      • 🔑Workflows
        • â†—ī¸Upgrade the Editor
          • đŸ–Ĩī¸Version History
        • âš™ī¸Editing Project Settings
        • 📈Profiling
        • đŸ§ēMarketplace Importing
        • đŸ› ī¸Extra Workflows
          • Setup Play-in-Editor
          • Setup Local Asset Validation
          • Adding Gameplay Tags
          • Validating Game Assets
          • Custom Connection Modes
          • Connect Editor to a World
          • Common Issues
      • 📚Useful Reading
        • ⭐Best Practices
    • 🌎Worlds
      • 📩Invite Players
        • Setting Role Groups
      • Persistent Worlds
      • Always on Worlds
    • 📅Running events
      • ✅Large scale events - Checklist
      • 👾Anti-Cheat (EAC)
      • 🎮Player Entry
        • 📱React Native
        • Steam
        • đŸ’ģHardware Reqs
      • đŸŽĨBroadcast
        • 📹OBS Integration
      • Failover
      • 🏁Capacity And Queue Management
  • ADMINS
    • đŸ‘ĒAccess Control
      • Adding metaverse contributors
      • Creating a new project
    • 💲Pricing
      • Development Support
      • Included Usage & Overages
      • Cloud Streaming
      • Access Modes
      • War Room Support
      • Platform SLA
    • âš™ī¸Settings
      • đŸ—ƒī¸Projects
  • APIs and Tooling
    • đŸ–Ĩī¸API Reference
      • Accounts
      • Events
      • Key/Value Store
      • Organizations
      • Realtime
      • User Profile
      • World Builder
      • Worlds
    • đŸ’ģTemplate Web App
      • đŸ’ĸModeration
    • Pixel Streaming
    • 🚀Launcher
  • Integrations
    • 📊Analytics
      • Sending events from web
      • 🎮Sending Events from Unreal
    • đŸ’ŦChat
      • 🎮Integrating Pubnub with your Unreal Project
      • Adding Moderation to Chat
Powered by GitBook
On this page
  • Overview
  • Steps

Was this helpful?

  1. CREATION
  2. Unreal Development
  3. Features & Guides
  4. Video Players
  5. Millicast video streaming

How to Setup an In-Game Video Stream

PreviousMillicast video streamingNextPicture-in-Picture mode

Last updated 7 months ago

Was this helpful?

Overview

This guide starts with the template project and ends with having a running video feed in-game.

You could use this for playing an in-world video, screen sharing, webcam feed, etc.

The simplest way to achieve this is using our Millicast integration. Millicast is a 3rd party developer platform (acquired by Dolby) that provides ultra-low-latency video streaming capabilities that scale to massive audiences.

For more information, see the reference page on

Steps

  1. Open your Unreal project

  2. Drag the 3 required Millicast assets into your level

    You can find the following via the Place Actors panel: (NOTE - Be careful not to place the M2_ prefixed equivalents of the Screen or Control assets)

  • BP_MillicastScreen

    • this is the actual screen displaying the video feed

      • you can have as many of these as you want

  • BPM_MillicastControl

    • this is used to configure your Millicast stream information

      • you only need one of these

  • M2 Millicast Channel

    • this is used as plumbing between the stream video/audio received from Millicast and the audio bus & video texture used in the client

      • you would add extra channels if you wanted different video stream feeds playing at the same time

  1. Name your BP_MillicastScreen asset(s) Select your screen asset(s) in the World Outliner and, in the Details panel, give each a unique Receiver Name

  2. Select your MillicastChannel asset(s) and, in the Details panel, select a unique Video Texture + Sound Source Bus pair for each channel For example, your first channel should be set to have

    If you were to add a second channel, you should use T_Millicast2 and ASB_M2_Millicast_02 for the Video Texture and Sound Source Bus respectively

  3. Retrieve Millicast stream name and account ID to use If you don’t have an account, you can quickly sign up for free (at the time of writing)

    1. Create an account using OAuth credentials (and click through the account creation dialogue)

    2. Click on the default stream that is created for you

    3. Identify your stream name and account ID, e.g. myStreamName and reQfTX respectively below

  4. Add your Millicast stream name and account ID for your Millicast control Select your control asset in the World Outliner and, in the Details panel, configure these settings, e.g.

  1. Give your the required in-game role to be able to change Millicast settings

    In the World Settings panel:

    1. search for “roles”

    2. expand the Default Role setting

    3. set the Row Name to Director

    1. Click on the BROADCAST button

    2. Open the Media Settings via the cog icon in the bottom-right of the stream

    3. Toggle the codec to VP8 or VP9

    4. Click Update

  2. Click the Play button in the unreal editor

  3. Once in-game, open the Millicast Control panel

    To do this, right-click to bring up your cursor, then left-click the Millicast Remote Control icon

  4. Your Millicast screen should now display the feed from your stream

Go to

Start a stream from your Millicast (Dolby streaming) account In practice, you might want to follow to stream from OBS Initially, the easiest way to stream is via the web UI which uses a webcam feed

From the page:

NOTE - If it's already set to VP8 or VP9 by default, change it once to the other one - this is to work around a known bug in Dolby's system

Click the Start button

In the Millicast Control panel, ensure the Enabled and Receivers boxes are ticked, then click Apply

For more information, see the reference page on

For desktop streaming, you can follow to stream to Millicast from OBS

🎮
📚
đŸ“ē
this guide
Millicast video streaming
this guide
Millicast video streaming
Sign In
Dashboard