Tous les produits
Search
Centre de documentation

Object Storage Service:Transcodage audio

Dernière mise à jour :Aug 18, 2026

Le transcodage audio convertit des fichiers audio vers les formats de votre choix. Cette rubrique décrit les paramètres du transcodage audio et fournit des exemples.

Cas d'utilisation

  • Convertir les formats de fichiers musicaux pour garantir la compatibilité avec divers appareils de lecture.

  • Optimiser l'espace de stockage en transcodant de grands fichiers audio sans perte vers des formats avec perte hautement compressés, tels que MP3.

  • S'adapter à diverses conditions réseau pour les services de streaming en ligne en transcodant l'audio en plusieurs débits binaires afin d'assurer une lecture fluide sur les connexions à faible bande passante.

  • Préparer les ressources audio pour la production et la post-production vidéo en les transcodant pour répondre aux exigences du projet ou aux normes de distribution.

Notes d'utilisation

  • Le transcodage audio prend uniquement en charge le traitement asynchrone, invoqué à l'aide de la méthode x-oss-async-process.

  • Avant d'utiliser le transcodage audio, vous devez associer un projet Intelligent Media Management (IMM) à un compartiment OSS. Pour plus d'informations, consultez Démarrage rapide et AttachOSSBucket.

  • L'accès anonyme sera refusé.

  • Vous devez disposer des autorisations requises pour utiliser la fonctionnalité. Pour plus d'informations, consultez autorisations.

  • Le transcodage peut échouer si le taux d'échantillonnage par défaut ou le nombre de canaux audio est incompatible avec le format de conteneur cible.

  • Pour le transcodage audio, vous pouvez définir la profondeur de bits d'échantillonnage uniquement pour le format flac. Pour le transcodage vidéo, vous pouvez définir la profondeur de bits à l'aide du paramètre pixfmt de l'action OSS x-oss-process. Pour plus d'informations, consultez Transcodage vidéo.

Paramètres

Action : audio/convert

Le tableau suivant décrit les paramètres.

Paramètre

Type

Obligatoire

Description

ss

int

Non

L'heure de début du transcodage, en millisecondes. Valeurs valides :

  • 0 (par défaut) : Le transcodage commence au début du fichier audio.

  • Une valeur supérieure à 0 : Le transcodage commence à la milliseconde ss.

t

int

Non

La durée du transcodage, en millisecondes. Valeurs valides :

  • 0 (par défaut) : Le transcodage se poursuit jusqu'à la fin du fichier audio.

  • Une valeur supérieure à 0 : Le transcodage se poursuit pendant t millisecondes.

f

string

Oui

Le format de conteneur de sortie. Valeurs valides :

  • mp3

  • aac

  • flac

  • oga

  • ac3

  • opus

  • amr

ar

int

Non

Le taux d'échantillonnage audio de sortie. Par défaut, le taux d'échantillonnage de l'audio source est utilisé. Valeurs valides :

  • 8000

  • 11025

  • 12000

  • 16000

  • 22050

  • 24000

  • 32000

  • 44100

  • 48000

  • 64000

  • 88200

  • 96000

Remarque

Les taux d'échantillonnage pris en charge varient selon le format. MP3 prend en charge des taux d'échantillonnage allant jusqu'à 48 kHz. Opus prend en charge 8 kHz, 12 kHz, 16 kHz, 24 kHz et 48 kHz. AC3 prend en charge 32 kHz, 44,1 kHz et 48 kHz. AMR prend uniquement en charge 8 kHz et 16 kHz.

ac

int

Non

Le nombre de canaux audio de sortie. Par défaut, le nombre de canaux de l'audio source est utilisé. Plage de valeurs : 1 à 8.

Remarque

Le nombre de canaux audio pris en charge varie selon le format. MP3 prend uniquement en charge le mono et le stéréo. AC3 prend en charge jusqu'à 6 canaux (5,1). AMR prend uniquement en charge le mono.

aq

int

Non

La qualité audio. Ce paramètre est mutuellement exclusif avec le paramètre ab. Plage de valeurs : 0 à 100.

ab

int

Non

Le débit binaire audio, en bits par seconde (bps). Ce paramètre est mutuellement exclusif avec le paramètre aq. Plage de valeurs : 1 000 à 10 000 000.

abopt

string

Non

