The Three Phases of Streaming
There are three major phases of streaming:
-
Acquisition: capturing media content and getting it into a format that can be sent over the Internet
-
Management: Managing streams and access
-
Consumption: rendering content and data
Acquisition
The acquisition phase involves capturing content and putting it into a format that can be consumed by the streaming platform.
One key to low latency is to acquire the signal as soon as possible. The closer an encoder is to the glass, the sooner the signal can be sent to the subscribers.
Encoders
The type of encoder used can have a significant impact on latency. Some encoders are not designed for low latency, and those that are still require that their settings be optimized to achieve the lowest possible latency.
The Phenix encoder provides the best possible quality with fast encode and fast transfer between the encoder and the Phenix platform.
Phenix also supports the use of third-party encoders. However, these encoders are usually not optimized for speed, resulting in a longer encoding time and slower transfer time to the Phenix cloud. In addition, most protocols require that the Phenix platform unpackage the content, further impacting latency.
Contribution Options
For details on contribution options, see the Ingest Options page.
Real-Time Contribution
The lowest-latency route into the Phenix system is an unbuffered path carrying a stream that is suitable for real-time. Details about these stream requirements can be obtained from Phenix. The Phenix Encoder supports real-time ingest. Many third-party encoders can be configured to output streams that can be used for real-time ingest.
Flexible Contribution
The universal route into the Phenix system is a buffered path carrying virtually any stream. The stream is then transcoded into a format that is compatible with real-time delivery. Both the buffering and the transcoding add latency. The amount of latency added varies depending on the variability of the signal (which impacts the amount of buffering needed) and the transcoding.
Streams that require this path include any streams that do not meet the requirements for real-time ingest, such as:
-
Interlaced video
-
Variable bitrate video
-
Audio codecs not supported by real-time ingest
Flexible ingest supports protocols such as RTMP, SRT in either listener or caller mode, and many others.
Management
Phenix provides APIs to allow your content management system (CMS) to create, manage, and delete rooms, channels, and streams. Your implementation must use the Phenix EdgeAuth library to generate tokens for publishing and subscribing to streams.
Your CMS is responsible for:
-
Creating, managing, and deleting Channels and Rooms using Phenix REST APIs
-
Managing content streams, including stream setup and forking streams into new Channels
-
Creating and managing EdgeAuth tokens using the Phenix EdgeAuth library
Phenix can provide guidance on best practices for your specific use case, such as how to best design your system to support high join rates.
Different use cases require your backend service to create Channels and Rooms for different purposes, as summarized in the table below for typical use cases.
Use Case | Channel or Room | Publishers | Subscribers |
---|---|---|---|
Broadcast | Channel | One Content | All audience members |
Multi-Angle | Multiple Channels | One content per Channel | Many audience members, all subscribed to all channels |
Groups | Room | All users | All users subscribe to all user streams |
Auctions | Channels and Room | One content per channel (item for bid from multiple angles, auctioneer, in-person bidders)l; Room with all online bidders | All bidders and auctioneer |
Watch Party | Channel and Room | One content on Channel; all users in Room | All users subscribe to Channel and to other user streams in Room |
Celebrity Connect | Channel and Room | One content on Channel; Commentator and Guest in Room | All users subscribe to Channel and to Commentator and Guest streams |
Consumption
In the consumption phase, streams from Phenix are rendered to users. Phenix supports mobile and desktop platforms, with SDKs for Web, Android, and iOS.
The desired user experience feeds directly into key architectural considerations such as acceptable latency and requirements on the client platform. For example, interactive, lean-forward experiences require lower latency than passive experiences.
As for stream management, Phenix can provide guidance on best practices for your specific use case.