Tutorial sobre archivado (web)
Visión general
La API de archivado de OpenTok te permite grabar las transmisiones de audio y vídeo de una sesión en archivos MP4.
Configuración del servidor
Para archivar sesiones de OpenTok, es necesario disponer de un servidor Configuración. Hay muchas formas de implementar el archivado con un servidor, pero para este tutorial vamos a poner en marcha rápidamente un servidor PHP sencillo.
Para iniciar el servidor, solo tienes que hacer clic en el botón de Heroku que aparece a continuación; en ese momento, se te redirigirá a la página web de Heroku y se te pedirá que introduzcas tu clave API y tu secreto API de OpenTok; puedes encontrar estos valores en la página de tu proyecto en tu Account de la Video API. Si no tienes un Account de Heroku, tendrás que registrarte (es gratis).
¿Quieres echar un vistazo al código? El botón de arriba ejecuta el código del servidor desde el aprender-opentok-php Repositorio de GitHub. Visita el repositorio para revisar el código y consultar la documentación adicional; incluso puedes crear una bifurcación del repositorio y realizar cambios antes de la implementación.
Configuración de tu proyecto
Para seguir este tutorial, clona el repositorio de OpenTok Aplicaciones de ejemplo web repositorio en GitHub:
git clone https://github.com/Vonage-Community/video-api-web-samples.git
A continuación, abre el Archivado carpeta en tu editor de código para seguir el ejemplo.
Importante: Solo puedes archivar las sesiones que utilicen el OpenTok Media Router (sesiones con el modo de medios configurado en «enrutado»). El valor por defecto aprender-opentok-php El código utilizado por esta aplicación tutorial emplea sesiones enrutadas.
Explorar el código
Para iniciar y detener las grabaciones de archivo, se utiliza código del lado del servidor. En el archivo config.js, se configura el SAMPLE_SERVER_BASE_URL variable a la URL base del servicio web al que recurre la aplicación para iniciar la grabación del archivo, detener la grabación y reproducir el vídeo grabado. Asegúrate de que no haya ningún / al final del dominio.
La aplicación de archivado utiliza el mismo código disponible en la carpeta «Basic Video Chat» para inicializar una sesión de OpenTok, conectarse a la sesión, publicar una transmisión y suscribirse a la transmisión de la sesión. Si aún no te has familiarizado con el código de esa rama, te recomendamos que eches un vistazo a la Tutorial básico para clientes para la web antes de continuar.
Para iniciar la grabación de la transmisión de vídeo, el usuario hace clic en el botón «Iniciar grabación», lo que activa el método startArchive() en app.js. Este método, a su vez, envía una solicitud XHR (o Ajax) al servidor. El ID de la sesión que se va a grabar se envía al servidor en formato JSON. En cuanto se invoca el método startArchive(), el botón «Iniciar grabación» se oculta y aparece el botón «Detener grabación».
function startArchive() {
$.ajax({
url: SAMPLE_SERVER_BASE_URL + '/archive/start',
type: "POST",
contentType: "application/json", // send as JSON
data: JSON.stringify({"sessionId": sessionId}),
complete: function() {
//called when complete
console.log('startArchive() complete');
},
success: function() {
//called when successful
console.log('successfully called startArchive()');
},
error: function() {
//called when there is an error
console.log('error calling startArchive()');
},
});
$('#start').hide();
$('#stop').show();
}
Para detener la grabación, el usuario hace clic en el botón «Detener grabación», lo que activa el método stopArchive(). Este método es similar al método startArchive(), ya que envía una solicitud Ajax al servidor para detener el archivo. La única diferencia es que este método pasa el ID del archivo que se debe detener como parámetro de la URL, en lugar del «sessionId». El botón «Detener grabación» queda oculto y el botón «Ver archivo» se activa.
function stopArchive() {
$.post(SAMPLE_SERVER_BASE_URL + '/archive/' + archiveID + '/stop');
$('#stop').hide();
$('#view').prop('disabled', false);
$('#stop').show();
}
Para descargar el archivo que se acaba de grabar, el usuario hace clic en el botón «Ver archivo», lo que activa el método viewArchive(). Este método es similar a los métodos startArchive() y stopArchive(), ya que envía una solicitud Ajax al servidor. El código del servidor cuenta con la lógica necesaria para comprobar si el archivo está disponible para su descarga o no. Si está disponible, la aplicación redirige al usuario a la página del archivo. Si no lo está, se carga una nueva página que comprueba continuamente si el archivo está disponible para su descarga y lo carga en cuanto lo está.
Notas:
-
En la mayoría de las aplicaciones, no se concedería a cada usuario final el control sobre el registro de archivo.
-
Puede tener sesiones archivadas automáticamente, que se graban cada vez que un cliente empieza a publicar un flujo.
-
Te recomendamos que configures un destino en Amazon S3 o Microsoft Azure para almacenar las grabaciones de tu archivo.
Para más información sobre el archivado, consulte el Guía para desarrolladores sobre el archivado de OpenTok.
¡Enhorabuena! Has completado el tutorial sobre archivado para la web.
Puedes seguir probando y modificando el código que has creado aquí, o echar un vistazo a la Próximos pasos abajo.
Próximos pasos
Cuando hayas terminado aquí, sigue desarrollando y mejorando tu aplicación de OpenTok con estos útiles recursos:
- Conceptos básicos de la Video API: si aún no lo has hecho, dedica unos minutos a descubrir exactamente cómo funciona OpenTok
- Ejemplos de código: una recopilación de aplicaciones de ejemplo que exploran diversas funciones y casos de uso de OpenTok
- Guías para desarrolladores: documentación detallada sobre todas las características y funcionalidades de OpenTok
- Tutoriales adicionales: guías paso a paso para implementar otras funciones y casos de uso de OpenTok
- Referencia de OpenTok.js: descubre los métodos y eventos específicos asociados a OpenTok.js