Archivage

La fonctionnalité d'archivage de la Video API Vonage vous permet d'enregistrer, de sauvegarder et de récupérer des sessions.

Cette rubrique comprend les sections suivantes :

Flux de travail de base

Important : Vous ne pouvez archiver que les sessions qui utilisent OpenTok Media Router (les sessions avec le mode média sur routé).

Vous pouvez créer une archive d'une session OpenTok à l'aide de la API REST d'OpenTok ou l'un des SDK pour serveurs OpenTok. Lorsque vous créez une archive, l'enregistrement démarre. Vous ne pouvez créer une archive que pour les sessions comptant au moins un client connecté. (Un client doit commencer à diffuser un flux dans la minute qui suit, sinon l'archivage s'arrête.)

Lorsque les clients commencent et arrêtent de publier des flux, ceux-ci sont enregistrés.

Important : Vous pouvez enregistrer jusqu'à 16 flux vidéo avec l'archivage groupé, ou 50 avec l'archivage individuel des flux. (Les archives groupées et individuelles peuvent inclure jusqu'à 50 flux audio.) Voir Archives individuelles de flux et composées. Une fois cette limite atteinte, si d'autres flux sont publiés dans la session, ils ne sont pas enregistrés. Le nombre maximal enregistré La durée d'une archive (soit la durée cumulée pendant laquelle les flux sont publiés au cours de la session) est de 4 heures (14 400 secondes). Voir Durée de conservation des archives pour plus de détails.

