Pixel Streaming Infrastructure

repository·master·Indexed 19 days ago

https://github.com/epicgames/pixelstreaminginfrastructure

Servers (Signalling Web Server, SFU) and frontend libraries (WebRTC players, UI components) used to stream Unreal Engine applications to web browsers via WebRTC. Includes the @epicgames-ps/lib-pixelstreamingcommon-ue5.5 package for shared logic, messaging, transport, and the Signalling Protocol.

Tokens
96.9K
Snippets
287
Records
433
Agent score
68%

What's inside pixelstreaminginfrastructure

  1. Overview of lib-pixelstreamingfrontend-ui features

    master

    The lib-pixelstreamingfrontend-ui library provides ready-to-use UI components that extend the core lib-pixelstreamingfrontend library. It includes:

    • Default Pixel Streaming frontend look-and-feel: Pre-styled components matching the standard Pixel Streaming interface.
    • Settings panel: A UI component for managing stream settings.
    • Info panel: A UI component for displaying stream information.
  2. What is the JavaScript Streamer?

    master

    The JavaScript Streamer is a functional, drop-in replacement for an Unreal Engine Pixel Streaming application instance. It is designed to run entirely in the browser without requiring a GPU or any Unreal Engine dependencies.

    It serves two primary purposes:

    1. CI Testing: Acts as a mock for Unreal Engine Pixel Streaming to allow testing of Pixel Streaming Infrastructure components in Continuous Integration environments without needing a full Unreal Engine installation.
    2. Reference Implementation: Provides a reference for developers who want to implement their own custom Pixel Streaming sources (streaming from sources other than Unreal Engine).
  3. Overview of @epicgames-ps/lib-pixelstreamingsignalling-ue5.5

    master

    The @epicgames-ps/lib-pixelstreamingsignalling-ue5.5 package provides the core signalling logic for Pixel Streaming. It manages the communication between the Streamer (Unreal Engine instance), the SFU (Selective Forwarding Unit), and the Players.

    Key functional modules include:

    • SignallingServer: The central authority for managing connections.
    • StreamerRegistry & StreamerConnection: Handles the registration and lifecycle of Unreal Engine streamer instances.
    • PlayerRegistry & PlayerConnection: Manages player sessions and their connectivity state.
    • SFUConnection: Manages the connection between the signalling layer and the Selective Forwarding Unit.
    • WebServer: Provides the underlying web interface for signalling communication.
    • Logger & LoggingUtils: Utilities for system observability and debugging.
  4. Overview of @epicgames-ps/lib-pixelstreamingcommon-ue5.5

    master
    The @epicgames-ps/lib-pixelstreamingcommon-ue5.5 package provides the core shared logic and abstractions used across the Pixel Streaming infrastructure. It contains fundamental building blocks for messaging, transport, logging, and protocol management that ensure consistency between different components of the streaming stack.
  5. What is lib-pixelstreamingcommon?

    master

    The lib-pixelstreamingcommon library provides shared core functionality used across Pixel Streaming web applications. It includes implementations for:

    • Message protocols
    • Logging utilities
    • Event handling
    • Various general-purpose utilities

    For practical implementation examples, you can refer to the following reference projects within this repository:

    • lib-pixelstreamingfrontend (Frontend library)
    • lib-pixelstreamingsignalling (Signalling library)
    • Wilbur (The reference Pixel Streaming signalling server)
  6. Overview of LoggingUtils in @epicgames-ps/lib-pixelstreamingsignalling-ue5.5

    master
    LoggingUtils is a utility module within the @epicgames-ps/lib-pixelstreamingsignalling-ue5.5 package designed to handle logging for signaling messages. It provides standardized interfaces and functions to log incoming, outgoing, and forwarded messages, which is useful for debugging signaling flows in Pixel Streaming infrastructure.
  7. Reference the @epicgames-ps/lib-pixelstreamingsignalling-ue5.5 API

    master

    The pixelstreamingsignalling package provides the core logic for managing Pixel Streaming signalling, including server management, player registries, streamer registries, and logging utilities.

    Key components include:

    • Core Servers: SignallingServer for managing connections, WebServer for handling HTTP requests, and SFUConnection for Selective Forwarding Unit logic.
    • Registries: PlayerRegistry to track connected players and StreamerRegistry to track available streamers.
    • Connections: PlayerConnection and StreamerConnection to manage individual session lifecycles.
    • Logging: A suite of utilities including Logger, InitLogging, and specialized functions like logIncoming, logOutgoing, and logForward for monitoring protocol traffic.
  8. Core features of lib-pixelstreamingfrontend

    master

    The @epicgames-ps/lib-pixelstreamingfrontend-ue5.8 library provides the low-level logic required for a Pixel Streaming client-side experience. It is a headless library and contains no UI components.

    Key capabilities include:

    • Signalling: Establishing a WebSocket connection to communicate with the Pixel Streaming signalling server.
    • Media Streaming: Creating a WebRTC peer connection to display the Pixel Streaming video and audio streams.
    • Input Handling: Capturing user input and transmitting it back to the Pixel Streaming application.
    • Data Channels: Opening a WebRTC data channel for sending and receiving custom data alongside standard input.
    • Configuration: Supports both programmable settings and settings specified via URL parameters.
  9. Use @epicgames-ps/lib-pixelstreamingsignalling for Pixel Streaming signaling

    master

    The @epicgames-ps/lib-pixelstreamingsignalling library is intended for developers building tools and applications that need to implement signaling for Pixel Streaming applications.

    For high-level usage (running a signaling server rather than building tools with the library), refer to the Getting Started guide in the main repository.

  10. Key features of the Reference Pixel Streaming frontend

    master

    The reference frontend provides a complete Pixel Streaming experience including:

    • Info Panel (screen right): UI for displaying live streaming statistics.
    • Settings Panel (screen right): UI for managing settings.
    • Controls (screen left): Buttons to maximize video, toggle the settings panel, toggle the info panel, and enter VR mode.
    • Overlays: Ability to display information, errors, or interactive prompts to the user.