L'option de débit binaire audio. Valeurs valides :

  • 0 (par défaut) : Le débit binaire audio cible est toujours utilisé.

  • 1 : Le débit binaire audio source est utilisé s'il est inférieur au débit binaire cible spécifié par ab.

  • 2 : La tâche de transcodage échoue si le débit binaire audio source est inférieur au débit binaire cible spécifié par ab.

adepth

int

Non

La profondeur de bits d'échantillonnage de l'audio de sortie. Valeurs valides : 16 et 24.

Remarque

Ce paramètre n'est valide que lorsque f est défini sur flac.

Remarque

Les paramètres sys/saveas et notify sont également utilisés pour le transcodage audio. Pour plus d'informations, consultez sys/saveas et Notifications.

Utiliser l'API REST

Convertir MP3 en AAC

Configuration de la tâche

  • Format de conteneur : mp3 vers aac

  • Fichier source : example.mp3

  • Durée du transcodage : 60 000 millisecondes, à partir de la 10 000e milliseconde.

  • Paramètres audio : Conserver le taux d'échantillonnage et le nombre de canaux audio d'origine, et définir le débit binaire audio sur 96 Kbps.

  • Notification de fin : Envoyer un message via MNS.

Exemple de requête

// Transcode the audio file named example.mp3.
POST /example.mp3?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
 
x-oss-async-process=audio/convert,ss_10000,t_60000,f_aac,ab_96000|sys/saveas,b_b3V0YnVja2V0,o_b3V0b2JqcHJlZml4LnthdXRvZXh0fQo/notify,topic_QXVkaW9Db252ZXJ0

Convertir WAV en Opus

Configuration de la tâche

  • Format de conteneur : wav vers opus

  • Durée du transcodage : L'intégralité du fichier audio.

  • Paramètres audio : Taux d'échantillonnage de 48 kHz, deux canaux et débit binaire audio de 96 Kbps.

  • Chemin de sortie : oss://outbucket/outobject.opus

  • Notification de fin : Envoyer un message via MNS.

Exemple de requête

// Transcode the audio file named example.wav.
POST /example.wav?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
 
x-oss-async-process=audio/convert,f_opus,ab_96000,ar_48000,ac_2|sys/saveas,b_b3V0YnVja2V0, o_b3V0b2JqLnthdXRvZXh0fQo/notify,topic_QXVkaW9Db252ZXJ0

Utiliser les SDK

Vous pouvez utiliser les SDK Java, Python et Go pour effectuer un transcodage audio asynchrone.

Java

Nécessite le SDK pour Java version 3.17.4 ou ultérieure.

import com.aliyun.oss.ClientBuilderConfiguration;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.common.auth.CredentialsProviderFactory;
import com.aliyun.oss.common.auth.EnvironmentVariableCredentialsProvider;
import com.aliyun.oss.common.comm.SignVersion;
import com.aliyun.oss.model.AsyncProcessObjectRequest;
import com.aliyun.oss.model.AsyncProcessObjectResult;
import com.aliyuncs.exceptions.ClientException;

import java.util.Base64;

public class Demo {
    public static void main(String[] args) throws ClientException {
        // yourEndpoint: The endpoint of the region where your bucket is located.
        String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
        // The region ID for the endpoint, for example, cn-hangzhou.
        String region = "cn-hangzhou";
        // Obtain access credentials from environment variables. Before you run this sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured.
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        // Specify the bucket name.
        String bucketName = "examplebucket";
        // Specify the transcoded audio file.
        String targetKey = "dest.aac";
        // Specify the source audio file.
        String sourceKey = "src.mp3";

        // Create an OSSClient instance.
        // When the OSSClient instance is no longer used, call the shutdown method to release resources.
        ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
        clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);
        OSS ossClient = OSSClientBuilder.create()
                .endpoint(endpoint)
                .credentialsProvider(credentialsProvider)
                .clientConfiguration(clientBuilderConfiguration)
                .region(region)
                .build();

        try {
            // Build the audio processing style string and audio transcoding parameters.
            String style = String.format("audio/convert,ss_10000,t_60000,f_aac,ab_96000");
            // Build the asynchronous processing instruction.
            String bucketEncoded = Base64.getUrlEncoder().withoutPadding().encodeToString(bucketName.getBytes());
            String targetEncoded = Base64.getUrlEncoder().withoutPadding().encodeToString(targetKey.getBytes());
            String process = String.format("%s|sys/saveas,b_%s,o_%s/notify,topic_QXVkaW9Db252ZXJ0", style, bucketEncoded, targetEncoded);
            // Create an AsyncProcessObjectRequest object.
            AsyncProcessObjectRequest request = new AsyncProcessObjectRequest(bucketName, sourceKey, process);
            // Execute the asynchronous processing task.
            AsyncProcessObjectResult response = ossClient.asyncProcessObject(request);
            System.out.println("EventId: " + response.getEventId());
            System.out.println("RequestId: " + response.getRequestId());
            System.out.println("TaskId: " + response.getTaskId());

        } finally {
            // Shut down the OSSClient.
            ossClient.shutdown();
        }
    }
}

