Enregistrement de vidéos

Vue d'ensemble

L'API d'archivage vidéo de Vonage vous permet d'enregistrer l'audio et la vidéo d'une session dans deux formats :

  • Archives composées (par défaut) produit des fichiers MP4 prêts à être lus immédiatement.
  • Archives individuelles des cours d'eau regrouper chaque flux publié dans un fichier ZIP de fichiers multimédias par flux et de métadonnées pour le post-traitement.

Vous pouvez décider du format à utiliser lorsque vous appelez l'API REST d'archivage ou le SDK du serveur. Voir la page Comparaison des flux individuels et des archives composées pour choisir le mode qui convient à votre flux de travail.

L'archivage nécessite du code côté client et côté serveur. Pour archiver des sessions, vous devez disposer d'un serveur HTTP. Vous pouvez choisir le bon serveur SDK serveur pour votre configuration de serveur. Le SDK du serveur, lorsqu'il reçoit les données du SDK du client, exécute la fonctionnalité d'archivage proprement dite. Votre code côté client invoquera alors votre code côté serveur par le biais d'appels HTTP.

  • Dans la plupart des Applications, le contrôle de l'enregistrement des archives ne serait pas accordé à chaque utilisateur final.

  • Vous pouvez avoir des sessions automatiquement archivées, qui sont enregistrées chaque fois qu'un client commence à publier un flux.

  • Vous devrez configurer une cible Amazon S3 ou Microsoft Azure pour le stockage de vos enregistrements d'archives.

Ce mode d'emploi aborde les points suivants :

  • Démarrage d'un enregistrement d'archives
  • Arrêt d'un enregistrement d'archives
  • Comment récupérer les informations relatives à l'enregistrement des archives

Avant de commencer

Avant de commencer à ajouter l'enregistrement à votre application, assurez-vous que vous disposez déjà d'une application vidéo de base.

Si vous ne voulez pas écrire votre propre serveur, vous pouvez utiliser un serveur préconstruit déployé sur le Code Hub de Vonage. Rendez-vous sur le site Serveur d'apprentissage vidéo de Vonage (PHP) et cliquez sur "Déployer le code". Cela téléchargera notre serveur d'apprentissage et le lancera automatiquement pour vous.

Si vous souhaitez explorer le code, vous pouvez cliquer sur "Obtenir le code" ou vous rendre sur le site suivant GitHub et téléchargez le code sur votre machine locale.

Vous ne pouvez archiver que les sessions qui utilisent l'option Routeur vidéo multimédia de Vonage (sessions dont le mode média est réglé sur routé)

Démarrage d'un enregistrement d'archive

À moins que votre session ne soit configurée pour l'archivage automatique, vous devrez indiquer à notre système de commencer à enregistrer votre session. En pratique, cela signifie que votre interface présentera les options d'enregistrement à un modérateur (ou à un autre rôle approprié), et que votre interface enverra une demande à un serveur dorsal qui communiquera avec l'API pour lancer l'enregistrement.

  1. Demandez à votre front-end d'envoyer une requête à votre serveur pour lancer l'archivage.
var myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");

var raw = JSON.stringify({
  "sessionId": "value goes here"
});

var requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

var serverURL = "server-url.com/archive/start" // replace this with your HTTP server URL

fetch(serverUrl, requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
  1. Demandez à votre serveur back-end d'accepter la demande et de contacter l'API REST pour lancer l'archivage.
try {
    const archive = await vonage.video.startArchive(sessionId);
    // The id property is useful to save off into a database
    console.log("new archive:", archive.id);
} catch(error) {
    console.error("Error starting archive: ", error);
}

Si vous utilisez directement l'API REST, vous obtiendrez une réponse similaire à la suivante :

Si vous utilisez un SDK, il renverra les informations ci-dessus dans un format adapté au SDK. Veuillez vérifier le format du pour votre SDK serveur sur la valeur de retour exacte que vous obtiendrez.

Arrêt d'un enregistrement d'archive

L'enregistrement se poursuit jusqu'à ce que l'une des conditions suivantes soit remplie :

  • 4 heures d'enregistrement
  • 1 heure d'inactivité (aucun client ne publie de flux)
  • 12 heures au total de publication active et "en pause". Un flux se met en pause lorsqu'aucun client ne publie.

Nous vous déconseillons de laisser l'enregistrement d'une archive s'arrêter en fonction des seuils ci-dessus. Vous devez arrêter une archive dès que vous savez qu'elle est terminée. Le fonctionnement est similaire à celui du démarrage d'une archive : votre front-end doit envoyer une demande au back-end pour indiquer à l'API d'arrêter l'enregistrement.

  1. Demandez à votre front-end d'envoyer une requête à votre serveur pour arrêter l'enregistrement de l'archive.
var myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");

var raw = JSON.stringify({
  "archiveId": "value goes here"
});

var requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

var serverURL = "server-url.com/archive/stop" // replace this with your HTTP server URL

fetch(serverURL, requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
  1. Votre serveur dorsal enverra une demande à l'API REST pour arrêter l'enregistrement.
try {
    const archiveResponse = await vonage.video.stopArchive(archiveId);
    console.log("Successfully stopped archive:", archiveResponse.id);
} catch(error) {
    console.error("Error stopping archive: ", error);
}

Vous obtiendrez une réponse similaire à la suivante :

Cette réponse peut ne pas contenir l'URL de l'enregistrement final, en particulier si vous archivez vers votre propre stockage S3 ou Azure, ou si l'enregistrement de l'archive n'est pas finalisé. Nous enverrons un rappel à votre serveur lorsque l'archive sera prête à être téléchargée.

Obtenir des informations sur l'enregistrement des archives

Vous pouvez également obtenir des informations sur n'importe quel enregistrement d'archive à tout moment. Cela permet d'obtenir des statistiques sur l'archive et de vérifier l'état de l'archive elle-même. Par exemple, lorsque vous arrêtez une archive, il peut s'écouler quelques instants avant que l'archive elle-même ne soit prête. Vous pouvez vérifier les informations d'une archive pour savoir quand l'archive est terminée et prête à être téléchargée.

try {
    const archive = await vonage.video.getArchive(archiveId);
    console.log("Successfully retrieved archive:", archive.id);
} catch(error) {
    console.error("Error retrieving archive: ", error);
}

Vous obtiendrez une réponse similaire à celle que vous obtenez lorsque vous arrêtez l'enregistrement des archives.

Voir aussi