Adaptive bitrate streaming packages multiple audio and video streams at different bitrates and resolutions into a single file. During playback, the player automatically selects the stream that best matches the viewer's current network bandwidth and device capabilities, delivering smooth playback without manual intervention.
How it works
Adaptive bitrate streaming packages multiple audio and video streams into a single file. This file contains information about each stream, such as its bitrate and resolution. Unlike traditional single-bitrate playback, adaptive bitrate streaming allows a player to select the stream that best suits the current network bandwidth and device. This improves the playback experience.
The most common output formats for adaptive bitrate streaming are HTTP Live Streaming (HLS) and DASH. ApsaraVideo VOD supports only HLS.
Demonstration

Prerequisites
Before you begin, make sure that you have:
An ApsaraVideo VOD account with the console activated
A video file to transcode (see Upload media assets in the console for supported formats)
(Optional) An accelerated domain name configured in ApsaraVideo VOD to avoid storage outbound traffic fees (see Billing for outbound traffic from storage)
How to use
Transcode using the console
Step 1: Create an adaptive bitrate transcoding template group
Create a template group that defines the output renditions for your adaptive bitrate stream.
For detailed instructions, see Transcoding templates.
Step 2 (optional): Create a workflow
A workflow orchestrates media processing tasks such as transcoding, review, and snapshot capture into an automated sequence. After a file is uploaded or media processing is triggered, the workflow processes the file according to its predefined task order.
To use a workflow, create one with a media transcoding node and associate the adaptive bitrate transcoding template group from Step 1. For instructions, see Manage workflows.
Step 3: Start transcoding
Trigger transcoding either during upload or after upload using the template group or workflow created above.
Trigger transcoding during upload
-
Log on to the ApsaraVideo VOD console.
-
In the left-side navigation pane, choose Media Files > Audio/Video, and then click Upload.
-
Click Add Media. Configure the upload method and storage address. Select Use Transcoding Template Group or Use Workflow, then specify the adaptive bitrate transcoding template group or workflow.

-
Add the audio or video files and click Upload.
Trigger transcoding after upload
Use this method to re-transcode existing videos, apply standard encryption, or overwrite watermark parameters.
-
Log on to the ApsaraVideo VOD console.
-
In the left-side navigation pane, choose Media Files > Audio/Video.
-
Find the target file and click Processing in the Actions column.
-
Select Use Transcoding Template Group or Use Workflow, then specify the adaptive bitrate transcoding template group or workflow.

-
Click OK.
Step 4: View transcoding results
After the transcoding job starts, check its status and retrieve the output video URL.
Without an accelerated domain name configured in ApsaraVideo VOD, playing or downloading a video from its URL incurs storage outbound traffic fees. For more information, see Billing for outbound traffic from storage.
View in the console
-
Log on to the ApsaraVideo VOD console.
-
In the left-side navigation pane, choose Media Files > Audio/Video.
-
Check the status of the file. A status of Normal indicates that transcoding is complete. For other statuses, see Status: Video Status.
-
In the Actions column, click Manage, and then click the Video URL tab. A successfully transcoded file produces one adaptive stream and multiple transcoded streams, each with a corresponding video URL.

Use event notifications
ApsaraVideo VOD sends event notifications through HTTP and MNS callbacks when media files are processed. Configure event notifications to receive the transcoding job status and output video URL in the callback results. For setup instructions, see Event notifications.
Transcoding-related events:
StreamTranscodeComplete -- Sent when transcoding for a single definition is complete
TranscodeComplete -- Sent when transcoding for all definitions is complete
Transcode using the API
Usage notes
For general API usage, see ApsaraVideo VOD API overview. To test API operations and generate SDK sample code without calculating signatures, use OpenAPI Explorer.
Step 1: Create an adaptive bitrate transcoding template group
Call the AddTranscodeTemplateGroup operation and configure the packaging template using the TranscodeTemplate parameter. For the full parameter specification, see TranscodeTemplate: Transcoding template configuration.
Step 2 (optional): Create a workflow
Workflows can only be created in the ApsaraVideo VOD console. For instructions, see Manage workflows.
Step 3: Start transcoding
Trigger transcoding during upload
The CreateUploadVideo operation only obtains an upload URL and credential and creates basic media asset information. It does not upload the file. Implement the upload logic separately. For a complete upload example, see Upload media assets by calling ApsaraVideo VOD API operations.
Call CreateUploadVideo or UploadMediaByURL and specify the transcoding template group ID in the TemplateGroupId parameter or the workflow ID in the WorkflowId parameter. After the file is uploaded, ApsaraVideo VOD automatically starts a transcoding job based on the specified template group or workflow.
Trigger transcoding after upload
Use this method to re-transcode existing videos, apply standard encryption, or overwrite watermark parameters.
Call SubmitTranscodeJobs and specify the TemplateGroupId parameter. Alternatively, call SubmitWorkflowJob and specify the WorkflowId parameter. ApsaraVideo VOD immediately starts transcoding based on the specified template group or workflow.
Step 4: View transcoding results
Without an accelerated domain name configured in ApsaraVideo VOD, playing or downloading a video from its URL incurs storage outbound traffic fees. For more information, see Billing for outbound traffic from storage.
Query by API
The SubmitTranscodeJobs operation returns a TranscodeTaskId. Call GetTranscodeTask with this ID to query the execution status and retrieve the output video URL.
Use event notifications
ApsaraVideo VOD sends event notifications through HTTP and MNS callbacks when media files are processed. Configure event notifications to receive the transcoding job status and output video URL in the callback results. For setup instructions, see Event notifications.
Transcoding-related events:
StreamTranscodeComplete -- Sent when transcoding for a single definition is complete
TranscodeComplete -- Sent when transcoding for all definitions is complete
Next steps
After transcoding, configure adaptive streaming in ApsaraVideo Player to enable automatic definition switching based on network conditions, or manual definition and subtitle switching.
ApsaraVideo Player SDK for Android: Adaptively switch video definitions based on network conditions
ApsaraVideo Player SDK for iOS: Adaptively switch video definitions based on network conditions
ApsaraVideo Player SDK for Web: Adaptive HLS streaming based on network conditions