Python

Nécessite le SDK pour Python version 2.18.4 ou ultérieure.

# -*- coding: utf-8 -*-
import base64
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider

def main():
    # Obtain access credentials from environment variables. Before you run this sample code, make sure that the environment variables are configured.
    auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
    # The endpoint of the region where the bucket is located. For example, for China (Hangzhou), use https://oss-cn-hangzhou.aliyuncs.com.
    endpoint = 'https://oss-cn-hangzhou.aliyuncs.com'

    # Specify the bucket name, for example, examplebucket.
    bucket = oss2.Bucket(auth, endpoint, 'examplebucket')

    # Specify the name of the source audio file.
    source_key = 'src.mp3'

    # Specify the name of the transcoded audio file.
    target_key = 'dest.aac'

    # Build the audio processing style string and audio transcoding parameters.
    audio_style = 'audio/convert,ss_10000,t_60000,f_aac,ab_96000'

    # Build the processing instruction, including the save path and the Base64-encoded bucket name and target object name.
    bucket_name_encoded = base64.urlsafe_b64encode('examplebucket'.encode()).decode().rstrip('=')
    target_key_encoded = base64.urlsafe_b64encode(target_key.encode()).decode().rstrip('=')
    process = f"{audio_style}|sys/saveas,b_{bucket_name_encoded},o_{target_key_encoded}/notify,topic_QXVkaW9Db252ZXJ0"

    try:
        # Execute the asynchronous processing task.
        result = bucket.async_process_object(source_key, process)
        print(f"EventId: {result.event_id}")
        print(f"RequestId: {result.request_id}")
        print(f"TaskId: {result.task_id}")
    except Exception as e:
        print(f"Error: {e}")

if __name__ == "__main__":
    main()

Go

Nécessite le SDK pour Go version 3.0.2 ou ultérieure.

package main

import (
	"encoding/base64"
	"fmt"
	"log"
	"os"

	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main() {
	// Obtain temporary access credentials from environment variables. Before you run this sample code, make sure that the OSS_ACCESS_KEY_ID, OSS_ACCESS_KEY_SECRET, and OSS_SESSION_TOKEN environment variables are configured.
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}
	// Create an OSSClient instance.
	// yourEndpoint: The endpoint of the region where your bucket is located. For example, for China (Hangzhou), use https://oss-cn-hangzhou.aliyuncs.com. Set this parameter based on the actual region.
	// yourRegion: The region ID, for example, cn-hangzhou.
	client, err := oss.New("https://oss-cn-hangzhou.aliyuncs.com", "", "", oss.SetCredentialsProvider(&provider), oss.AuthVersion(oss.AuthV4), oss.Region("cn-hangzhou"))
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}
	// Specify the bucket name, for example, examplebucket.
	bucketName := "examplebucket"

	bucket, err := client.Bucket(bucketName)
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	// Specify the name of the source audio file.
	sourceKey := "src.mp3"
	// Specify the name of the transcoded audio file.
	targetKey := "dest.aac"

	// Build the audio processing style string and audio transcoding parameters.
	audioStyle := "audio/convert,ss_10000,t_60000,f_aac,ab_96000"

	// Build the processing instruction, including the save path and the Base64-encoded bucket name and target object name.
	bucketNameEncoded := base64.URLEncoding.EncodeToString([]byte(bucketName))
	targetKeyEncoded := base64.URLEncoding.EncodeToString([]byte(targetKey))
	process := fmt.Sprintf("%s|sys/saveas,b_%v,o_%v/notify,topic_QXVkaW9Db252ZXJ0", audioStyle, bucketNameEncoded, targetKeyEncoded)

	// Execute the asynchronous processing task.
	result, err := bucket.AsyncProcessObject(sourceKey, process)
	if err != nil {
		log.Fatalf("Failed to async process object: %s", err)
	}

	fmt.Printf("EventId: %s\n", result.EventId)
	fmt.Printf("RequestId: %s\n", result.RequestId)
	fmt.Printf("TaskId: %s\n", result.TaskId)
}