Il n'y a pas de limite au nombre d'archives que vous pouvez enregistrer. (Notez toutefois que sessions automatiquement archivées (Un nouvel enregistrement sera lancé toutes les 4 heures jusqu'à ce que l'enregistrement s'arrête.)

L'API REST OpenTok et les SDK serveur OpenTok proposent des méthodes permettant d'effectuer les opérations suivantes :

  • Démarrage d'un enregistrement d'archives
  • Arrêt d'un enregistrement d'archives
  • Archives des annonces
  • Récupération d'informations d'archives
  • Suppression d'une archive

Lorsque vous arrêtez l'enregistrement d'une archive, le serveur OpenTok crée un fichier MP4 ou (dans le cas d'archives de flux individuels) un fichier ZIP. (Voir Archives individuelles de flux et composées.)

Lorsqu'un enregistrement d'archive démarre ou s'arrête, des événements sont déclenchés dans les clients. Par exemple, la bibliothèque OpenTok.js inclut archiveStarted et archiveStopped envoyés par l'objet Session.

Durée de conservation des archives

Le maximum enregistré La durée d'une archive est de 4 heures (14 400 secondes). Cela enregistré durée désigne la durée cumulée pendant laquelle les flux sont diffusés (et enregistrés). Tant que les flux sont diffusés (et enregistrés), le statut de l'archive est défini sur "started". (Voir Changement de statut des archives).

Lorsqu'une archive est en cours d'enregistrement sans qu'aucun flux n'ait été publié, son statut est défini sur "paused".

Le maximum total La durée d'une archive, y compris les états « démarré » et « en pause », est de 12 heures (43 200 secondes). Les archives expirent automatiquement (et cessent l'enregistrement) après 1 heure (3 600 secondes) d'inactivité (lorsqu'aucun client ne diffuse de flux).

Notes :

  • Archivage automatique des sessions donner lieu à un ou plusieurs enregistrements consécutifs, d'une durée maximale de 4 heures chacun.
  • Les archives en cours se terminent pendant la rotation des serveurs (à l'exception des archives automatiques, qui redémarrent automatiquement lorsque la session migre pendant la rotation des serveurs). Vous pouvez redémarrer les archives en réponse aux événements de notification de la rotation des serveurs. Voir Rotation des serveurs et migration des sessions.

Stockage d'archives

Utilisez votre Video API Account pour spécifier la destination vers laquelle les fichiers d'archive finalisés doivent être transférés. Il peut s'agir de votre propre compartiment Amazon S3, d'un compartiment chez un fournisseur de stockage compatible S3 autre qu'Amazon, ou d'un conteneur Windows Azure. Pour les fournisseurs de stockage compatibles S3 autres qu’Amazon S3, nous prenons en charge Cloudian et Google Cloud Storage (accessibles via l’API AWS S3). D’autres services compatibles S3 peuvent présenter des limitations fonctionnelles. Voir Utilisation du stockage S3 avec l'archivage OpenTok et Utilisation d'un conteneur Windows Azure avec l'archivage OpenTok.

Une fois l'archivage terminé (le état des archives est fixé à "stopped"), nous tenterons de transférer le fichier d'archive vers la destination spécifiée (par exemple, un compartiment S3 ou un conteneur Azure) pendant une période pouvant aller jusqu'à 72 heures après la création de l'archive (ou au moins 6 heures si la solution de secours est activée), en effectuant plusieurs tentatives via une politique de planification des transferts distribuée.

Si le téléchargement vers la destination indiquée s'effectue correctement, l'état de l'archive est défini sur "uploaded".

Si le téléchargement vers la destination indiquée échoue (après plusieurs tentatives) et que le recours au stockage OpenTok est activé, nous rendons l'archive disponible au téléchargement depuis le cloud OpenTok, et le statut de l'archive est défini sur "available". Dès que le fichier est disponible au téléchargement depuis le cloud OpenTok, nous ne tenterons plus de le transférer vers la destination que vous avez indiquée. Les archives mises à disposition sur le cloud OpenTok restent accessibles pendant 72 heures à compter de leur création. Pour éviter le stockage de secours sur le cloud OpenTok, désactivez cette fonctionnalité pendant la S3 ou L'azur processus de configuration.

Si le téléchargement vers la destination spécifiée échoue (après plusieurs tentatives) et que le recours au stockage OpenTok est désactivé, le statut de l'archive est défini sur "failed".

Vous ne pouvez pas accéder à l'archive tant qu'elle n'a pas été téléchargée vers la destination que vous avez indiquée ou qu'elle n'est pas disponible sur l'espace de stockage OpenTok.

Pour les archives stockées dans le cloud OpenTok, l'URL de téléchargement est indiquée dans le url propriété de l'archive lorsque le statut de l'archive est défini sur "available". Chaque URL de téléchargement utilisée avec la solution de secours de stockage d'archives est une URL pré-signée qui utilise des informations d'identification de sécurité pour accorder une autorisation de téléchargement de l'archive limitée dans le temps. Au bout de 10 minutes, l'URL pré-signée expire et une nouvelle URL pré-signée doit être demandée via l'API REST ou une méthode serveur afin de récupérer l'URL de téléchargement. Pour des raisons de sécurité, l’URL de téléchargement n’est accessible qu’en effectuant des appels à l’API REST ou en utilisant les méthodes du SDK serveur pour recherche d'informations dans les archives ou archives des listes (qui nécessitent les informations d'identification de votre compte).

Archives audio et vidéo uniquement

Lorsque vous créez une archive à l'aide de la commande API REST d'OpenTok ou l'un des SDK pour serveurs OpenTok, vous pouvez choisir si l'archive enregistrera du son, de la vidéo ou les deux. (Par défaut, les deux sont enregistrés.)

Archives individuelles de flux et composées

Le fichier de sortie d'archivage peut être dans l'un des formats suivants :

  • Archives composées — L'archive est un fichier MP4 unique regroupant tous les flux. Il s'agit du paramètre par défaut. Il est également utilisé pour les sessions archivées automatiquement (voir Archivage automatique des sessions). Le fichier MP4 utilise le format vidéo H.264 et le format audio AAC (à 128 kbit/s et une fréquence d'échantillonnage de 48 kHz).

    Vous pouvez personnaliser la mise en page d'une archive composée, en ajustant la disposition visuelle des flux et en choisissant ceux qui s'affichent. Voir Personnalisation de la mise en page vidéo pour les composées.

    Par défaut, les archives composées ont une résolution de 640 x 480 pixels (SD en mode paysage). Pour configurer une archive composée afin qu'elle ait une résolution de 480 x 640 (SD portrait), 1 280 x 720 (HD paysage), 720 x 1 280 (HD portrait), 1 920 × 1 080 (FHD paysage) ou 1 080 × 1 920 (FHD portrait), définissez le resolution propriété à "480x640", "1280x720", "1920x1080", "720x1280"ou "1080x1920" lors de l'appel de la démarrer l'archive méthode de l'API REST OpenTok. Vous pouvez utiliser un format portrait lors de l'enregistrement d'archives contenant des flux vidéo provenant d'appareils mobiles (qui utilisent souvent le format portrait).

    Vous pouvez définir le débit binaire vidéo maximal d'une archive composée afin de contrôler la taille de celle-ci. Définissez l'option `maxBitrate` lors de l'appel de la fonction démarrer l'archive méthode. Spécifiez un débit, en bits par seconde, compris entre 100 000 et 6 000 000. Ce paramètre ne s'applique qu'à la méthode vidéo débit binaire de l'archive. Si l'archive de sortie contient de l'audio, ces bits seront exclus de la limite. Cette option n'est disponible que pour les archives composées (pas pour les archives de flux individuels). Lorsque vous définissez le débit maximum, l'archive utilise un débit constant.

    Vous pouvez définir le paramètre de quantification (QP) pour une archive composée, afin d'ajuster le compromis entre la qualité vidéo et la taille du fichier. Régler le paramètre de quantification (QP) quantizationParameter lors de l'appel de l'option démarrer l'archive méthode. Le réglage du paramètre de quantification permet à l'archive d'utiliser un débit variable et une quantification constante de la compression, ce qui permet d'obtenir un niveau de qualité constant lors des changements de scène. Les valeurs valides sont comprises entre 15 et 40, et 20 à 30 produisent des résultats raisonnables sans grande différence de qualité perceptive. Des valeurs QP plus faibles produisent une quantification plus fine de la compression vidéo, ce qui se traduit par une qualité vidéo accrue (en conservant plus de détails vidéo) et une taille de fichier plus importante. Des valeurs QP plus élevées produisent une quantification plus grossière de la compression vidéo, ce qui diminue la qualité vidéo et réduit la taille du fichier. Il n'est pas possible de définir à la fois l'option quantizationParameter propriété et le maxBitrate propriété — cela provoque une erreur. Remarque : À l'heure actuelle, le paramètre de quantification n'est disponible que dans l'API REST, et non dans les SDK serveur d'OpenTok.

    Par défaut, si vous ne définissez pas quantizationParameter ou maxBitrate lors de la création d'une archive composée, l'archive utilise un encodage à débit variable avec un paramètre de quantification qui garantit une haute qualité.

  • Archives de flux individuelles — L'archive est un fichier ZIP contenant plusieurs fichiers multimédias individuels pour chaque flux, ainsi qu'un fichier de métadonnées au format JSON destiné à la synchronisation vidéo. Vous pouvez spécifier ce format lorsque vous utilisez l'une des SDK pour serveurs OpenTok pour lancer l' archivage. Ce format n'est pas disponible pour les sessions archivées automatiquement (voir Archivage automatique des sessions).

Notes :

  • Dans une archive composite, si l'archivage est lancé et qu'aucune donnée n'est diffusée pendant toute la durée de l'archivage (aucun fichier audio ou vidéo n'est publié), la taille du fichier d'archive sera de 0 octet.
  • Dans une archive composite, la vidéo de chaque flux inclus peut démarrer avec un léger décalage par rapport à l'audio (l'écran restant noir jusqu'à ce que la vidéo commence).

Utilisation des archives de flux individuelles

Le mode d'archivage individuel des flux est destiné à être utilisé avec un outil de post-traitement, afin de produire du contenu personnalisé généré par votre application. Il existe certains éléments que les développeurs doivent prendre en compte lorsqu'ils choisissent d'utiliser cette fonctionnalité.

Conteneurs de flux individuels

Les fichiers multimédias d'archivage des flux individuels sont fournis sous forme d'archive ZIP contenant les fichiers correspondant à chaque flux audio-vidéo :

  • Chaque conteneur de flux présent dans l'archive correspond à un flux publié sur OpenTok. L'identifiant du flux de l'éditeur correspond au nom du fichier associé, et chaque identifiant de flux est déclaré dans le fichier manifeste des archives.

    Lorsqu'un flux est interrompu puis rétabli à la suite d'une reconnexion automatique, ou lorsqu'un flux est ajouté puis supprimé à plusieurs reprises dans un archive manuelle du mode flux, l'archive ZIP contiendra des fichiers distincts pour chacun des segments du flux.

  • Les conteneurs de flux sont soit de type .webmou .mkv, en fonction de la configuration de votre projet. Les archives des sessions utilisant VP8 ou VP9 comme codec vidéo préféré avoir webm les conteneurs, ainsi que les projets pour lesquels le codec vidéo H.264 est défini comme codec préféré, utilisent le mkv format. Voir aussi Notes sur l'archivage des vidéos VP9 pour plus d'informations sur la vidéo VP9 dans les archives de chaque flux.

  • Les conteneurs d'archives de flux individuels contiennent l'intégralité des données vidéo et audio reçues par le serveur d'archives. Ces données multimédias ne sont pas traitées ; par conséquent, dans la plupart des cas, le conteneur ne permet pas une lecture directe.

Le conteneur de flux est traité comme un flux de transport : tous les fichiers multimédias reçus par le serveur d’archivage sont directement enregistrés dans un fichier, sans inspection ni post-traitement. Cette conception a des implications pour la consommation en aval des conteneurs de flux. Dans la plupart des cas, la lecture directe d’un conteneur d’archive de flux individuel ne sera pas possible, ou posera des problèmes en raison du contenu du conteneur :

  • Les dimensions déclarées dans l'en-tête du flux sont rarement correctes. Actuellement, les en-têtes du conteneur indiquent une piste vidéo de 640 x 480 pixels, quelles que soient les dimensions des images vidéo encodées.
  • Les dimensions des images vidéo évoluent au fil du temps. Cela peut également inclure des changements de format d'image, notamment dans le cas des diffusions avec partage d'écran.
  • Les trames audio et vidéo peuvent ne pas être accompagnées d’horodatages monotones ; les fréquences d’images ne sont pas toujours constantes. Cela est particulièrement pertinent si la piste vidéo ou audio est désactivée pendant un certain temps, à l’aide de l’une des publishVideo ou publishAudio les propriétés de l'éditeur.

Les horodatages de présentation des trames (PTS) sont enregistrés à partir des horodatages NTP relevés au moment de la capture, corrigés en fonction de l’horodatage de la première trame reçue. Même si une piste est mise en sourdine puis réactivée, la correction de l’horodatage doit rester cohérente tout au long du flux. Lors du décodage en post-traitement, un écart entre les PTS de trames consécutives existera pendant toute la durée de la mise en sourdine de la piste : il n'y a pas de trames « silencieuses » dans le conteneur.

Pour générer du contenu visionnable à partir de fichiers d'archivage de flux individuels, vous devez faire passer les médias par un post-processeur afin de réparer les conteneurs de flux individuels ou de multiplexer/composer plusieurs conteneurs pour obtenir un produit final. Vous trouverez des conseils pour vous lancer dans le traitement en aval dans notre dépôt GitHub « archiving-composer » : https://github.com/opentok/archiving-composer.

Manifeste d'archivage d'un flux individuel

Les archives de flux individuelles comprennent un fichier de métadonnées JSON, qui fournit des informations sur les enregistrements de flux inclus dans l'archive. Ce fichier a le format suivant :

{
  "createdAt" : 1429305105162,
  "files" : [
    {
      "connectionData" : "connection data for this stream's connection",
      "filename" : "a1475893-99f5-4f02-b697-5d69e8e30d19.webm",
      "size" : 5558064,
      "startTimeOffset" : 3119,
      "stopTimeOffset" : 48765,
      "streamId" : "a1475893-99f5-4f02-b697-5d69e8e30d19",
      "videoType": "camera"
    },
    {
      "connectionData" : "connection data for this stream's connection",
      "filename" : "5ab71b7b-d998-4683-ad2b-7769d6533666.webm",
      "size" : 5396527,
      "startTimeOffset" : 2799,
      "stopTimeOffset" : 48764,
      "streamId" : "5ab71b7b-d998-4683-ad2b-7769d6533666",
      "videoType": "screen"
    }
  ],
  "id" : "297b9c62-78b3-4152-9e98-7e167354c9e6",
  "name" : "archive name",
  "partnerId" : 123456,
  "sessionId" : "2_MX4xMDB-fjE0MjkzMDQ3NzY3NTZ-WUpRUGVFUmhFSkRmVGljeU5zVnJpaXYxfn4"
}

Ce fichier JSON contient les propriétés suivantes :

  • id — L'identifiant unique de cette archive.

  • partnerId — L'identifiant du partenaire ou du projet associé à cette archive

  • sessionId — L'identifiant de session de cette archive

  • nom — Le nom de cette archive. Ce champ est vide si le nom n'a pas été spécifié dans l'appel à démarrer l'archive.

  • createdAt — Heure Unix, exprimée en millisecondes, correspondant au moment où l' archivage a commencé.

  • fichiers — Un tableau contenant les fichiers inclus dans l'archive ZIP. Chaque fichier possède les propriétés suivantes :

    • streamId — L'identifiant du flux correspondant au flux enregistré dans ce fichier.

      Lorsqu'un flux est interrompu puis rétabli à la suite d'une reconnexion automatique, ou lorsqu'un flux est ajouté puis supprimé à plusieurs reprises dans un archive manuelle du mode flux, l'archive de chaque flux comprendra des fichiers distincts pour chacun des segments de ce flux.

    • nom_fichier — Le nom du fichier multimédia enregistré. Il s'agira d'un .webm pour consulter l'archive d'une session dans un projet OpenTok qui utilise VP8 comme codec vidéo préféré, et ce sera un .mkv pour consulter l'archive d'une session d'un projet utilisant le H.264 comme codec vidéo par défaut.

      Si un flux est interrompu puis rétabli à la suite d'une reconnexion automatique, ou lorsqu'un flux est ajouté puis supprimé à plusieurs reprises dans un archive manuelle du mode flux, plusieurs fichiers peuvent exister pour un même flux (correspondant à chaque segment), et le nom de fichier de chaque segment du flux sera complété par un numéro d'index (tel que « _1 » ou « _2 ») après l'identifiant du flux afin d'identifier l'ordre du segment.

    • startTimeOffset — Le décalage, en millisecondes, correspondant au moment où l'enregistrement de ce fichier a commencé (à partir de l'heure « createdAt » de l' archive) — voir la remarque importante ci-dessous.

    • stopTimeOffset — Le décalage, en millisecondes, correspondant au moment où l'enregistrement de ce fichier s'est arrêté (par rapport à l'heure « createdAt » de l' archive) — voir la remarque importante ci-dessous.

    • connectionData — Le données de connexion pour le client du secteur de l'édition.

    • videoType — Soit "camera", "screen"ou "custom". A "screen" La vidéo utilise le partage d'écran sur l'éditeur comme source vidéo ; une vidéo « personnalisée » est publiée par un client Web à l'aide d'un élément HTML VideoTrack comme source vidéo. Pour un flux publié à partir d’un appareil mobile, le type d’écran peut passer d’une caméra à un type de vidéo par partage d’écran. Cependant, la propriété dans le manifeste d’archivage n’indique que le type de vidéo initial.

Important : Dans un archive d'une diffusion individuelleSi, pendant une courte période, aucun flux n'est publié au cours de l'enregistrement, le système de gestion des flux de l'UE est mis à jour. startTimeOffset Les valeurs « stopTimeOffset » peuvent présenter un léger écart. Il s'agit d'un problème connu.

Post-traitement des archives individuelles

Un exemple d'application de post-traitement est disponible à l'adresse suivante : https://github.com/opentok/archiving-composer.

Sélection des flux à inclure dans une archive

Lorsque vous démarrez une archive, si vous avez défini l'option streamMode à "manual", vous pouvez choisir les flux à inclure dans l'archive. Vous pouvez ajouter ou supprimer des flux pendant l'enregistrement de l'archive. Vous pouvez également préciser si l'archive doit inclure la piste audio ou vidéo d'un flux (ou les deux). Sinon, avec le streamMode fixé à "auto" (par défaut), tous les flux sont inclus (audio et vidéo) dans l'archive. Voir Démarrage d'un enregistrement d'archives et Sélection des flux à inclure dans une archive. Toutefois, dans une archive créée, le nombre de flux vidéo et audio inclus simultanément est limité à 16 et 50 respectivement (tant en mode automatique qu’en mode manuel), et les flux sont inclus en fonction de règles de hiérarchisation des cours d'eau. Pour les archives en mode flux manuel, les mises à jour du flux sont envoyées sous la forme de Changement de statut des archives.

Archivage automatique des sessions

Vous pouvez également configurer l'archivage automatique d'une session. Vous pouvez définir cette option lors de la création de la session, à l'aide de l'API REST OpenTok ou de l'un des SDK serveur OpenTok :

L'archivage d'une session archivée automatiquement commence dès qu'un client se connecte à la session.

La méthode de l'API REST permettant de créer une session permet de définir le nom et la résolution de l'archive lors de la création d'une session archivée automatiquement.

Remarque : Si l'archivage est lancé et qu'aucune donnée n'est diffusée pendant la durée de l'archivage (aucun contenu audio ou vidéo n'est publié), la taille du fichier d'archivage sera de 0 octets.

Les sessions archivées automatiquement comprennent à la fois l'audio et la vidéo, et enregistrent tous les flux dans un même fichier MP4 (composé). Toutefois, si l'enregistrement dure plus de 4 heures (14 400 secondes), la session est enregistrée dans plusieurs fichiers MP4 consécutifs, d'une durée maximale de 4 heures chacun, jusqu'à ce que l'archivage soit interrompu. Les archivages automatiques consécutifs d'une même session se chevauchent légèrement, afin qu'aucune donnée enregistrée ne soit perdue.

Vous pouvez appeler la méthode REST OpenTok pour archives des listes et transmettre le sessionID paramètre de requête permettant d'afficher les archives correspondant à un identifiant de session donné. Vous pouvez ensuite déterminer l'ordre des différents fichiers MP4 en consultant le createdAt propriété de chaque archive répertoriée dans les données JSON renvoyées par l'appel de la méthode REST.

Il n'est pas possible d'interrompre un enregistrement automatique à l'aide de l'API REST OpenTok ou des SDK serveur. Les enregistrements automatiques s'arrêtent 60 secondes après la déconnexion du dernier client de la session ou 60 minutes après que le dernier client a cessé de diffuser un flux vers la session.

Important :

  • Si vous prévoyez de longues périodes pendant lesquelles l'archivage sera suspendu, vous devriez envisager de démarrer et d'arrêter les archivages à l'aide des méthodes décrites dans le API REST d'OpenTok ou l'un des SDK pour serveurs OpenTok (au lieu que la session soit archivée automatiquement).
  • Vous devez absolument éviter de réutiliser les identifiants de session si vous utilisez l'archivage automatique. La réutilisation d'un identifiant de session peut entraîner l'échec de l'archivage automatique si un précédent archivage automatique de la session a expiré.
  • N'utilisez pas les archives automatiques pour les sessions de courte durée, telles que celles utilisées pour les appels préalables ou les tests de connectivité. En effet, les archives automatiques s'arrêtent 60 secondes après que le dernier client s'est déconnecté de la session ou 60 minutes après que le dernier client a cessé de publier un flux dans la session (si le client reste connecté après la publication).

Remarque : Si vous souhaitez assembler de manière fluide deux enregistrements consécutifs en faisant se chevaucher légèrement la fin du premier fichier et le début du second, vous pouvez utiliser notre outil de post-traitement permettant de fusionner des fichiers, dont le fonctionnement est expliqué ci-dessous.

Post-traitement des archives composées

Les enregistrements vidéo d'archives constituent une archive durée jusqu'à 4 heures et 14 400 secondes. Par conséquent, une session vidéo plus longue ne sera pas enregistrée dans un seul fichier d'archive. Pour éviter de perdre une partie de la session, utilisez la fonction Archivage automatique des sessions qui permet de générer plusieurs fichiers pour couvrir l'ensemble de la session. Il est également possible d'utiliser la fonction Archives simultanées pour commencer un deuxième enregistrement avant de terminer le précédent. Dans les deux cas, ces archives sont générées avec un court chevauchement entre la fin d'un fichier et le début du suivant.

Si vous préférez avoir un seul fichier contenant l'ensemble de la session, vous pouvez utiliser l'option Post-traitement des archives composées qui fusionne des enregistrements consécutifs qui se chevauchent et tente de rendre la transition aussi fluide que possible. Vous pouvez utiliser cet outil pour générer un fichier unique mais plus long qui contient des médias provenant de plusieurs fichiers d'archive plus courts. Pour plus de détails, voir le guide du développeur Post-traitement des archives composées. L'outil est disponible à l'adresse suivante https://github.com/Vonage/archive-post-processing.

Vous pouvez également utiliser cet outil avec des enregistrements vidéo qui ne sont pas créés en tant qu'archives vidéo Vonage, à condition qu'il y ait un certain chevauchement des médias et que les enregistrements vidéo remplissent une série de caractéristiques, telles que l'utilisation des codecs H264 et AAC LC pour la vidéo et l'audio.

Archives simultanées

Pour enregistrer simultanément plusieurs archives pour la même session, réglez le paramètre multiArchiveTag option lorsque au début de chaque archive. Vous devez définir ici une chaîne de caractères unique pour chaque archivage simultané d'une session en cours.

Vous pouvez utiliser différentes présentations et attribuer différents flux à chaque enregistrement d'archive simultané.

En sessions automatiquement archivées, fixer le multiArchiveTag option permettant de Créer une nouvelle archive simultanée qui est enregistré simultanément avec l'archivage automatique. L'archivage automatique démarre et s'arrête lorsque la session commence et se termine de manière automatique (conformément aux règles d'archivage automatique), tandis que l'archivage lancé manuellement s'arrête séparément.

Changement de statut des archives

Vous pouvez enregistrer une URL de rappel pour recevoir une notification lorsque l'état d'une archive change. Le statut d'une archive est défini comme suit :

  • "started" — L'archivage a commencé et l'enregistrement est en cours.

  • "paused" — Lorsqu'un enregistrement est mis en pause, rien n'est enregistré. L'enregistrement est mis en pause si l'une des conditions suivantes se produit :

    • Aucun client ne publie de flux vers la session. Dans ce cas, le délai d'expiration est de 60 minutes ; passé ce délai, l'archivage s'arrête et l'état de l'archivage passe à "stopped".
    • Tous les clients se déconnectent de la session. Au bout de 60 secondes, l'archivage s'arrête et l'état de l'archivage passe à "stopped".

    Si un client reprend la publication alors que l'archive se trouve dans le "paused" état, l'enregistrement d'archive reprend et l'état revient à "started".

  • "stopped" — L'archive a cessé d'enregistrer.

  • "uploaded" — L'archive est disponible au téléchargement à partir de la destination de téléchargement que vous avez indiquée lors de votre Video API Account. Notez que pour les archives de très petite taille, le "uploaded" peut se produire avant que le "stopped" événement d'état. Si vous avez le repli du stockage d'archives Si cette option est activée, en cas de basculement, nous stockerons l'archive dans le cloud OpenTok (et le statut sera "available").

  • "available" — L'archive peut être téléchargée depuis le cloud OpenTok.

  • "expired" — L'archive n'est plus disponible au téléchargement depuis le cloud OpenTok. (Les archives stockées sur le cloud OpenTok ne sont disponibles que pendant 72 heures à compter de leur création.)

  • "failed" — L'enregistrement de l'archive a échoué (ou le téléchargement du fichier d'archive a échoué et le stockage de secours sur le cloud OpenTok est désactivé).

  • "streamAdded" — Un flux a été ajouté aux archives. Cela concerne mode manuel archives uniquement.

  • "streamRemoved" — Un flux a été supprimé des archives. Cela concerne mode manuel archives uniquement.

Utilisez votre Video API Account pour indiquer une URL de rappel.

Sécuriser les rappels : Vous pouvez sécuriser les requêtes de rappel Webhook à l'aide de rappels signés, en utilisant une clé secrète de signature. Voir Rappels sécurisés.

Lorsqu'un statut d'archive change, le serveur envoie des requêtes HTTP POST à l'URL que vous indiquez. Le champ « Content-Type » de la requête est défini sur « application/json ». Les données de la requête sont un objet JSON se présentant sous la forme suivante :

{
    "id" : "b40ef09b-3811-4726-b508-e41a0f96c68f",
    "event": "archive",
    "createdAt" : 1384221380000,
    "duration" : 328,
    "name" : "Foo",
    "partnerId" : 123456,
    "reason" : "",
    "resolution" : "640x480",
    "sessionId" : "2_MX40NzIwMzJ-flR1ZSBPY3QgMjkgMTI6MTM6MjMgUERUIDIwMTN-MC45NDQ2MzE2NH4",
    "size" : 18023312,
    "status" : "available",
    "url" : "https://example.com/archive.mp4"
}

L'objet JSON comprend les propriétés suivantes :

  • createdAt — L'horodatage correspondant au moment où le appel date de début de l'archive, exprimée en millisecondes depuis l'époque Unix (1er janvier 1970, 00:00:00 UTC). Notez que cette valeur est arrondie à la seconde près. Notez également que cette valeur diffère de la createdAt dans le Méthode REST permettant de récupérer une archive et le createdAt dans le fichier manifeste d'une archive de flux individuel Dans ces derniers, le createdAt Cette valeur correspond à l'heure à laquelle l'enregistrement a effectivement commencé sur les serveurs OpenTok (et non à l'heure à laquelle l'appel lançant l'enregistrement a été émis). Notez que même si un appel lançant l'archivage est émis, l'archivage ne commencera effectivement à enregistrer sur le serveur OpenTok qu'à partir du moment où au moins un client aura publié un flux dans la session.
  • duration — La durée de l'archive en secondes. Pour les archives en cours d'enregistrement (lorsque la propriété « status » est définie sur "started"), cette valeur est fixée à 0.
  • id — L'identifiant unique de l'archive.
  • name — Le nom de l'archive que vous avez fournie (facultatif)
  • partnerId — Votre clé API OpenTok.
  • resolution — La résolution de l'archive (soit « 640x480 », « 480x640 », « 1280x720 », « 720x1280 », « 1920x1080 » ou « 1080x1920 »). Cette propriété n’est définie que pour les archives composées. Vous pouvez définir la résolution d’une archive composée lors de l’appel de la méthode démarrer l'archive méthode de l'API REST OpenTok.
  • reason — Une chaîne de caractères décrivant la raison du changement de statut.
    • Pour les archives ayant le statut "stopped" ou "failed"Cette chaîne décrit la raison pour laquelle l'archive s'est arrêtée ou a échoué. Pour les archives ayant le statut "stopped", elle peut être réglée sur "maximum duration exceeded", "maximum idle time exceeded", "session ended"ou "user initiated".
    • Pour les archives ayant le statut "failed", elle peut être réglée sur "Internal server failure".
    • Pour les archives ayant le statut "streamRemoved"il peut être défini comme la raison pour laquelle le flux a été supprimé de la session (et de l'archive) : "clientDisconnected", "networkDisconnected", "forceDisconnected", "forceUnpublished", "mediaStopped".
  • sessionId — L'identifiant de la session OpenTok qui a été archivée.
  • size — La taille du fichier d'archive. Pour les archives qui n'ont pas encore été générées, cette valeur est définie sur 0.
  • status — État des archives :
    • "available" — L'archive est disponible en téléchargement sur OpenTok.

    • "expired" — L'archive n'est plus disponible au téléchargement depuis le cloud OpenTok. (Les archives stockées sur le cloud OpenTok ne sont disponibles que pendant 72 heures à compter de leur création.)

    • "failed" — L'enregistrement dans les archives a échoué.

    • "paused" — Lorsqu'un enregistrement est mis en pause, rien n'est enregistré. L'enregistrement est mis en pause si l'une des conditions suivantes se produit :

      • Aucun client ne publie de flux vers la session. Dans ce cas, le délai d'expiration est de 60 minutes ; passé ce délai, l'archivage s'arrête et l'état de l'archivage passe à "stopped".
      • Tous les clients se déconnectent de la session. Au bout de 60 secondes, l'archivage s'arrête et l'état de l'archivage passe à "stopped".

      Si un client reprend la publication alors que l'archive se trouve dans le "paused" état, l'enregistrement d'archive reprend et l'état revient à "started".

    • "started" — L'archivage a commencé et l'enregistrement est en cours.

    • "stopped" — L'archive a cessé d'enregistrer.

    • "uploaded" — L'archive peut être téléchargée à partir du compartiment S3 ou du conteneur Azure que vous avez indiqué dans votre Video API Account. Notez que pour les archives de très petite taille, le "uploaded" peut se produire avant que le "stopped" événement de statut.

  • streamMode — Si tous les flux sont inclus dans l'archive ("auto") ou vous sélectionnez les flux à inclure dans l'archive ("manual"). Voir aussi Sélection des flux à inclure dans une archive.
  • streams — Un tableau d'objets correspondant aux flux en cours d'archivage. Cette valeur n'est définie que pour une archive dont le statut est défini sur "started". Chaque objet du tableau comprend les propriétés suivantes :
    • streams — L'identifiant du flux inclus dans l'archive.
    • hasAudio — Si l'audio du flux est inclus dans l'archive.
    • hasVideo — Si la vidéo du flux est incluse dans les archives.
  • url — L'URL de téléchargement du fichier d'archive disponible. Elle n'est définie que pour une archive dont le statut est défini sur "available"; pour les autres archives, (y compris les archives ayant le statut "uploaded"), cette propriété est définie comme nulle. Pour des raisons de sécurité, l'URL de téléchargement n'est disponible qu'en cas d'appel à l'API REST (ou au SDK du serveur) pour la propriété recherche d'informations dans les archives ou archives des listesou en accédant à l'URL en vous connectant à votre Video API Account en ligne (qui nécessitent tous une authentification). Au bout de 10 minutes, l'URL de téléchargement expirera et une nouvelle URL sera attribuée lors d'une nouvelle demande.
  • timestamp — Pour manuel les mises à jour du flux, l'horodatage de l'événement, exprimé en millisecondes depuis l'époque Unix (1er janvier 1970, 00:00:00 UTC)
  • stream - Pour manuel les mises à jour des flux, les propriétés :
    • id — L'identifiant du flux ajouté ou supprimé dans l'archive.
    • connection — L'objet de connexion du flux, qui comporte une propriété : id. Les id est l'identifiant de connexion du flux ajouté ou supprimé dans l'archive.
    • createdAt — L'horodatage correspondant au début du flux, exprimé en millisecondes depuis l'époque Unix (1er janvier 1970, 00:00:00 UTC). Notez que cette valeur est arrondie à la seconde près.

Vous pouvez également consulter l'état des archives sur le site Video API Account:

  1. Naviguez jusqu'à votre Video API Account page.
  2. Dans la liste des projets située à gauche de la page, sélectionnez le projet qui contiendra les sessions que vous souhaitez archiver.
  3. Dans le cadre de la Archivage section, cliquez sur le Liste des archives onglet. Vous trouverez ici des informations détaillées sur les archives du projet.

Sécurité des archives

Vous pouvez sécuriser vos archives de la manière suivante :

  • Désactiver le recours au stockage d'archives — Par défaut, Vonage stocke un fichier d'archive sur les serveurs OpenTok s'il n'a pas pu le télécharger vers le serveur S3 ou Azure que vous avez indiqué. Pour désactiver ce stockage de secours (qui est activé par défaut), connectez-vous à votre Video API Accountsélectionnez le projet et définissez l'option de désactivation de l'archivage.
  • Utiliser le chiffrement OpenTok — Cela vous permet de créer des archives OpenTok dans lesquelles les données ne sont jamais stockées à l'état non chiffré. Parmi les méthodes disponibles pour sécuriser vos archives OpenTok, celle-ci offre le plus haut niveau de sécurité. Elle est disponible sous la forme d'un fonction complémentaire. Pour plus d'informations, voir la rubrique Chiffrement OpenTok documentation.
  • Utiliser le cryptage côté serveur Amazon S3 - Ce système utilise des clés de chiffrement gérées par Amazon S3 pour le chiffrement. En savoir plus sur le cryptage côté serveur d'Amazon S3 ici.

Exemples d'applications

Les exemples d'applications suivants illustrent l'archivage avec OpenTok :

Plus d'informations

Consultez la documentation relative aux méthodes liées à l'archivage dans le API REST d'OpenTok et dans la documentation de l'API pour le SDK pour serveurs OpenTok. Par ailleurs, chacun des SDK serveur comprend un exemple d'application d'archivage.