L'enregistrement de flux en direct capture les flux ingérés et les sauvegarde dans un emplacement de stockage spécifié pour une lecture à la demande. ApsaraVideo Live propose deux options de stockage : stocker dans ApsaraVideo VOD et stocker dans Object Storage Service (OSS).
Présentation de la fonctionnalité
Fonctionnement
Pendant l'enregistrement, le système traite le flux en direct ingéré en le segmentant en fichiers Transport Stream (TS) et en les encapsulant dans le format cible, tel que FLV, MP4 ou M3U8. Les fichiers finaux sont sauvegardés dans votre espace de stockage spécifié.
L'enregistrement de flux en direct modifie uniquement le format conteneur de l'audio et de la vidéo. Il n'altère pas le contenu au niveau de la couche d'encodage. Si le flux source présente des problèmes tels que des artefacts vidéo ou une désynchronisation audio-vidéo, le fichier enregistré conservera ces défauts.
Formats d'encodage audio et vidéo
Étant donné que l'enregistrement de flux en direct commence par segmenter le flux en direct en fichiers TS, le format d'encodage du flux doit être compatible avec le conteneur TS. ApsaraVideo Live prend en charge uniquement les formats d'encodage suivants :
Codecs vidéo : H.264 (AVC), H.265 (HEVC), MPEG-4
Codecs audio : AAC, MP3
Si le flux en direct contient de l'audio ou de la vidéo encodés dans d'autres formats, vous pouvez rencontrer des problèmes tels qu'un échec de l'enregistrement, un écran noir dans l'enregistrement ou l'absence d'audio.
Comparaison des méthodes de stockage
L'enregistrement de flux en direct offre deux options de stockage : ApsaraVideo VOD et OSS. Vous ne pouvez pas configurer les deux options de stockage pour un même flux en direct. Veuillez en choisir une en fonction de vos besoins métier.
Élément | Stocker dans ApsaraVideo VOD | Stocker dans OSS |
Produit associé | ApsaraVideo VOD | OSS |
Format de stockage |
|
|
Post-traitement de l'enregistrement | Prend en charge des fonctionnalités de traitement multimédia telles que la fusion automatique et le transcodage pour les vidéos enregistrées. | Nécessite un traitement manuel. |
Cas d'utilisation | Idéal pour les tâches de post-production sur le contenu enregistré, telles que le découpage, le transcodage et le montage. | Idéal pour le stockage et la gestion à long terme du contenu enregistré. |
Méthodes de déclenchement de l'enregistrement
L'enregistrement de flux en direct peut être déclenché de quatre manières : enregistrement automatique, enregistrement à la demande, utilisation des paramètres d'ingestion ou enregistrement manuel.
Enregistrement automatique
ApsaraVideo Live utilise des modèles d'enregistrement pour gérer les configurations d'enregistrement. Le système fait correspondre un modèle d'enregistrement automatique en fonction du DomainName, de l'AppName et du StreamName présents dans votre URL d'ingestion.
Logique de correspondance
Correspondance exacte : Dans le modèle d'enregistrement, spécifiez un
AppNameet unStreamNamespécifiques. Cela applique le modèle uniquement à ce flux en direct précis.Correspondance générique : Dans le modèle d'enregistrement, définissez l'
AppNamesur*pour appliquer le modèle à toutes les applications sous le domaine. Définissez leStreamNamesur*pour appliquer le modèle à tous les flux en direct au sein de l'application.Limite du modèle générique : Lorsque l'
AppNameet leStreamNamesont tous deux définis sur*, un seul modèle d'enregistrement générique de ce type est autorisé par domaine. Si votre soumission échoue dans la console, vérifiez si un modèle générique existe déjà pour le domaine. Pour modifier la configuration, modifiez le modèle générique existant au lieu d'en créer un nouveau.
Confirmation par callback
Utilisez l'enregistrement à la demande pour décider dynamiquement s'il faut enregistrer un flux en direct en fonction de vos règles métier.
Flux de travail :
Lorsqu'un flux en direct démarre, si le modèle d'enregistrement correspondant est défini sur « Enregistrement à la demande », le service de streaming en direct envoie une requête HTTP à votre URL de callback à la demande préconfigurée pour déterminer s'il faut enregistrer le flux.
Votre application reçoit la requête et renvoie une commande d'enregistrement (autoriser ou refuser) en fonction de sa logique métier actuelle.
Le service de streaming en direct lance la tâche d'enregistrement en fonction de votre réponse.
Vous devez d'abord spécifier l'URL de callback à la demande pour l'enregistrement de flux en direct dans les paramètres de callback d'événement. Pour plus de détails sur la configuration, les paramètres de requête et le format de réponse, reportez-vous à Callbacks d'enregistrement de flux en direct et à Callbacks d'enregistrement à la demande.
Remarque :
Le service d'enregistrement traite votre réponse de callback pour remplacer les configurations du modèle :
Interval: La valeur Interval fournie remplacera le cycle d'enregistrement configuré dans le modèle d'enregistrement.Format: Le service calcule l'intersection entre le Format demandé et les formats préconfigurés dans le modèle d'enregistrement. S'il n'y a aucun format commun, le flux ne sera pas enregistré.Fréquence de callback: Pour un seul flux en direct, le callback d'enregistrement à la demande envoie la requête HTTP de confirmation une seule fois, au début de la diffusion du flux. Cette requête n'est pas envoyée à nouveau, même si le format de stockage est M3U8 ou si le flux se déconnecte et se reconnecte pendant la diffusion.
Déclencheur par paramètre d'ingestion
Lorsque la méthode de déclenchement est définie sur « Paramètres d'ingestion », vous pouvez contrôler l'activation ou non de l'enregistrement pour le flux actuel en utilisant le paramètre record_config dans l'URL d'ingestion.
Format du paramètre :
record_config={"NeedRecord": <true/false>}Description du paramètre :
true: Active l'enregistrement.false: Désactive l'enregistrement.Remarque : Le paramètre doit être encodé en URL lors de la construction de l'URL.
Limites : Ce mode de déclenchement permet uniquement de contrôler l'enregistrement du flux brut. Les flux transcodés ne peuvent pas être enregistrés à l'aide de ce mode de déclenchement. Pour enregistrer des flux transcodés, sélectionnez un autre mode de déclenchement, tel que Automatic, Callback Confirmation ou Manual.
Supposons que l'URL d'ingestion du flux soit : rtmp://push.example.com/live/stream1
Si vous devez activer l'enregistrement à l'aide de paramètres, vous pouvez construire l'URL comme suit : rtmp://push.example.com/live/stream1?record_config=%7B%22NeedRecord%22%3Atrue%7D&auth_key=xxx
Enregistrement manuel
Pour un contrôle total du processus d'enregistrement basé sur votre logique métier, utilisez l'enregistrement manuel.
À ce stade, vous pouvez appeler l'API RealTimeRecordCommand pour démarrer manuellement l'enregistrement d'un flux en direct spécifique.
Cette API permet également d'arrêter un enregistrement. Vous pouvez appeler cette interface pour arrêter de force la tâche d'enregistrement en cours, qu'elle ait été démarrée automatiquement, à la demande ou manuellement.
Reportez-vous à la documentation de l'API RealTimeRecordCommand, et utilisez le paramètre command pour effectuer l'opération start ou stop.
Stocker les enregistrements dans ApsaraVideo VOD
Prérequis
Activez le service ApsaraVideo VOD et configurez un bucket de stockage. Le bucket doit se trouver dans la même région que le centre en direct du domaine que vous souhaitez configurer.
Configuration
ApsaraVideo Live utilise des modèles d'enregistrement pour gérer les configurations d'enregistrement. Vous pouvez créer un modèle d'enregistrement pour stocker les enregistrements dans ApsaraVideo VOD à l'aide de la console ou d'une API.
L'enregistrement doit être configuré avant le démarrage du flux en direct. Sinon, le système ne conserve pas les données du flux. Assurez-vous de terminer la configuration de l'enregistrement avant que le flux ne soit diffusé en direct.
Méthode 1 : Console
Connectez-vous à la console ApsaraVideo Live.
Dans le volet de navigation de gauche, sélectionnez Feature Management > Recording. Sous l'onglet Recording Configuration, sélectionnez VOD.
Sélectionnez le domaine de streaming à configurer, puis cliquez sur Add.
-
Configurez le modèle d'enregistrement.
Paramètres d'enregistrement de base
Paramètre
Description
Application Name
Le nom de l'application doit être identique à l'AppName dans l'URL d'ingestion du flux pour prendre effet. Pour appliquer ceci à toutes les applications sous le domaine, saisissez
*.Stream Name
Nom du flux. Prend en charge la correspondance exacte pour enregistrer un flux spécifique. Pour enregistrer tous les flux en direct sous l'AppName actuel, saisissez
*.VOD Application
L'espace de travail où les fichiers enregistrés sont stockés, créé dans le service ApsaraVideo VOD. Ce champ n'est pas affiché si les espaces de travail ne sont pas activés.
Bucket
Vous pouvez sélectionner un emplacement de stockage créé dans le service ApsaraVideo VOD dans la région actuelle. Par défaut, le système utilise l'adresse de téléchargement par défaut configurée dans ApsaraVideo VOD.
Recording Source
Vous pouvez enregistrer le Raw Stream ou les Transcoded Streams. Les deux peuvent être sélectionnés simultanément.
Lorsque vous sélectionnez Transcoded Streams, vous pouvez spécifier jusqu'à 10 modèles de transcodage ou sélectionner tous les modèles de transcodage.
L'enregistrement du flux transcodé ne peut prendre effet que si l'AppName du modèle de transcodage est
*ou est identique à l'AppName du modèle d'enregistrement.Trigger Mode
Les enregistrements peuvent être déclenchés des manières suivantes : Automatic, Callback Confirmation, Ingest Parameter Trigger et Manual.
Pour plus d'informations, consultez Méthodes de déclenchement de l'enregistrement.
Format
Prend en charge les formats M3U8, FLV et MP4. Lorsque plusieurs formats sont sélectionnés, vous pouvez configurer les paramètres VOD pour chaque format séparément.
Recording Cycle
La durée maximale d'un seul fichier d'enregistrement. Si la durée du flux en direct dépasse ce seuil, le système génère un nouveau fichier. Par défaut : 180 minutes. Plage : 15 à 360 minutes.
Reconnect Timeout
Si une interruption de flux en direct est inférieure à cette durée, l'enregistrement reprend dans le même fichier. Des interruptions plus longues entraînent la création d'un nouveau fichier. Par défaut : 180 secondes. Plage : 15 à 21 600 secondes.
Segment Length
La durée d'un seul segment TS. Ceci n'est affiché que lorsque vous sélectionnez le format M3U8.
Par défaut : 30 secondes. Plage : 5 à 30 secondes.
Paramètres VOD
Lors du stockage des enregistrements dans ApsaraVideo VOD, vous pouvez utiliser ces paramètres pour traiter les fichiers enregistrés avec les capacités de traitement multimédia d'ApsaraVideo VOD. Si vous sélectionnez plusieurs formats d'enregistrement, vous pouvez les configurer séparément.
Paramètre
Description
Auto Merge
Si activé, plusieurs fichiers issus de différents cycles d'enregistrement sont automatiquement fusionnés en un seul fichier d'enregistrement et stockés dans ApsaraVideo VOD après la fin du flux en direct. Les fichiers d'enregistrement d'origine sont conservés.
Video Processing
Utilisez le service ApsaraVideo VOD pour traiter les vidéos enregistrées.
Source Video : Chaque fichier de cycle d'enregistrement est traité individuellement.
Merged Video : Traite le fichier fusionné (Affiché après l'activation de la fusion automatique).
Processing Method
Prend en chargeTranscoding Template Group et Workflow.
Processing Template
Sélectionnez un groupe de modèles de transcodage ou un modèle de workflow depuis le service ApsaraVideo VOD.
Remarque : Vous ne pouvez sélectionner que des modèles créés dans la même région que le centre en direct du domaine.
Category
Définissez la catégorie pour le fichier enregistré dans le service ApsaraVideo VOD.
Cliquez sur OK pour créer un modèle d'enregistrement.
Méthode 2 : API
Appelez l'API AddLiveRecordVodConfig pour ajouter une configuration permettant de stocker les enregistrements dans ApsaraVideo VOD. Exemple de code :
// Parameter settings for API request
AddLiveRecordVodConfigRequest.RecordFormat recordFormat0 = AddLiveRecordVodConfigRequest.RecordFormat.builder()
.format("m3u8")
.sliceDuration(30)
.autoCompose("ON")
.videoProcess("origin,compose")
.processMethod("transcode")
.processTemplateId("e2d796d3bb5fd8049d32bff62f94****")
.tags("sports")
.build();
AddLiveRecordVodConfigRequest addLiveRecordVodConfigRequest = AddLiveRecordVodConfigRequest.builder()
.regionId("<Your RegionID>")
.domainName("<Your DomainName>")
.appName("live")
.streamName("stream1")
.cycleDuration(3600)
.spaceId("app-1000000")
.storageLocation("<Your StorageLocation>")
.onDemand(0)
.recordContent("raw,transcode")
.delayTime(180)
.recordFormat(java.util.Arrays.asList(recordFormat0))
.transcodeTemplates(java.util.Arrays.asList("sd"))
// Request-level configuration rewrite, can set Http request parameters, etc.
// .requestConfiguration(RequestConfiguration.create().setHttpHeaders(new HttpHeaders()))
.build();
Paramètres clés
-
OnDemandLa méthode de déclenchement de l'enregistrement. Valeurs valides : 0 (enregistrement automatique), 1 (enregistrement à la demande), 2 (paramètres d'ingestion), 7 (enregistrement manuel). Pour plus de détails, consultez Méthodes de déclenchement de l'enregistrement.
-
DelayTimeLa durée de collage pour les flux interrompus, en secondes. Si une interruption de flux en direct est inférieure à cette durée, l'enregistrement reprend dans le même fichier. Des interruptions plus longues entraînent la création d'un nouveau fichier.
-
RecordContent,TranscodeTemplatesSpécifiez s'il faut enregistrer le flux source ou un flux transcodé. Lors de l'enregistrement d'un flux transcodé, vous devez spécifier l'ID du modèle de transcodage.
-
RecordFormat: Définit le format de stockage et la configuration VOD. Cela inclut :AutoCompose: Si activé, plusieurs fichiers issus de différents cycles d'enregistrement sont automatiquement fusionnés en un seul fichier après la fin du flux en direct.VideoProcess,ProcessMethod,ProcessTemplateId: Utilisez un modèle de transcodage ou de workflow ApsaraVideo VOD pour traiter le fichier enregistré d'origine ou la vidéo fusionnée automatiquement.
Pour une description complète des paramètres, consultez AddLiveRecordVodConfig - Ajouter une configuration pour stocker les enregistrements en direct dans VOD.
Gérer les enregistrements
Vous pouvez consulter les enregistrements stockés dans ApsaraVideo VOD depuis la console ApsaraVideo Live et les gérer à l'aide du service ApsaraVideo VOD.
Connectez-vous à la console ApsaraVideo Live.
Dans le volet de navigation de gauche, sélectionnez Feature Management > Recording. Cliquez sur l'onglet Recording Management.
Sélectionnez le domaine de streaming configuré.
-
Cliquez sur l'onglet VOD.
Vous pouvez filtrer les enregistrements par plage de dates,
AppNameetStreamName. Pour afficher et gérer des fichiers d'enregistrement spécifiques, vous pouvez cliquer sur Manage in the VOD Console dans la colonne Actions, ou vous connecter à la console ApsaraVideo VOD et sélectionner Media Library > Audio/Video.
Stocker les enregistrements dans OSS
Prérequis
Activez le service OSS et créez un bucket de stockage. Le bucket OSS doit se trouver dans la même région que le centre en direct du domaine que vous souhaitez configurer.
Configurez les autorisations permettant à ApsaraVideo Live d'écrire dans OSS. Cela est généralement autorisé automatiquement lorsque vous activez le service. Si vous supprimez accidentellement l'autorisation, vous pouvez cliquer sur Autoriser l'accès aux ressources cloud pour l'accorder à nouveau.
Nous vous recommandons d'utiliser un compte Alibaba Cloud pour effectuer l'autorisation. Si vous utilisez un utilisateur RAM, celui-ci doit disposer des autorisations suivantes : ram:CreateRole, ram:GetRole, ram:ListPoliciesForRole et ram:AttachPolicyToRole. L'octroi de ces autorisations à un utilisateur RAM pose des risques de sécurité et n'est pas recommandé.
Configuration
ApsaraVideo Live utilise des modèles d'enregistrement pour gérer les configurations d'enregistrement. Vous pouvez créer un modèle d'enregistrement pour stocker les enregistrements dans OSS à l'aide de la console ou d'une API.
Après avoir configuré le modèle, vous devez redémarrer le flux d'ingestion pour que les modifications prennent effet. Pour garantir qu'un flux soit enregistré dès le début, créez le modèle avant le démarrage du flux.
Méthode 1 : Console
Connectez-vous à la console ApsaraVideo Live.
Dans le volet de navigation de gauche, sélectionnez Feature Management > Recording. Sous l'onglet Recording Configuration, sélectionnez OSS.
Sélectionnez le domaine de streaming à configurer, puis cliquez sur Add.
-
Configurez le modèle d'enregistrement. Vous pouvez choisir d'enregistrer le flux source, un flux transcodé ou les deux.
Paramètres d'enregistrement de base
Paramètre
Description
Application Name
Le nom de l'application. Il doit correspondre à l'AppName dans l'URL de push pour que le paramètre prenne effet. Si vous souhaitez que le paramètre s'applique à toutes les applications sous le domaine, saisissez
*.Stream Name
Nom du flux. Vous pouvez spécifier un nom de flux exact pour enregistrer un flux spécifique. Pour enregistrer tous les flux en direct sous l'AppName actuel, saisissez
*.Storage Location
Vous pouvez sélectionner un bucket créé dans OSS dans la région actuelle.
RemarqueIl existe deux types de buckets de stockage :
Bucket standard : Utilisé pour le stockage général de fichiers.
Bucket multimédia : Dédié au transcodage vidéo. Les fichiers stockés dans ce type de bucket peuvent déclencher automatiquement des travaux de transcodage ApsaraVideo Media Processing (MPS).
Le système ne marque pas actuellement les types de bucket. Si vous devez effectuer un transcodage vidéo, veuillez noter le nom du bucket multimédia pour garantir que les fichiers transcodés soient stockés correctement.
Interruption Duration Threshold
Si une interruption de flux en direct est inférieure à cette durée, l'enregistrement reprend dans le même fichier. Des interruptions plus longues entraînent la création d'un nouveau fichier. Par défaut : 180 secondes. Plage : 15 à 21 600 secondes.
Trigger Mode
Vous pouvez déclencher les enregistrements des manières suivantes : Automatic, Callback Confirmation, Ingest Parameter Trigger et Manual.
Pour plus d'informations, consultez Méthodes de déclenchement de l'enregistrement.
Enregistrer le flux source
Paramètre
Description
Storage Format
Prend en charge les formats M3U8, FLV, MP4 et CMAF. Vous pouvez sélectionner plusieurs formats, mais vous ne pouvez pas sélectionner M3U8 et CMAF simultanément.
Naming Conventions
La convention de nommage pour les fichiers enregistrés. Chemins par défaut :
M3U8, FLV, MP4 :
record/{AppName}/{StreamName}/{EscapedStartTime}_{EscapedEndTime}TS, fMP4 :
record/{AppName}/{StreamName}/{UnixTimestamp}_{Sequence}Segment Length
La durée d'un seul segment TS. Ceci n'est affiché que lorsque vous sélectionnez le format M3U8 ou CMAF.
Par défaut : 30 secondes. Plage : 5 à 30 secondes.
Recording Cycle
La durée maximale d'un seul fichier d'enregistrement. Si la durée du flux en direct dépasse ce seuil, le système génère un nouveau fichier. Par défaut : 180 minutes. Plage : 15 à 360 minutes.
Enregistrer le flux transcodé
Paramètre
Description
Transcoded Streams
Sélectionnez les flux transcodés à enregistrer. Vous pouvez spécifier jusqu'à 10 modèles de transcodage ou tous les sélectionner.
Pour que l'enregistrement du flux transcodé fonctionne, l'AppName du modèle de transcodage doit être
*ou correspondre à celui du modèle d'enregistrement.Storage Format
Prend en charge les formats M3U8, FLV, MP4 et CMAF. Vous pouvez sélectionner plusieurs formats, mais vous ne pouvez pas sélectionner M3U8 et CMAF simultanément.
Naming Conventions
La convention de nommage pour les fichiers enregistrés. Chemins par défaut :
M3U8, FLV, MP4 :
transcodeRecord/{AppName}/{StreamName}_{TranscodingTemplateID}/{EscapedStartTime}_{EscapedEndTime}TS, fMP4 :
transcodeRecord/{AppName}/{StreamName}_{TranscodeTemplateID}/{UnixTimestamp}_{Sequence}Segment Length
La durée d'un seul segment TS. Ceci n'est affiché que lorsque vous sélectionnez le format M3U8 ou CMAF.
Par défaut : 30 secondes. Plage : 5 à 30 secondes.
Recording Cycle
La durée maximale d'un seul fichier d'enregistrement. Si la durée du flux en direct dépasse ce seuil, le système génère un nouveau fichier. Par défaut : 180 minutes. Plage : 15 à 360 minutes.
Cliquez sur OK pour créer le modèle d'enregistrement.
Méthode 2 : API
Appelez l'API AddLiveAppRecordConfig pour ajouter une configuration permettant de stocker les enregistrements dans OSS. Exemple de code :
// Parameter settings for API request
AddLiveAppRecordConfigRequest.TranscodeRecordFormat transcodeRecordFormat0 = AddLiveAppRecordConfigRequest.TranscodeRecordFormat.builder()
.sliceDuration(30)
.sliceOssObjectPrefix("transcodeRecord/{AppName}/{StreamName}_{TranscodeTemplateID}/{UnixTimestamp}_{Sequence}")
.ossObjectPrefix("transcodeRecord/{AppName}/{StreamName}_{TranscodeTemplateID}/{EscapedStartTime}_{EscapedEndTime}")
.cycleDuration(900)
.format("m3u8")
.build();
AddLiveAppRecordConfigRequest.RecordFormat recordFormat0 = AddLiveAppRecordConfigRequest.RecordFormat.builder()
.sliceDuration(30)
.format("m3u8")
.cycleDuration(900)
.sliceOssObjectPrefix("record/{AppName}/{StreamName}/{UnixTimestamp}_{Sequence}")
.ossObjectPrefix("record/{AppName}/{StreamName}/{Sequence}_{EscapedStartTime}_{EscapedEndTime}")
.build();
AddLiveAppRecordConfigRequest addLiveAppRecordConfigRequest = AddLiveAppRecordConfigRequest.builder()
.domainName("<Your DomainName>")
.appName("live")
.ossEndpoint("<Your OssEndpoint>")
.ossBucket("<Your OssBucket>")
.streamName("stream1")
.onDemand(0)
.delayTime(180)
.recordFormat(java.util.Arrays.asList(recordFormat0))
.transcodeRecordFormat(java.util.Arrays.asList(transcodeRecordFormat0))
.transcodeTemplates(java.util.Arrays.asList("sd"))
// Request-level configuration rewrite, can set Http request parameters, etc.
// .requestConfiguration(RequestConfiguration.create().setHttpHeaders(new HttpHeaders()))
.build();
Paramètres clés
-
OnDemandLa méthode de déclenchement de l'enregistrement. Valeurs valides : 0 (enregistrement automatique), 1 (enregistrement à la demande), 2 (paramètres d'ingestion), 7 (enregistrement manuel). Pour plus de détails, consultez Méthodes de déclenchement de l'enregistrement.
-
DelayTimeLa durée de collage pour les flux interrompus, en secondes. Si une interruption de flux en direct est inférieure à cette durée, l'enregistrement reprend dans le même fichier. Des interruptions plus longues entraînent la création d'un nouveau fichier.
-
RecordFormatLe format de stockage et les paramètres d'enregistrement pour le flux source, y compris
Format(format de stockage),OssObjectPrefix(convention de nommage),SliceDuration(durée du segment) etCycleDuration(cycle d'enregistrement). -
TranscodeTemplates,TranscodeRecordFormatLors de l'enregistrement d'un flux transcodé, spécifiez la liste des ID de modèles de transcodage ainsi que le format de stockage et les paramètres d'enregistrement pour le flux transcodé.
Pour une description complète des paramètres, consultez AddLiveAppRecordConfig - Ajouter une configuration d'enregistrement.
Gérer les enregistrements
Afficher les enregistrements
Vous pouvez afficher les enregistrements stockés dans OSS de trois manières :
Méthode 1 : Console
Connectez-vous à la console ApsaraVideo Live.
Dans le volet de navigation de gauche, sélectionnez Feature Management > Recording. Cliquez sur l'onglet Recording Management.
Sélectionnez le domaine de streaming configuré.
-
Cliquez sur l'onglet OSS.
Vous pouvez filtrer les enregistrements par plage de dates,
AppNameetStreamName.
Méthode 2 : API
ApsaraVideo Live fournit une API pour interroger tous les fichiers d'index d'enregistrement sur une période donnée. ApsaraVideo Live ne conserve les informations des fichiers d'index que pendant six mois, limitant ainsi les requêtes aux données de cette période. Pour plus de détails sur l'appel d'API et la configuration des paramètres, consultez DescribeLiveStreamRecordIndexFiles - Interroger tous les fichiers d'index d'enregistrement sur une période.
Méthode 3 : OSS
Lorsque vous avez configuré la fonctionnalité d'enregistrement, vous avez spécifié l'emplacement de stockage des fichiers d'enregistrement dans OSS. Pour afficher les fichiers dans OSS, consultez Lister les objets.
Fusionner et extraire du contenu
Lors du stockage des enregistrements dans OSS, vous pouvez créer un nouveau fichier d'index pour soit extraire un clip d'une période spécifique, soit fusionner plusieurs fichiers d'enregistrement en un seul.
Le contenu enregistré doit inclure le format de stockage M3U8 pour pouvoir être fusionné ou extrait.
Méthode 1 : Console
Connectez-vous à la console ApsaraVideo Live.
Dans le volet de navigation de gauche, sélectionnez Feature Management > Recording. Sélectionnez l'onglet Recording Management.
Sélectionnez le domaine de streaming configuré.
Sélectionnez l'onglet OSS.
Cliquez sur Edit Index File. Filtrez les fichiers d'enregistrement par domaine de streaming, AppName, StreamName et plage horaire.
Vous pouvez afficher les périodes contenant du contenu enregistré dans la chronologie. Définissez les heures de début et de fin, puis cliquez sur Save As pour sauvegarder le nouveau fichier M3U8 généré.
Méthode 2 : API
ApsaraVideo Live fournit une API pour créer un nouveau fichier d'index. Les informations sur les segments TS ne sont conservées dans le système ApsaraVideo Live que pendant trois mois ; vous ne pouvez donc sélectionner que du contenu enregistré au cours des trois derniers mois.
Pour plus de détails sur l'appel d'API et la configuration des paramètres, consultez CreateLiveStreamRecordIndexFiles - Créer des fichiers d'index d'enregistrement.
Supprimer les enregistrements
ApsaraVideo Live stocke les informations d'enregistrement, telles que l'AppName, le StreamName et le chemin de stockage du fichier OSS. Les fichiers d'enregistrement réels sont stockés dans OSS.
Pour supprimer les fichiers dans OSS en même temps que vous supprimez les informations d'enregistrement dans ApsaraVideo Live, vous devez créer le rôle de service AliyunMTSVideoLifecycleRole et lui accorder la politique système AliyunMTSVideoLifecycleRolePolicy. Vous pouvez cliquer pour autoriser pour une autorisation en un clic.
Vous pouvez supprimer les fichiers d'enregistrement en utilisant les méthodes suivantes :
Console Live : Sous l'onglet Recording Management, sélectionnez le fichier et supprimez-le. Cochez Also delete the recording file stored in OSS pour supprimer également le fichier OSS.
API : Appelez l'interface DeleteLiveStreamRecordIndexFiles - Supprimer les fichiers d'enregistrement de flux en direct.
Suppression directe dans OSS : En général, nous ne recommandons pas de supprimer directement les fichiers d'enregistrement depuis OSS. Si votre activité l'exige, consultez la documentation OSS sur la suppression d'objets.
Suppression automatique à l'expiration : Pour activer cette fonctionnalité, soumettez un ticket afin que la durée d'expiration soit configurée.
Configurer un domaine CDN
Pour accélérer la distribution de vos vidéos enregistrées, configurez un domaine CDN. Le CDN distribue les vidéos vers divers nœuds, permettant aux utilisateurs d'accéder au contenu depuis le nœud le plus proche plutôt que depuis l'origine OSS. Cela améliore la vitesse d'accès et réduit les coûts réseau. Pour les opérations spécifiques, consultez Accélérer l'accès à OSS en utilisant Alibaba Cloud CDN.
Politique de priorité des modèles
Si vous configurez plusieurs modèles d'enregistrement et qu'un flux en direct correspond à plus d'un modèle, le système applique celui ayant la priorité la plus élevée. Un numéro plus bas indique une priorité plus haute.
|**Priorité**
|
**DomainName**
|
**AppName**
|
**StreamName**
| | --- | --- | --- | --- | |
1
|
Spécifié
|
Spécifié
|
Spécifié
| |
2
|
Spécifié
|
Spécifié
|
*
| |
3
|
Spécifié
|
*
|
*
|
(« Spécifié » indique que le paramètre correspondant a une valeur et que cette valeur n'est pas *)
Facturation
L'utilisation de la fonctionnalité d'enregistrement de flux en direct peut entraîner les frais suivants :
-
Frais mensuels du service d'enregistrement
Après l'activation de l'enregistrement de flux en direct, vous êtes facturé en fonction du nombre maximal de canaux d'enregistrement concurrents par mois. Pour plus de détails, consultez Frais d'enregistrement de flux en direct.
-
Frais de conversion de format conteneur d'enregistrement
Lorsque vous sélectionnez des formats non par défaut tels que FLV, MP4 ou CMAF, vous êtes facturé en fonction de la durée. Ces frais sont perçus par le service ApsaraVideo Live. Pour plus de détails, consultez Frais d'enregistrement de flux en direct.
-
Frais de traitement des vidéos enregistrées
Lors du stockage dans ApsaraVideo VOD, le traitement des vidéos enregistrées via la fusion automatique ou le transcodage entraîne des frais de traitement vidéo, facturés par le service ApsaraVideo VOD. Pour plus de détails, consultez Facturation de l'édition et de la production et Facturation du transcodage multimédia.
-
Frais de stockage
Le stockage des fichiers enregistrés dans ApsaraVideo VOD entraîne des frais de stockage, facturés par le service ApsaraVideo VOD. Pour plus de détails, consultez Facturation du stockage multimédia.
Le stockage des fichiers enregistrés dans OSS entraîne des frais de stockage, facturés par le service OSS. Pour plus de détails, consultez Frais de stockage.
-
Arrêt de la facturation
L'enregistrement de flux en direct est facturé en fonction de votre configuration. Pour cesser d'encourir des frais d'enregistrement, connectez-vous à la console ApsaraVideo Live, accédez à Feature Management > Recording, et supprimez le modèle d'enregistrement ou désactivez l'enregistrement pour le domaine. Si vous arrêtez simplement la diffusion du flux sans supprimer le modèle d'enregistrement, de faibles frais de service peuvent toujours être encourus.
FAQ
Génération et disponibilité des enregistrements
Mécanisme de génération
Le fichier d'enregistrement n'est pas généré immédiatement après la déconnexion d'un flux. Le système attend la durée de collage pour les flux interrompus (180 secondes par défaut). Si le flux reprend dans cette période, l'enregistrement est ajouté au fichier existant. S'il ne reprend pas, le système considère que le flux est terminé et génère le fichier d'enregistrement.
Vous pouvez ajuster cette durée selon vos besoins, mais nous vous recommandons de conserver le paramètre par défaut. Une durée plus courte peut entraîner la création de nombreux petits fichiers en raison des fluctuations du réseau, tandis qu'une durée plus longue signifie une attente plus importante pour le fichier après la fin du flux.
Génération immédiate
Pour générer le fichier d'enregistrement immédiatement après la fin d'un flux, sans délai de collage, configurez un callback d'événement pour le flux d'ingestion (voir Callbacks d'événement). Lorsque vous recevez la notification de déconnexion du flux, appelez l'API RealTimeRecordCommand pour annuler le délai de collage.
realTimeRecordCommandRequest.setCommand("cancel_delay");
Affichage des enregistrements en cours
Si la durée d'un flux n'a pas dépassé le cycle d'enregistrement, le fichier est généralement généré après la fin du flux. Pour accéder au fichier d'enregistrement actuel avant la fin du flux, appelez l'API RealTimeRecordCommand pour actualiser l'enregistrement. Cette commande termine de force le processus d'enregistrement en cours, génère le fichier immédiatement, puis démarre automatiquement un nouvel enregistrement.
realTimeRecordCommandRequest.setCommand("restart");
Si l'enregistrement de votre flux est configuré avec plusieurs formats de stockage, cette opération actualisera tous les formats.
Impact des anomalies de flux sur l'enregistrement
Le système gère les anomalies de flux différemment selon leur gravité :
Flux standard (respecte les exigences d'encodage avec un débit d'images et une horodatage stables) : Les enregistrements sont générés avec succès à 100 %.
Flux avec des problèmes mineurs (fluctuations occasionnelles du débit d'images ou sauts d'horodatage) : Le système gère automatiquement ces problèmes pour assurer la compatibilité.
Flux avec des problèmes graves (absence prolongée d'images vidéo, horodatages désordonnés ou images clés manquantes) : La réussite de l'enregistrement ne peut pas être garantie.
Dépannage des problèmes de fichiers d'enregistrement
Si les fichiers d'enregistrement ne sont pas générés ou contiennent un contenu inattendu, vérifiez les points suivants :
La configuration d'enregistrement ne prend pas effet — Les modèles d'enregistrement s'appliquent uniquement aux nouveaux flux poussés après la finalisation de la configuration. Si un flux était déjà en cours de diffusion lors de la création du modèle, vous devez déconnecter et repousser le flux pour que le modèle prenne effet.
Le flux transcodé n'est pas enregistré — Vérifiez que la méthode de déclenchement du transcodage est définie sur « push-triggered ». Si la méthode de déclenchement est définie sur « pull-triggered », le flux transcodé n'est généré que lorsqu'un spectateur extrait activement le flux. Sans extraction active, le flux transcodé n'existe pas et ne peut donc pas être enregistré.
Segments dupliqués lors de la lecture — Cela se produit généralement lorsqu'un flux se déconnecte et se reconnecte dans la durée de collage. Les segments chevauchants sont tous deux inclus dans l'enregistrement. Un montage en post-production est nécessaire pour supprimer les parties dupliquées.
Écran noir avec audio à haute résolution — Vérifiez les éléments suivants côté diffusion : si la source de partage d'écran est capturée correctement, si les paramètres de l'encodeur correspondent à la résolution cible et si le lecteur prend en charge le format d'encodage. Ce problème est généralement dû à la configuration côté diffusion plutôt qu'au service d'enregistrement.
Aucun enregistrement de callback OSS — Vérifiez que la destination de stockage est définie sur OSS. ApsaraVideo VOD utilise des événements de callback différents de ceux d'OSS. Si l'enregistrement est stocké dans ApsaraVideo VOD, vérifiez les événements de callback d'ApsaraVideo VOD à la place.
Le nom du fichier d'enregistrement ne correspond pas aux attentes — Lors du stockage des enregistrements dans ApsaraVideo VOD, le nom du fichier d'enregistrement correspond par défaut au
StreamNameet ne prend pas en charge la personnalisation. Si vous avez besoin de noms de fichiers personnalisés, utilisez le stockage OSS et configurez la convention de nommage dans le modèle d'enregistrement.
Comment obtenir le VideoId d'un fichier d'enregistrement stocké dans ApsaraVideo VOD, et quelles sont les limitations d'authentification des callbacks ?
Obtention du VideoId : Le callback d'enregistrement de flux en direct n'inclut pas le VideoId. Pour obtenir le VideoId, configurez une notification de callback d'événement côté ApsaraVideo VOD. Le callback VOD inclut des informations complètes sur les actifs multimédias, y compris le VideoId. Si vous avez déjà configuré un callback d'événement VOD, vous n'avez pas besoin de configurer également un callback d'enregistrement de flux en direct.
Limitation d'authentification des callbacks : L'authentification du callback de fin d'enregistrement (qui repose sur les paramètres
ALI-LIVE-TIMESTAMPetALI-LIVE-SIGNATURE) n'est actuellement pas prise en charge lorsque l'enregistrement est stocké dans ApsaraVideo VOD. Si la console indique que le commutateur d'authentification est indisponible ou ne parvient pas à l'enregistrer, il s'agit d'une limitation connue ou d'un problème d'affichage, et le callback côté VOD doit être considéré comme faisant autorité.