StreamLive is a premium stream processing platform newly launched by Tencent Cloud, which provides broadcast-grade and real-time live stream processing services. It uses Tencent Cloud's proprietary high-performance video encoding and compression algorithms to reduce transfer traffic consumption while delivering a better watch experience.
The StreamLive service is managed at the channel level in the StreamLive console. You can set up high-quality video streams and distribute them to various types of devices.
The StreamLive service is managed at the channel level in the StreamLive console via three modules: security group, input, and channel. The security group module allows you to manage the security verification of inputs; in the input module, you can select the protocol and input method (push or pull) of an input; the channel module is the main module of StreamLive, via which you can perform various video processing operations such as transcoding and remuxing and send the results to the specified destination or store them on COS.
Log in to the StreamLive console.
Currently, StreamLive is available in three AZs: Mumbai (India), Bangkok (Thailand), and Seoul (Korea), which you can choose as needed. AZs such as Tokyo (Japan) will be available soon. If you need to use the service in other AZs, please contact us.
A security group is used to verify the validity of an input source's IPv4 address, which makes the input of StreamLive channels more secure.
Select "Security Group Management" and click "Create Security Group". Enter a name, and add IPs to the allowlist (the IPs must be in CIDR block format, separated with commas or line breaks). Then, click "Confirm" to complete the creation.
- The status of a security group can be either "idle" or "occupied".
- "Idle" indicates that a security group is currently not associated with an input and can be edited and deleted.
- "Occupied" indicates that a security group is currently associated with an input and can only be edited, not deleted.
- You can create up to 5 security groups in the console by default. If you need more security groups, please submit a ticket.
Select "Input Management" and click "Create Input".
Inputs are the source of streams for StreamLive channels. An input is usually associated with 1 security group and 1 StreamLive channel. Currently, the protocols supported for inputs include RTP, RTP-FEC, RTMP, UDP, HLS, and HTTP-MP4. An input is either a push input or a pull input.
Each input can be associated with 1 security group and 1 channel. An input associated with a channel is marked as "attached".
- The console supports up to 5 inputs by default.
- An input source must contain at least 1 video data channel.
- When MPEG-TS multiplexing is used, a maximum of 8 channels can be transferred simultaneously.
Select "Channel Management" and click "Create Channel".
Enter a custom channel name, which is used to identify different channels created, and click "Next Step".
Click "Settings" to configure an input:
a. "Audio Selector": If there are multiple audio streams in your RTP_PUSH/RTP-FEC_PUSH/UDP_PUSH inputs, you can create a selector using the PID encapsulated in MPEG-TS so that you can configure multiple audio languages for outputs.
- The PID must be the same as that of the input audio stream; otherwise, the transcoding task may fail.
- You can configure audio selectors only for the first input attached. If a plan is configured and another input is used instead of the first one, StreamLive will randomly select an audio stream to transcode.
- If input source failover is enabled, the audio selectors configured for the primary input will be automatically applied to the backup input to ensure the availability of the audio encoding feature in case of failover.
b. "Pull Input Configuration": You can select either the "LOOP" or "ONCE" mode for MP4_PULL/HLS_PULL inputs. "LOOP": the pull loops; "ONCE": the input is disconnected after the first pull.
c. "Failover Configuration": You can enable failover for RTMP_PUSH/RTP_PUSH inputs so that StreamLive switches automatically to the backup input when the primary one fails. After enabling failover for an input, you can select for it a backup input, set a downtime threshold (the wait time after the primary input is down before failover is triggered; 3000 ms by default), and select the input preferences, i.e., whether to switch back to the primary input after it recovers ("PRIMARY_PREFERRED": the primary input is prioritized; "EQUAL_PREFERRED": the primary and backup inputs have the same priority).
- You can configure only 1 backup for an input. The primary and backup inputs must be of the same type and have the same number of pipelines.
- Once an input is used as a backup, the failover feature will be disabled for the input automatically, which means that you cannot configure a backup for this input. To make modifications (for example, if you want to switch the role of the two inputs), you must remove the primary/backup relationship between the inputs first.
- After successful configuration, "Primary" and "Backup" will appear next to the names of the primary and backup inputs.
- The backup input will appear below the primary input.
In addition to the above, you can also do the following to an input:
Click "Next Step".
a. Configure multiple output groups. You can click the "+" icon to configure multiple output groups for a channel.
b. Set the name and type of an output group. Currently, StreamLive supports outputs in HLS and DASH formats. You can output HLS files to COS for archiving (for detailed directions, please see section 5), or output HLS/DASH streams to Tencent Cloud’s StreamPackage under the same account (for detailed directions, please see section 6). This allows you to build your own origin server for stable and large-scale distribution of live streams.
c. Set a CDN streaming address. If an HLS or DASH output is used, you can set the destination to a CDN URL. Enter the verification information if the URL requires verification.
d. Configure segments. Set the segment duration and quantity in your "manifest" file. If you want to insert UTC time into the tag file, enable "PdtInsertion" and set "PdtDuration" (time interval for insertion).
e. Configure DRM. You can use third-party DRM services in StreamLive.
If you select HLS/HLS_ARCHIVE/HLS_StreamPackage for "Output Group Type" and enable DRM, FairPlay encryption will be used. If you select DASH/DASH_StreamPackage and enable DRM, Widevine encryption will be used.
- FairPlay encryption settings: If you select HLS/HLS_ARCHIVE/HLS_StreamPackage as the output type, FairPlay will be used as the encryption method. You need to enter the FairPlay Content ID (key ID), key, and IV (both key and IV are 32-character hexadecimal strings).
- Widevine encryption settings: If you select DASH/DASH_StreamPackage as the output type, Widevine will be used as the encryption method. You need to enter the Widevine content ID and set the tracks. Track types include SD, HD, UHD1, UHD2, and AUDIO.
- If you select "All Track", you can set the same key ID and key for all five track types.
- You can also click "Select Track" to set a key ID and key for each track type.
f. Set audio transcoding. You are allowed to configure multiple audio transcoding schemes with one output unit. Create an audio template, specifying the name, transcoding format, bitrate, and audio language. If no audio selector is associated, the default stream in the input will be transcoded. Currently, the bitrate range supported for audio transcoding is 6000-1024000 bps. Language code is a 3-character code for the audio language to use, whose naming follows the ISO 639 standard.
g. Set video transcoding. Create a video template, specifying the name, encoder type (only H264 is supported currently), bitrate (value range: 50000-40000000 bps), resolution, frame rate, etc. Top speed codec transcoding is a high-performance video transcoding service developed by Tencent Cloud. It uses AI algorithms to calculate in real time the optimal encoding parameters based on the business scenario to ensure high-quality transcoding at low bitrate. Bitrate compression ratio is the percentage by which video bitrate is expected to be reduced.
You can enable top speed codec if you want a better codec with smart video compression algorithms. It uses AI algorithms to calculate in real time the optimal encoding parameters based on the business scenario to ensure high-quality transcoding at low bitrate.
h. Assemble outputs by combining the audio and video transcoding templates created. You can enable SCTE-35 to pass SCTE-35 information in HLS or DASH file tags.
i. Click "Done" to save the configuration.
j. Click "Start" to run the channel created.
StreamLive allows you to output HLS files to COS for archiving, for which you need to create a bucket in COS first and grant StreamLive access to the bucket.
Before outputting content to COS for archiving, please make sure that you have activated the COS service. Then, select "Bucket List" in the COS console and click "Create Bucket" to create a COS bucket in a nearby region.
After completing the authorization, return to the StreamLive console and click "Authorization completed". The COS destination fields are now editable.
Enter the COS URL for archiving based on the COS bucket created, which is in the format of http://
Submit the configuration. Proceed with other channel configurations in section 4-4 and then submit the configurations.
You can use StreamLive together with StreamPackage and output HLS/DASH live streams directly to StreamPackage under the same account. This allows you to build your own origin server for video distribution and playback.
Before you output content to StreamPackage, please activate StreamPackage first.
Click "Create Channel" in the top-left corner to create a channel. Enter a channel name. For "Input Protocol", select the same protocol as the output type; for example, if the output type is "HLS_StreamPackage", select
StreamLive and StreamPackage must be in the same region.
After creating the channel, you will enter its details page, where you can create an endpoint and select whether to enable IP blocklist/allowlist or authentication.
The URL of the endpoint created is the playback/origin server address.
You will need the channel ID when configuring outputs in StreamLive.
Return to the StreamLive console, based on your needs and the type of the StreamPackage channel just created, select "HLS_STREAMPACKAGE" or "DASH_STREAMPACKAGE" for "Output Group Type", and enter the channel ID in StreamPackage.
StreamLive allows you to import/export a channel configuration file and clone an existing channel.
All created channels and their states are displayed in "Channel Management" of the StreamLive console. Click "Export" in the "Operation" column to quickly export a JSON file of the channel configuration.
Go to "Channel Management" and click "Create Channel". Click "Import Configuration", and select a modified JSON file of channel configuration.
After the import, you will enter the channel editing page. Complete the rest of the configurations and submit them.
- Channel importing is a quick configuration process. Based on the JSON file imported, StreamLive can complete the "Basic Information" and "Output Group Setting" steps for you, but not "Input Setting". You need to select an input. Therefore, please create a new input in advance if you want to create a channel through channel importing.
- If you import a new configuration file when editing a channel, the existing configurations will be overwritten.
Channel cloning is essentially a quick channel exporting and importing process. Go to "Channel Management", and click "Clone" in the "Operation" column to clone the channel and enter its configuration page.
StreamLive will complete the channel configurations (except "Input Setting") automatically according to the cloned channel. Complete the rest of the configurations and submit them.
A channel in "RUNNING" state cannot be edited or deleted. To edit/delete it, click "Stop" to stop it first.
Click a channel in "Channel Management" to go to its details page, where you can view its input, output, alerts, health, and other information.
If a problem occurs or is likely to occur in any pipeline of a channel, StreamLive will generate an alert for the channel. "Set time" is the time when the alert is generated, and "Cleared time" is the time when the alert is cleared. The state of an alert changes. When the alert state is "SET", the "Set time" and "State" columns are highlighted in red. After an alert is cleared, its state changes to "CLEARED", and the highlighting is removed. You can query alert data, including the problematic pipeline, alert type, and other details, for the last 5 days with a time range of less than 24 hours.
The "Heath" tab displays channel input (bandwidth and input video/audio frame rate) and output (bandwidth) information as well as corresponding charts, which help you determine whether the current channel is working properly. You can query data for the last 5 days with a time range of less than 24 hours.
You can configure events for StreamLive channels to perform specified actions at scheduled time, for example, switch to input_2 at 15:00:00.
Under the "Channel Management" tab, click the name of the channel to go to its details page, select "Plan", and click "Add" to add an event.
You can select either the fixed time or immediate mode to trigger an event. In the fixed time mode, you need to manually set an event trigger time. In the immediate mode, the event is performed immediately after creation.
For event type, only input switch is supported currently. You can select an input to switch to.
Click "Create" to finish the configuration.
- The time entered is local time and must not be earlier than the current time.
- If the pull mode for the MP4_PULL/HLS_PULL input that is switched to is ONCE, the input will be disconnected after the first pull, and events will not be triggered again.
The events created can be listed chronologically by trigger time. You can view or delete an existing event as well as create an event.
Events created cannot be modified.