Tous les produits
Search
Centre de documentation

ApsaraVideo Live:Enregistrement cloud

Dernière mise à jour :Aug 19, 2026

Enregistrez les flux audio et vidéo des canaux ARTC et stockez les enregistrements sur Object Storage Service ou ApsaraVideo VOD pour la lecture, l'archivage ou la conformité.

Présentation des fonctionnalités

L'enregistrement cloud capture les flux audio et vidéo des canaux ARTC via des tâches basées sur l'API. Principales fonctionnalités :

  • Modes d'enregistrement polyvalents : Enregistrez chaque utilisateur individuellement (enregistrement individuel) ou combinez plusieurs utilisateurs dans un seul fichier (enregistrement composite).

  • Abonnement flexible : Enregistrez des utilisateurs spécifiques ou des types de flux (caméra ou partage d'écran) au sein d'un canal.

  • Sortie personnalisable : Dispositions composites personnalisées, images d'arrière-plan et formats de sortie (MP4, MP3, HLS).

  • Stockage cloud fiable : Téléverse automatiquement les enregistrements vers OSS ou ApsaraVideo VOD.

Prérequis

  1. Activez les services requis : Activez ARTC. Selon votre méthode de stockage :

    Important
    • Cohérence des régions : Le bucket de stockage et le point de terminaison de l'API doivent se trouver dans la même région.

    • Génération des fichiers d'enregistrement : Une fois l'enregistrement terminé, les fichiers sont sauvegardés dans le bucket spécifié dans votre requête API.

  2. Comprenez la facturation :

    • L'enregistrement cloud est activé par défaut ; aucune activation distincte n'est requise.

    • L'enregistrement cloud est une fonctionnalité payante. Tarifs de l'enregistrement cloud.

Concepts clés

Modes d'enregistrement

Choisissez un mode d'enregistrement adapté à votre cas d'utilisation.

  • Enregistrement individuel

    Enregistre l'audio et la vidéo de chaque utilisateur dans un fichier distinct. Idéal pour l'analyse individuelle ou le post-traitement.

    • Par défaut, les paramètres d'enregistrement correspondent au flux d'origine.

    • Si un flux est interrompu, le système insère du silence, un écran noir ou la dernière image pour maintenir la continuité.

  • Enregistrement composite

    Mélange l'audio et la vidéo de plusieurs utilisateurs dans un seul fichier. Convient aux scénarios multipersonnes tels que les réunions et l'enseignement en ligne.

    • Personnalisez la résolution vidéo de sortie, le débit binaire et la fréquence d'images.

    • Dispositions vidéo personnalisées (jusqu'à 17 volets) et images d'arrière-plan du canevas.

    • Si le flux d'un utilisateur est interrompu, son volet affiche une image d'arrière-plan prédéfinie ou un écran noir.

Cycle de vie des tâches d'enregistrement

image
Remarque
  • Une tâche s'arrête automatiquement après 72 heures d'exécution (cycle de vie maximal), quel que soit son statut.

  • L'arrêt d'une tâche déclenche un rappel d'arrêt. Utilisez-le pour confirmer la fin de la tâche et interroger les fichiers enregistrés.

  • Si une tâche reste inactive plus longtemps que MaxIdleTime, elle s'arrête automatiquement. Plage valide : 10 à 14 400 secondes (4 heures). Valeur par défaut : 300 secondes.

    • En mode composite, une tâche est considérée comme inactive lorsque tous les flux abonnés cessent d'être publiés.

    • En mode individuel, chaque flux est suivi indépendamment. Un flux cesse d'être enregistré après l'écoulement de son propre MaxIdleTime. La tâche ne s'arrête qu'une fois que tous les flux abonnés ont expiré.

Génération et stockage des fichiers

Formats de fichiers d'enregistrement

  • Audio uniquement : Prend en charge les formats MP3 et AAC.

  • Audio et vidéo : Prend en charge les formats MP4 et HLS.

Remarque
  • Un fichier HLS est toujours généré, même s'il n'est pas spécifié dans la requête.

  • Chaque format de fichier supplémentaire entraîne des frais distincts.

Règles de nommage des fichiers

Les enregistrements sont stockés dans un répertoire TaskId situé dans le chemin OSS ou ApsaraVideo VOD que vous avez spécifié. Personnalisez les noms de fichiers avec des variables prédéfinies.

Variables de nom de fichier :

Paramètre

Description

AppId

L'ID de l'application.

ChannelId

L'ID du canal.

UserId

L'ID de l'utilisateur. Valide uniquement pour l'enregistrement individuel.

RecordMode

Le mode d'enregistrement. 0 : individuel, 1 : composite.

StreamType

Le type de flux. A : audio, V : vidéo, AV : audio et vidéo.

SourceType

La source vidéo. C : caméra, S : partage d'écran.

StartTime

L'heure de début de l'enregistrement en UTC, en millisecondes.

Sequence

Le numéro d'index du fragment HLS.

Noms de fichiers par défaut :

  • Enregistrement individuel :

    • Format HLS : {AppId}_{ChannelId}_{UserId}_{StartTime}_{Sequence}

    • Autres formats : {AppId}_{ChannelId}_{UserId}_{StartTime}

  • Enregistrement composite :

    • Format HLS : {AppId}_{ChannelId}_{StartTime}_{Sequence}

    • Autres formats : {AppId}_{ChannelId}_{StartTime}

Remarque
  • Si vous vous abonnez à différentes valeurs de StreamType ou de SourceType pour le même UserId, {SourceType} est ajouté après {UserId} dans le nom de fichier par défaut.

  • Lorsqu'un fichier est nommé filename, le chemin final est TaskId/filename.M3U8. L'identifiant TaskId, généré au démarrage de la tâche, est automatiquement ajouté au début du chemin de stockage.

Stratégie de découpage des fichiers

Le découpage des fichiers divise un enregistrement en plusieurs fichiers. Définissez la durée maximale du fragment avec MaxFileDuration : 180 à 7 200 secondes (par défaut : 7 200 secondes / 2 heures).

Procédure

Le workflow d'enregistrement cloud est entièrement piloté par API. Les étapes suivantes couvrent les opérations principales avec des exemples de paramètres.

Étape 1 : Démarrer une tâche d'enregistrement

Appelez l'API Démarrer une tâche d'enregistrement cloud ARTC. Configurez les paramètres d'abonnement, d'enregistrement et de stockage dans la requête.

Paramètres clés :

  1. Spécifiez le mode d'enregistrement : Choisissez individuel (RecordMode : 0) ou composite (RecordMode : 1).

  2. Définissez les cibles d'abonnement : Dans SubscribeParams, listez les valeurs UserId et StreamType à enregistrer.

  3. Définissez le format de sortie : Dans RecordParams, définissez audio uniquement (StreamType : 1) ou audio et vidéo (StreamType : 0).

  4. Configurez le stockage : Dans StorageParams, spécifiez OSS ou ApsaraVideo VOD et fournissez le bucket et le point de terminaison.

Exemples de scénarios

image

Enregistrement individuel audio uniquement

Scénario : Dans le canal myRoom, il y a trois utilisateurs : userA, userB et userC. Enregistrez les flux audio de userA et userB individuellement, sans enregistrer userC. Générez également des fichiers M3U8 et MP3.

Résultats de l'enregistrement : Les fichiers enregistrés sont stockés dans le bucket Object Storage Service (OSS) spécifié, my-bucket. Les fichiers au format M3U8 sont stockés dans le chemin hls/{taskId}, et les fichiers au format MP3 sont stockés dans le chemin mp3/{taskId}.

Exemple de paramètres :

{
  "AppId": "my-app-id", // The AppId used for streaming
  "ChannelId": "myRoom", // The channel to record
  "SubscribeParams": {
    "SubscribeUserIdList": [
      {
        "UserId": "userA", // The user to be recorded
        "StreamType": 1 // Subscribe to audio-only stream
      },
      {
        "UserId": "userB", // The user to be recorded
        "StreamType": 1 // Subscribe to audio-only stream
      }
    ]
  },
  "RecordParams": {
    "RecordMode": 0, // Specify individual recording mode
    "StreamType": 1, // Specify audio-only output format
    "MaxFileDuration": 180 // Set the file slice duration to 180 seconds (3 minutes)
  },
  "StorageParams": {
    "StorageType": 1, // Specify storing to OSS
    "FileInfo": [ // Generate M3U8 and MP3 files, storing them under "hls" and "mp3" paths respectively
      {
        "Format": "HLS",
        "FilePathPrefix": [
          "hls"
        ]
      },
      {
        "Format": "MP3",
        "FilePathPrefix": [
          "mp3"
        ]
      }
    ],
    "OSSParams": {
      "OSSEndpoint": "oss-cn-shanghai.aliyuncs.com",
      "OSSBucket": "my-bucket"
    }
  },
  "NotifyUrl": "http://mytest/callback", // Optional: The URL to receive callback messages
  "NotifyAuthKey": "12345678abcdefghikj" // Optional: The authentication key for callback messages
}

Enregistrement individuel audio et vidéo

Scénario : Dans le canal myRoom, il y a trois utilisateurs : userA, userB et userC. Enregistrez les flux audio et vidéo de userA et userB individuellement, sans enregistrer userC. Générez également des fichiers M3U8 et MP4.

Résultats de l'enregistrement : Les fichiers sont sauvegardés dans le bucket OSS spécifié, my-bucket. Les fichiers M3U8 sont stockés dans le chemin hls/{taskId}, et les fichiers MP4 sont stockés dans le chemin mp4/{taskId}.

Exemple de paramètres :

{
  "AppId": "my-app-id", // The AppId used for streaming
  "ChannelId": "myRoom", // The channel specified for streaming
  "SubscribeParams": {
    "SubscribeUserIdList": [
      {
        "UserId": "userA", // The user to be recorded
        "StreamType": 0 // Subscribe to audio and video stream
      },
      {
        "UserId": "userB", // The user to be recorded
        "StreamType": 0 // Subscribe to audio and video stream
      }
    ]
  },
  "RecordParams": {
    "RecordMode": 0, // Specify individual recording mode
    "StreamType": 0, // Specify audio and video output format
    "MaxFileDuration": 180 // Set the file slice duration to 180 seconds (3 minutes)
  },
  "StorageParams": {
    "StorageType": 1, // Specify storing to OSS
    "FileInfo": [ // Generate M3U8 and MP4 files, storing them under "hls" and "mp4" paths respectively
      {
        "Format": "HLS",
        "FilePathPrefix": [
          "hls"
        ]
      },
      {
        "Format": "MP4",
        "FilePathPrefix": [
          "mp4"
        ]
      }
    ],
    "OSSParams": {
      "OSSEndpoint": "oss-cn-shanghai.aliyuncs.com",
      "OSSBucket": "my-bucket"
    }
  },
  "NotifyUrl": "http://mytest/callback", // Optional: The URL to receive callback messages
  "NotifyAuthKey": "12345678abcdefghikj" // Optional: The authentication key for callback messages
}

Enregistrement composite audio uniquement

Scénario : Dans le canal myRoom, il y a trois utilisateurs : userA, userB et userC. Enregistrez la conversation entre userA et userB sous forme d'un seul flux composite, sans enregistrer userC. Générez également des fichiers M3U8 et MP3.

Résultats de l'enregistrement : Les fichiers sont sauvegardés dans le bucket OSS spécifié, my-bucket. Les fichiers M3U8 sont stockés dans le chemin hls/{taskId}, et les fichiers MP3 sont stockés dans le chemin mp3/{taskId}.

Exemple de paramètres :

{
  "AppId": "my-app-id", // The AppId used for streaming
  "ChannelId": "myRoom", // The channel specified for streaming
  "SubscribeParams": {
    "SubscribeUserIdList": [
      {
        "UserId": "userA", // The user to be recorded
        "StreamType": 1 // Subscribe to audio-only stream
      },
      {
        "UserId": "userB", // The user to be recorded
        "StreamType": 1 // Subscribe to audio-only stream
      }
    ]
  },
  "RecordParams": {
    "RecordMode": 1, // Specify composite recording mode
    "StreamType": 1, // Specify audio-only output format
    "MaxFileDuration": 180 // Set the file slice duration to 180 seconds (3 minutes)
  },
  "StorageParams": {
    "StorageType": 1, // Specify storing to OSS
    "FileInfo": [ // Generate M3U8 and MP3 files, storing them under "hls" and "mp3" paths respectively
      {
        "Format": "HLS",
        "FilePathPrefix": [
          "hls"
        ]
      },
      {
        "Format": "MP3",
        "FilePathPrefix": [
          "mp3"
        ]
      }
    ],
    "OSSParams": {
      "OSSEndpoint": "oss-cn-shanghai.aliyuncs.com",
      "OSSBucket": "my-bucket"
    }
  },
  "MixTranscodeParams": {
    "AudioBitrate": 128, // Audio bitrate
    "AudioChannels": 2, // Number of audio channels
    "AudioSampleRate": 44100 // Sample rate
  },
  "NotifyUrl": "http://mytest/callback", // Optional: The URL to receive callback messages
  "NotifyAuthKey": "12345678abcdefghikj" // Optional: The authentication key for callback messages
}

Enregistrement composite audio et vidéo

Scénario : Dans le canal myRoom, il y a trois utilisateurs : userA, userB et userC. Enregistrez les flux audio et caméra de userA et userB, et uniquement le flux audio de userC. Générez également des fichiers M3U8 et MP4.

La vidéo résultante organise les volets pour userA et userB comme suit :

image

Résultats de l'enregistrement : Les fichiers sont stockés dans le bucket OSS spécifié my-bucket. Les fichiers M3U8 sont stockés dans le chemin hls/{taskId}, et les fichiers MP4 sont stockés dans le chemin mp4/{taskId}.

Exemple de paramètres :

{
  "AppId": "my-app-id", // The AppId used for streaming
  "ChannelId": "myRoom", // The channel specified for streaming
  "SubscribeParams": {
    "SubscribeUserIdList": [
      {
        "UserId": "userA", // The user to be recorded
        "StreamType": 0, // Subscribe to audio and video stream
        "SourceType": 0 // Subscribe to camera stream
      },
      {
        "UserId": "userB", // The user to be recorded
        "StreamType": 0, // Subscribe to audio and video stream
        "SourceType": 0 // Subscribe to camera stream
      },
      {
        "UserId": "userC", // The user to be recorded
        "StreamType": 1 // Subscribe to audio-only stream
      }
    ]
  },
  "RecordParams": {
    "RecordMode": 1, // Specify composite recording mode
    "StreamType": 0, // Specify audio and video output format
    "MaxFileDuration": 180 // Set the file slice duration to 180 seconds (3 minutes)
  },
  "StorageParams": {
    "StorageType": 1, // Specify storing to OSS
    "FileInfo": [ // Generate M3U8 and MP4 files, storing them under "hls" and "mp4" paths respectively
      {
        "Format": "HLS",
        "FilePathPrefix": [
          "hls"
        ]
      },
      {
        "Format": "MP4",
        "FilePathPrefix": [
          "mp4"
        ]
      }
    ],
    "OSSParams": {
      "OSSEndpoint": "oss-cn-shanghai.aliyuncs.com",
      "OSSBucket": "my-bucket"
    }
  },
  "MixTranscodeParams": {
    "AudioBitrate": 128,
    "AudioChannels": 2,
    "AudioSampleRate": 44100,
    "VideoCodec": "H.264",
    "VideoBitrate": 500,
    "VideoFramerate": 30,
    "VideoGop": 30,
    "VideoHeight": 480, // Height of the final video
    "VideoWidth": 640 // Width of the final video
  },
  "MixLayoutParams": {
    "UserPanes": [
      {
        "userId": "userA",
        "sourceType": 0,
        "height": "1", // Occupies the full height of the canvas
        "width": "0.5", // Occupies half the width of the canvas
        // Positions the pane at the canvas's top-left corner
        "x": "0",
        "y": "0"
      },
      {
        "userId": "userB",
        "sourceType": 0,
        "height": "1", // Occupies the full height of the canvas
        "width": "0.5", // Occupies half the width of the canvas
        // Positions the pane starting at the canvas's horizontal midpoint
        "x": "0.5",
        "y": "0"
      }
    ]
  },
  "NotifyUrl": "http://mytest/callback", // Optional: The URL to receive callback messages
  "NotifyAuthKey": "12345678abcdefghikj" // Optional: The authentication key for callback messages
}

Étape 2 (Facultatif) : Mettre à jour une tâche d'enregistrement

Appelez l'API Mettre à jour une tâche d'enregistrement cloud ARTC pour modifier les paramètres d'enregistrement pendant l'exécution d'une tâche.

Remarque
  • Mode individuel : Seul l'abonnement peut être mis à jour.

  • Mode composite : L'abonnement et la disposition peuvent être mis à jour.

Étape 3 : Arrêter une tâche d'enregistrement

Pour terminer l'enregistrement, appelez l'API Arrêter une tâche d'enregistrement cloud ARTC.

Remarque

Le système traite et téléverse les fichiers d'enregistrement finaux après cet appel. La tâche n'est terminée qu'après réception du rappel stop. Ne supprimez ni ne modifiez les ressources de stockage avant de l'avoir reçu.

Étape 4 : Interroger les tâches et les fichiers

Appelez l'API Interroger les fichiers d'enregistrement cloud ARTC et le statut des tâches pour vérifier le statut des tâches et les fichiers enregistrés.

Remarque
  • Seules les tâches existantes peuvent être interrogées. L'API renvoie une erreur pour les tâches inexistantes.

  • Les informations sur les fichiers d'enregistrement sont disponibles pour les tâches démarrées avec succès et ayant duré moins de 72 heures. L'API renvoie une erreur après 72 heures.