All Documents
LiveLive
- What's New
- Function Overview
- Service Overview
- Getting Started
- User Guide
- Best Practices
-
API Reference
- Before You Start
- API Overview
- Calling APIs
- Examples
- Domain Name Management
- Log Management
- Recording Management
- Recording Callback Management
- Transcoding Template Management
- Stream Management
-
Statistics Analysis
- Querying Peak Bandwidth
- Querying Total Traffic
- Querying HTTP Status Codes for Pulling Live Streams
- Querying the Duration of Transcoded Outputs
- Querying Recording Channels
- Querying the Number of Snapshots
- Querying Upstream Bandwidth
- Querying the Number of Stream Channels
- Querying the Historical Stream List
- Querying the Playback Profile
- Querying the Distribution of Live Streaming Metrics by Region
- Stream Analytics
- Appendix
- Change History
- SDK Reference
-
FAQs
- Product Consulting
-
Billing
- What Do I Need to Pay?
- How Do I View the Usage and Expenditure of Pay-per-Use Live Resources?
- How Do I Change the Billing Option?
- Do I Need to Delete Resources If I Don't Want to Use Live Any More?
- Is Downstream Traffic or Upstream Traffic Billed?
- Why Charges Are Still Debited to My Account Even Though My Account Is in Arrears?
- How Do I Estimate the Traffic Consumption?
- Will I Be Billed for URL Validation?
- How Is Transcoding Billed?
- How Do I Know Whether My Account Is in Arrears?
- Does the Daily Peak Bandwidth Mean the Upstream Bandwidth or Downstream Bandwidth?
- Why Is a Recording Fee Deducted on the First Day of Each Month?
-
Domain Name Management
- How Many Domain Names Can I Add?
- Are There Any Requirements for the Streaming and Ingest Domain Names?
- What Does CNAME Mean on the Domains Page?
- What Can I Do If a Message Is Displayed Indicating that the Domain Name Fails to Be Added and the User Is in the Deleted State?
- Why Does the Domain Status Change from Normal to Configuring?
- A Conflict Occurs When Adding a CNAME Record
- Can the Ingest and Streaming Domain Names Be Level-2 Domain Names?
- Can a Domain Name Be Added to Live in Multiple Regions?
- How Do I Check Whether Acceleration Has Been Enabled for a Live Domain Name?
- Will My Domain Names Be Cleared If My Account Is in Arrears?
- How Long Should I Disconnect a Stream for the New Streaming Configuration to Take Effect?
-
Recording
- Can Live Recordings Be Stored in OBS?
- How Long Is the Maximum Recording Length?
- Can I Configure a Recording Template for Each Live Stream?
- Are Transcoded Streams Recorded During Live Recording?
- How Long Is the TS Segment Length Supported by Live?
- How Many Recordings Are Created for a Live Recording Task?
- Why Still Are Recording Files Created Even Though I Have Already Deleted the Recording Template?
- Why Are There Two Recording Files When A Live Stream Is Not Interrupted?
- How Do I Obtain the URL of Recordings?
- Can I Call an API to Record a Live Video?
- Why Are No Recording Files Created After I Configured a Recording to OBS Template?
- Can I Enter Wildcard Characters in Stream Name When I Configure Recording to OBS?
- How Do I Delete a Recording?
- Can Live Stream Recording Be Started and Stopped at Any Time?
- Why Didn't I Receive a RECORD_FILE_COMPLETE Callback?
- Do StreamNames Support Regular Expressions?
- Why Can't I Download Videos Using the download_url Generated During Recording?
- Why Do the Modified Recording Rule and File Storage Path Not Take Effect?
- Can I Record and Store the Live Streams That Are Disconnected for Multiple Times in One File?
-
Transcoding
- How Do I Play a Transcoded Live Video?
- Why Is the Live Video Resolution During Playback Inconsistent with That Configured In the Transcoding Template?
- How Does the System Define the Effective Template If I Configure Multiple Transcoding Templates?
- How Is a Video Transcoded When Only the Width or Height Is Configured?
- Why Is the BANDWIDTH Value in a Level-1 M3U8 File for Pulling a Transcoded Stream Not the Bitrate of the Transcoded Stream?
- How Do I Configure Definitions of Video Streams?
- Snapshot Capturing
-
Security
- How Do I Protect Live Videos?
- Are There Any Requirements for the Key and Timeout Interval in URL Validation?
- Why Does Referer Validation Not Take Effect?
- Do I Need to Use the Same Key for Streaming Authentication and Playback Authentication?
- How Do I Set the Validity Period of a Signed Ingest URL to a Longer Period?
- Why Does HTTPS Access Fail When an HTTPS Certificate Has Been Configured for My Domain Name?
- Why Are Messages Indicating Insecurity Displayed During Video Playback After an HTTPS Certificate Is Configured?
-
Streams Pushing
- How Do I Get the Ingest URL?
- Are There Any Requirements for StreamName in an Ingest URL?
- Which Ingest Protocols Are Supported?
- How Do I Live Stream?
- How Do I Set the Resolution and Bitrate?
- What Do I Do If Stream Pushing Failed?
- Which Input and Output Formats Does Live Support?
- How Many Live Streams Can I Push Simultaneously?
- How Long Is the Latency If a Live Video Resolution is 1080p?
- What Can I Do If I Use OBS to Push Streams but the Latency Is Too High?
- Why Does Open Broadcaster Software Fail to Push Streams?
- How Do I Disable a Live Stream?
- How Do I View Disabled Live Streams?
- How Do I Resume a Disabled Live Stream?
- What Are the Differences Between Stream Disabled and Stream Interrupted?
- How Do I Obtain a StreamName?
-
Live Streaming
- Which Streaming Protocols Are Supported?
- How Do I Get the Streaming URL?
- Are There Any Requirements for StreamName in a Streaming URL?
- What Can I Do If I Fail to Play a Live Video?
- Is There Any Limit on the Daily Downstream Traffic?
- Is There Any Limit on the Number of Concurrent Viewers?
- Can I Pull Live Streams from Other Platforms to HUAWEI CLOUD Live?
- Why Do Black Bars Appear on the Video?
- Why Does Playback Using the HTTPS Address Fail?
- Callback
-
API Usage
- What Is the Token for Calling Live APIs?
- Why Does the System Display a Message Indicating that the API Does Not Exist When I Call an API?
- Why Is "projectId in token is nil" Returned When I Call an API?
- Why Is "The token must be updated" Returned When I Call an API?
- Why Is a Message Stating "APIG.0301" Displayed When a VOD API Is Called?
- How Can I Query the Peak Number of Concurrent Recording Channels in a Month?
- Why Do I Receive Only the Recording Completion Callback But Not the Recording Start Callback After Configuring Recording Callbacks?
- Statistics Analysis
- Third-Party Tools
- Troubleshooting
Creating a Recording Template
Live allows you to record a live stream and store the recordings in OBS, where you can download and share the recordings.
Figure 1 shows the process of recording live video to OBS.
- (Optional) Create an OBS bucket for storing recordings. If you already have one, go to 2.
- Authorize access to the OBS bucket so that the system can save the recordings in the OBS bucket. You can also authorize the VOD service to manage the recordings.
- Only the account administrator can authorize cloud resources. IAM usersIAM users cannot grant authorizations.
- If you want to cancel the authorization of access to a bucket, check whether there are recordings or screenshots in the bucket. If there are, the recordings or screenshots will be removed from the bucket after the authorization is canceled.
- Configure a recording template. The recording template in which AppName and StreamName are the same as those in the ingest URL takes effect, and recordings are stored in OBS based on template settings. You can set a callback address to get notifications about the recording status.
- Push a stream through an ingest URL and record the live stream based on a configured recording template. For details about how to create an ingest URL, see Assembling an Ingest URL.
- Manage recordings. You can view basic information about recordings on the Live console and download, share, delete recordings on the OBS console.
The resolution of recordings is the same as that of the pushed streams.
Notes
- This function is unavailable in AP-Bangkok.
- Recording rules can be configured at domain name, application, and stream levels. Rules at the stream level take effect first. Rules at the same level must have the same recording type.
- Recordings cannot be deleted from Live because Live does not store recordings. Live logs recording events and store them for 30 days. You can manually delete recordings from OBS or configure OBS lifecycle management rules to set a retention period and policy for recordings.
- If stream pushing is interrupted due to network jitter during live recording, recording stops. When stream pushing restarts, recording restarts accordingly.
- Recording starts when stream pushing starts and stops until stream pushing ends. Recording cannot be stopped or started during stream pushing. If the recording template is deleted during stream pushing, recording continues until stream pushing ends.
- Ensure that the OBS service is not suspended due to arrears. Otherwise, recording will fail. You are advised to buy an OBS package.
- Only input live streams can be recorded. Transcoded live streams cannot be recorded.
Prerequisites
- Domain names have been added.
- CNMAE records have been added to your domains' DNS records.
- Recordings are stored in OBS. Therefore, you must enable OBS before storing recordings in OBS. For details, see OBS Getting Started Guide.
Pricing Notes
Live recordings are stored in OBS. Therefore, OBS charges you for the storage. For details, see OBS Pricing Details.
Step 1: (Optional) Create an OBS Bucket
If you have not created an OBS bucket, create one by referring to Creating a Bucket. If you already have one, go to Step 2: Authorize Access to the OBS Bucket.

