tencent cloud

Video on Demand

Release Notes and Announcements
Release Notes
Announcements
Product Introduction
Overview
Product Features
Features
Strengths
Scenarios
Solutions
Professional Edition
Introduction to Video On Demand Professional Edition
Quick Start
Console Guide
Development Guide
Purchase Guide
Billing Overview
Billing Modes
Purchase Guide
Viewing Bills
Renewal
Overdue Policy
Refund Policy
Getting Started
Console Guide
Console Overview
Service Overview
Application Management
Media Management
Package Management
License Management
Real-Time Log Analysis
Practical Tutorial
Media Upload
Smart Cold Storage of VOD Media Asset Files
Video Processing
Distribution and Playback
How to Receive Event Notification
How to Migrate Files from Origin Server to VOD
Live Recording
How to Pull from Custom Origin Servers
How to Use EdgeOne to Distribute Content in VOD
Development Guide
Media Upload
Media Processing
Video AI
Event Notification
Video Playback
Media Encryption and Copyright Protection
Broadcast Channel
CAM
Media File Download
Subapplication System
Error Codes
Player SDK
Overview
Basic Concepts
Features
Free Demo
Free Trial License
Purchase Guide
SDK Download
Licenses
Player Guide
Integration (UI Included)
Integration (No UI)
Advanced Features
API Documentation
Player Adapter
Player SDK Policy
Server APIs
History
Introduction
API Category
Other APIs
Media Processing APIs
Parameter Template APIs
Task Management APIs
Media Upload APIs
Media Management APIs
Event Notification Relevant API
Media Categorization APIs
Domain Name Management APIs
Distribution APIs
AI-based Sample Management APIs
Region Management APIs
Data Statistics APIs
Carousel-Related APIs
Just In Time Transcode APIs
No longer recommended APIs
Making API Requests
AI-based image processing APIs
Task Flow APIs
Data Types
Error Codes
Video on Demand API 2024-07-18
FAQs
Mobile Playback
Fees
Video Upload
Video Publishing
Video Playback
Web Playback
Full Screen Playback
Statistics
Access Management
Cold Storage
Agreements
Service Level Agreement
VOD Policy
Privacy Policy
Data Processing And Security Agreement
Contact Us
Glossary

TCPlayer Swift Live Streaming Downgrade Notice

PDF
Focus Mode
Font Size
Last updated: 2024-04-11 16:50:14

Downgrade scenarios

Live Event Broadcasting is based on WebRTC and depends on the operating system and browser support for WebRTC.
Currently, the SDK has been tested on the following operating systems and browsers, with the test results as follows:
Operating system
OS Version
Browser
Browser version
Support for stream pull
Windows
win 10
Chrome
86+
Firefox
88+
Microsoft Edge
86+
macOS
10.5+
Safari
13.1+
Chrome
86+
Firefox
88+
Microsoft Edge
86+
iOS
13.1.1+
Safari
13.7+
Chrome
86+
Firefox
33+
Microsoft Edge
89
WeChat embedded
-
Android
-
Chrome
86+
Firefox
88+
WeChat embedded
X5 core
WeChat embedded
XWeb core
Additionally, in some browsers that support WebRTC, there may be decoding failures or server-side issues. In these cases, the player will convert the WebRTC URL to a more compatible HLS URL for playback. This behavior is known as downgrade processing.
To summarize, there are several scenarios that trigger downgrading:
The browser environment does not support WebRTC.
Failed to connect to the server, and the number of retries has exceeded the set value (internal status code -2004).
Decoding failure during playback (internal status code -2005).
Other WebRTC-related errors (internal status code -2001).

Downgrade method

1. Automatic downgrade

During player initialization, the Live Event Broadcasting address is passed through the sources field. In environments requiring downgrade processing, the player automatically converts the protocol, converting the Live Event Broadcasting address to an HLS protocol address.
For example, Live Event Broadcasting address:
webrtc://global-lebtest-play.myqcloud.com/live/lebtest?txSecret=f22a813b284137ed10d3259a7b5c224b&txTime=69f1eb8c
It will automatically convert to:
https://global-lebtest-play.myqcloud.com/live/lebtest.m3u8?txSecret=f22a813b284137ed10d3259a7b5c224b&txTime=69f1eb8c

