Architecture, prerequisites, and platform support for the LIV Camera Kit (LCK) streaming module in Unreal Engine, enabling RTMP live streaming to YouTube, Twitch, or custom endpoints.
LCKStreaming adds live streaming to your Unreal Engine project. It connects to the LIV backend to authenticate users, resolve streaming targets, and push video/audio over RTMP to YouTube, Twitch, or any manual RTMP endpoint.The module handles the full lifecycle: device-based authentication, streaming configuration, RTMP connection management, encoder health monitoring, and automatic bitrate selection per platform.
The subsystem coordinates two layers: a REST API client that handles authentication, streaming config, and RTMP URL resolution, and a native RTMP bridge that muxes encoded video/audio and pushes it to the ingest server.
All four prerequisites must be met before streaming will function. Missing any one of them causes StartStreaming() to return false silently.
Enable streaming — Set bEnableStreaming = true in Project Settings → Plugins → LCK SDK → Features. Defaults to false.
Valid Tracking ID — Your project must have a Tracking ID configured in LCK Developer Settings.
RTMP libraries loaded — librtmp DLLs (Win64) or librtmp.so (Android) must be present and loadable at runtime. Check FLCKStreamingModule::IsRtmpAvailable().
LIV account with subscription — The end user needs a LIV account with an active streaming subscription.
Streaming and recording share the same encoder pipeline. When both are active simultaneously, the streaming module piggybacks on the active recording encoder rather than creating a second one. This means you can stream and record at the same time with no additional encoding overhead.
If a recording is already in progress when StartStreaming() is called, the stream reuses the existing encoder. If no recording is active, streaming acquires its own encoder instance.