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
Example 1: Creating a Transcoding Template
This section describes how to call Live APIs to create a transcoding template.
Involved APIs
To use token-based authentication, obtain a user token and add X-Auth-Token to the request header of the service API when making an API request.
Procedure
- Obtain a user token and use it to authenticate the calling of Live APIs.
For details, see Making an API Request. CN North-Beijing4 is used as an example. If you need to call a Live API in another region, replace the endpoint with the IAM endpoint of the corresponding region.
POST https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", "password": "password", "domain": { "name": "domainname" } } } }, "scope": { "project": { "name": "projectname" } } } }
As shown in Figure 1, information in the red box indicates the user token. - Select the POST request method and enter the request URI.
POST https://live.cn-north-4.myhuaweicloud.com/v1/{project_id}/template/transcodings
live.cn-north-4.myhuaweicloud.com is the endpoint of Live. You can obtain the endpoint from Endpoints.The region where an IAM API is called must be the same as the region where a Live API is called. For example, the user token obtained when you call an IAM API in the CN North-Beijing4 region can only be used to authenticate the requests for calling Live APIs in the CN North-Beijing4 region.
- In the request header, add X-Auth-Token and set its value to be the token obtained in 1.
- Add the following parameters to the request message body. For more information about the parameters, see the API for creating a transcoding template.
{ "domain": "play.example.com", "app_name": "live", "quality_info": [ { "templateName": "", "quality": "lsd", "hdlb": "off", "PVC": "off", "codec": "H264", "width": 854, "height": 480, "bitrate": 600, "video_frame_rate": 0, "protocol": "HLS", "iFrameInterval": 0 } ] }
If the request succeeds, only a status code 201 Created is returned.
If the request fails, the following error code and error description are returned along with a status code 400 Bad Request:
"error_code": "LIVE.100011001", "error_msg": "Failed to verify template settings."