2. Specified downgrade

In Adaptive Bit Rate (ABR) playback scenarios, if downgrading is necessary, one cannot simply convert formats to obtain the adaptive bitrate HLS address; it must be manually specified. Or in other scenarios where the user wishes to manually specify, downgrade addresses can be set in the following manner. The address is not limited to HLS protocol; it can also be of other protocols:
var player = TCPlayer('player-container-id',{
sources: 'webrtc://global-lebtest-play.myqcloud.com/live/lebtest?txSecret=f22a813b284137ed10d3259a7b5c224b&txTime=69f1eb8c&tabr_bitrates=d1080p,d540p,d360p&tabr_start_bitrate=d1080p',
webrtcConfig: {
fallbackUrl: 'https://global-lebtest-play.myqcloud.com/live/lebtest_HLSABR.m3u8',
},
});

Downgrade callback

When a downgrade is triggered, the player will initiate a callback:
player.on('webrtcfallback', function(event) {
console.log(event);
});

Downgrade scenarios

Live Event Broadcasting is based on WebRTC and depends on the operating system and browser support for WebRTC.
Currently, the SDK has been tested on the following operating systems and browsers, with the test results as follows:
Operating system
OS Version
Browser
Browser version
Support for stream pull
Windows
win 10
Chrome
86+
Firefox
88+
Microsoft Edge
86+
macOS
10.5+
Safari
13.1+
Chrome
86+
Firefox
88+
Microsoft Edge
86+
iOS
13.1.1+
Safari
13.7+
Chrome
86+
Firefox
33+
Microsoft Edge
89
WeChat embedded
-
Android
-
Chrome
86+
Firefox
88+
WeChat embedded
X5 core
WeChat embedded
XWeb core
Additionally, in some browsers that support WebRTC, there may be decoding failures or server-side issues. In these cases, the player will convert the WebRTC URL to a more compatible HLS URL for playback. This behavior is known as downgrade processing.
To summarize, there are several scenarios that trigger downgrading:
The browser environment does not support WebRTC.
Failed to connect to the server, and the number of retries has exceeded the set value (internal status code -2004).
Decoding failure during playback (internal status code -2005).
Other WebRTC-related errors (internal status code -2001).

Downgrade method

1. Automatic downgrade

During player initialization, the Live Event Broadcasting address is passed through the sources field. In environments requiring downgrade processing, the player automatically converts the protocol, converting the Live Event Broadcasting address to an HLS protocol address.
For example, Live Event Broadcasting address:
webrtc://global-lebtest-play.myqcloud.com/live/lebtest?txSecret=f22a813b284137ed10d3259a7b5c224b&txTime=69f1eb8c
It will automatically convert to:
https://global-lebtest-play.myqcloud.com/live/lebtest.m3u8?txSecret=f22a813b284137ed10d3259a7b5c224b&txTime=69f1eb8c

2. Specified downgrade

In Adaptive Bit Rate (ABR) playback scenarios, if downgrading is necessary, one cannot simply convert formats to obtain the adaptive bitrate HLS address; it must be manually specified. Or in other scenarios where the user wishes to manually specify, downgrade addresses can be set in the following manner. The address is not limited to HLS protocol; it can also be of other protocols:
var player = TCPlayer('player-container-id',{
sources: 'webrtc://global-lebtest-play.myqcloud.com/live/lebtest?txSecret=f22a813b284137ed10d3259a7b5c224b&txTime=69f1eb8c&tabr_bitrates=d1080p,d540p,d360p&tabr_start_bitrate=d1080p',
webrtcConfig: {
fallbackUrl: 'https://global-lebtest-play.myqcloud.com/live/lebtest_HLSABR.m3u8',
},
});

Downgrade callback

When a downgrade is triggered, the player will initiate a callback:
player.on('webrtcfallback', function(event) {
console.log(event);
});


Help and Support

Was this page helpful?

Help us improve! Rate your documentation experience in 5 mins.

Feedback