Concepts & Models
The Live API organizes data structures associated with a Broadcast in a hierarchy.
Collection
A Collection is a logical container that encompasses related Projects and (non-WebRTC) Sources. Related Projects are those Projects which share Sources, or whose timelines need to managed together (e.g., ended together). End users may own multiple Collections.
Collection Source
A Collection Source is a non-WebRTC-based live media stream (e.g., RTMP or SRT) to be used in your composition. Collection Sources flow through the API.stream ingest system which provides real-time previews enroute to composition.
- Collection Sources are defined at the Collection level and shared between all subordinate Projects. Collection Sources can only be used by Projects subordinate to the Collection on which they were created; you cannot add a Collection Source created in one Collection to a Project created in a different Collection.
- Collection Sources may be added to and in use by multiple Projects simultaneously.
Project
A Project contains the components required for a given Broadcast, inclusive of:
- a plurality of non-WebRTC-based Collection Sources
- WebRTC-based (hosted by API.stream or externally hosted) video streams
- a singular browser-based Composition which defines the on-screen layout and appearance of the Broadcast
- one or more Destinations
There is a 1:1 relationship between a Project and a Broadcast emanating from a Project. The lifecycle of a Project is not tied to a Broadcast.
Broadcast
A Broadcast is a live stream to one or more Destinations comprising a browser-based Composition, zero or more WebRTC video sources, and zero or more Collection Sources.
WebRTC Video Source
A Project can be associated with a WebRTC conference.
Sources
Sources represent a Collection Source (created on the parent Collection) in a Project.
Destinations
A Destination indicates where the Broadcast should be directed to for further distribution.