The created OBS bucket must be in the same region as Live.
Step 2: Authorize Access to the OBS Bucket
You need to authorize Live to store recordings in an OBS bucket.
- Log in to the Live console.
- In the navigation pane, choose Authorization.
- On the Live Authorization tab, click Authorize in the Operation column of the row containing the target OBS bucket.
Step 3: Configure a Recording Template
If you want to record a live stream for on-demand playback, configure a recording template. The recording template in which AppName and StreamName are the same as those in the ingest URL takes effect.
- Log in to the Live console.
- In the navigation pane, choose Domains.
- Click Settings in the row containing the target ingest domain name.
- In the navigation pane, choose Template Settings > Recording (New Version).
- Click Create Template.
- Configure recording parameters. Table 1 describes the parameters.
Table 1 Recording parameters Parameter
Description
Recording Type
- Automatic recording: The recording automatically starts when live streams that meet the configured recording rule are pushed.
- Manual recording: When live streams that meet the configured recording rule are pushed, you can call the API for Submitting a Recording Command to start or stop recording live streams.
NOTE:- The recording type cannot be changed once configured.
- Only when live streams are pushed, can the API for submitting a recording command be called successfully.
- Manual recording supports only recording start and stop for a specific stream. Even if the recording rule is at the domain name level, the stream name must be specified when you deliver the recording start and stop commands.
- To manually stop recording, you can set Maximum Stream Pause Length when configuring the recording rule, so that recording will stop when the stream has been paused beyond the time indicated by Maximum Stream Pause Length. You can also call an API to stop recording.
- After the command for stopping recording is manually delivered, it takes a period of time to clear resources for the recording task. If the command for starting recording is delivered again shortly after the stop command is delivered, a message indicating that the recording task is not complete may be returned.
AppName
Application name. The default value is live. You can customize the application name. Only letters, digits, underscores (_), and hyphens (-) are allowed. If this parameter is set to *, the recording template applies to all applications under the domain name.
Stream Name
Live stream name. If this parameter is set to *, the recording template applies to all live streams under the same AppName.
Storage Location
Where recordings are stored
Output Bucket
OBS bucket where recordings are stored
Output Path
OBS storage path
To change the path later, click Edit in the Operation column of the row containing the template in the recording template list.
Recording Format
Format of a recording. Live videos can be recorded in HLS, FLV, or MP4 format.
HLS
Naming for M3U8 File: The storage path and filename prefix need to be specified.
Record/{publish_domain}/{app}/{record_type}/{record_format}/{stream}{file_start_time}/{stream}{file_start_time}
Naming for TS File: The filename prefix needs to be specified.
{file_start_time_unix}_{file_end_time_unix}_{ts_sequence_number}
Recording Length: Its value ranges from 15 minutes to 720 minutes. If a live video has been recorded for more than 12 hours, a new file will be created based on the naming rule.
Maximum Stream Pause Length
- Generate a new file after a stream is paused.
- Do not generate a new file after a stream is paused.
- Other: If the interruption duration of a live stream is within the specified range, no new recording file is generated. Otherwise, a new recording file is generated. The maximum interruption duration of a live stream is 300s.
FLV
Naming rule: The storage path and filename prefix need to be specified.
Record/{publish_domain}/{app}/{record_type}/{record_format}/{stream}_{file_start_time}/{stream}_{file_start_time}
Recording Length: Its value ranges from 15 minutes to 180 minutes. If a live video has been recorded for more than 3 hours, a new file will be created based on the naming rule.
Maximum Stream Pause Length
- Generate a new file after a stream is paused.
- Other: If the interruption duration of a live stream is within the specified range, no new recording file is generated. Otherwise, a new recording file is generated.
MP4
Naming rule: The storage path and filename prefix need to be specified.
Record/{publish_domain}/{app}/{record_type}/{record_format}/{stream}_{file_start_time}/{stream}_{file_start_time}
Recording Length: Its value ranges from 15 minutes to 180 minutes. If a live video has been recorded for more than 3 hours, a new file will be created based on the naming rule.
Maximum Stream Pause Length
- Generate a new file after a stream is paused.
- Other: If the interruption duration of a live stream is within the specified range, no new recording file is generated. Otherwise, a new recording file is generated.
If live stream push is normal, the time when HLS recordings are generated in the OBS bucket is related to the keyframe interval configured on the player. By default, the first recording is generated after three keyframe intervals (6 seconds). An FLV or MP4 recording is generated only after the recording ends.
The value of Maximum Stream Pause Length affects the triggering of the recording callback event RECORD_FILE_COMPLETE.
- Do not generate a new file after a stream is paused.: When the recording duration reaches the configured recording length, a recording file is generated and the recording callback event is triggered.
- Generate a new file after a stream is paused.: Every time a stream is interrupted, a new recording file is generated and the recording callback event is triggered.
- Other: Every time the stream interruption duration reaches the specified value, a new recording file is generated and the recording callback event is triggered. If the stream interruption duration does not reach the specified value and the recording duration reaches the configured recording length, a recording file is generated and the recording callback event is triggered.
- Click OK.
You can create multiple recording templates. The recording template in which AppName and StreamName are the same as those in the ingest URL takes effect.
- Obtain an ingest URL to push streams. For details, see Assembling an Ingest URL. For details, see Getting Started.
The resolution and bitrate of the generated recordings are the same as those of the live stream.
You can manage recordings on the OBS console, such as preview, download, and share.
Modifying or Deleting a Recording Template
You can perform the following operations on your recording template:
- Editing a recording template
Click Edit in the Operation column of the row containing the target recording template in the template list to edit the template.
The recording type cannot be changed.
Figure 2 Editing a recording template - Deleting a recording template
Click Delete in the Operation column of the row containing the target recording template in the template list to delete the template.
Figure 3 Deleting a recording template