Personalización del diseño de vídeo para los archivos compuestos
Puedes utilizar la API REST de OpenTok para personalizar la disposición de los vídeos en un archivo de OpenTok.
Esta función se aplica a las grabaciones agrupadas, no a las grabaciones individuales. (Para obtener información general sobre las grabaciones de OpenTok, consulta la Guía para desarrolladores de OpenTok Archive.)
Visión general
De forma predeterminada, los archivos de OpenTok organizan los vídeos de la sesión de OpenTok en una disposición en mosaico. Por ejemplo, a continuación se muestra la disposición cuando hay 1, 2, 4 o 5 transmisiones en una sesión:

Esto se conoce como la disposición «que mejor se adapta». Como alternativa, puedes elegir entre varias disposiciones predefinidas. Para el resto de disposiciones, debes asignar un nombre de clase a cada flujo de vídeo de OpenTok para determinar cómo aparecerá en la disposición. (Véase Tipos de diseño predefinidos.)
También puede definir sus propios diseños personalizados utilizando CSS. Consulte Definición de diseños personalizados.
Por defecto, el archivo resultante tiene unas dimensiones de 640 x 480 píxeles (SD en horizontal, relación de aspecto 4:3). Los vídeos individuales de OpenTok se organizan en rectángulos contenedores dentro del vídeo del archivo. Si la relación de aspecto de un vídeo de una transmisión individual no coincide con la del contenedor (por ejemplo, si se trata de un vídeo en HD o de un vídeo de pantalla compartida), se le añade un marco negro para que encaje en el contenedor. Por ejemplo, la siguiente ilustración muestra una disposición óptima con dos vídeos SD en horizontal (4:3) (1 y 4) y dos vídeos HD en horizontal (16:9) (2 y 3):

También puedes configurar un archivo compuesto para que utilice una resolución de 480x640 (SD vertical, relación de aspecto 3:4), 1280 x 720 (HD apaisado, relación de aspecto 16:9), 720 x 1280 (HD vertical, relación de aspecto 9:16), 1920x1080 (FHD apaisado, relación de aspecto 16:9) o 1080x1920 (FHD vertical, relación de aspecto 9:16) al llamar a la función iniciar archivo método de la API REST de OpenTok. Es posible que te interese utilizar una relación de aspecto vertical al grabar archivos que incluyan transmisiones de vídeo procedentes de dispositivos móviles (que suelen utilizar la relación de aspecto vertical).
Para utilizar esta función:
-
Especifica el tipo de estructura del archivo compuesto (véase Especificación del tipo de diseño inicial y Cambiar dinámicamente el tipo de diseño mientras se archiva la sesión).
También puede definir su propio diseños personalizados.
Especificar el tipo de diseño inicial
Al iniciar la grabación de una sesión mediante la API REST de OpenTok, puedes, si lo deseas, especificar el tipo de estructura inicial de la grabación.
Establezca la siguiente URL para la solicitud POST:
https://api.opentok.com/v2/project/{apiKey}/archive
Fije el Content-Type a application/json y configura el tipo de estructura como una
propiedad de los datos JSON enviados en la solicitud POST:
{
"sessionId": "2_MX44NTQ1MTF--bm1kTGQ0RjVHeGNQZE51VG5scGNzdVl0flB-",
"layout": {
"type": "pip"
},
"name" : "archive_name",
"outputMode" : "composed"
}
Si utiliza un diseño personalizado (véase Definición de
diseños personalizados),
establece el type propiedad a "custom"
y pasar la hoja de estilos como una propiedad adicional—stylesheet:
{
"sessionId": "2_MX44NTQ1MTF--bm1kTGQ0RjVHeGNQZE51VG5scGNzdVl0flB-",
"layout": {
"type": "custom",
"stylesheet": "stream.instructor {position: absolute; width: 100%; height:50%;}"
},
"name" : "archive_name",
"outputMode" : "composed"
}
También puedes especificar un tipo de diseño que se utilice cuando haya una transmisión compartida de pantalla
en la sesión configurando el screenshareType propiedad del layout propiedad (véase
diseños de pantalla compartida):
{
"sessionId": "2_MX44NTQ1MTF--bm1kTGQ0RjVHeGNQZE51VG5scGNzdVl0flB-",
"layout": {
"type": "bestFit",
"screenshareType": "pip"
},
"name" : "archive_name",
"outputMode" : "composed"
}
Autentifica la llamada REST utilizando un token JWT (véase API REST de OpenTok autenticación):
X-OPENTOK-AUTH: <token>
La solicitud devuelve un código de respuesta de error 400 si se especifica un tipo no válido.
También puedes especificar el tipo de diseño inicial al iniciar un archivo mediante los SDK del servidor de OpenTok:
- Java —
OpenTok.startArchive(sessionId, properties)(llama allayout()método delArchiveProperties.Builderobjeto) - Nodo -
OpenTok.startArchive()(configura ellayoutpropiedad deloptions(parámetro) - PHP -
OpenTok->startArchive()(llama alOpenTok->setArchiveLayout()método tras iniciar el archivo) - Python —
opentok.start_archive()(llama alopentok.set_archive_layout()método tras iniciar el archivo) - Ruby —
Archives.create()(configura ellayoutpropiedad deloptionshash) - .NET —
OpenTok.StartArchive()(configura ellayout(parámetro)
Si no se especifica un tipo de diseño inicial, el archivo compuesto utiliza el tipo de diseño «Best Fit». Si se especifica cualquier otro tipo de diseño, asegúrese de aplicar las clases de diseño adecuadas a los flujos de la sesión de OpenTok (véase Asignación de clases de diseño a las transmisiones de OpenTok »).
Véase Tipos de diseño predefinidos.
Cambio dinámico del tipo de presentación durante una grabación de archivo
Puedes cambiar dinámicamente el tipo de diseño llamando a la función /archive/layout
API REST. Realiza una solicitud PUT a la siguiente URL:
https://api.opentok.com/v2/project/{apiKey}/archive/{archiveId}/layout
Fije el Content-Type a "application/json" e incluye el tipo de diseño como una
propiedad de los datos JSON en la solicitud PUT:
{
"type": "pip"
}
Si utiliza un personalizado
diseño fijar el type
propiedad a "custom" y pasar la hoja de estilos como una
propiedad adicional—stylesheet:
{
"type": "custom",
"stylesheet": "stream.instructor {position: absolute; width: 100%; height:50%;}"
}
También puedes especificar un tipo de diseño que se utilice cuando haya una transmisión de pantalla compartida
en la sesión configurando el screenshareType propiedad (véase
diseños de pantalla compartida):
{
"type": "bestFit",
"screenshareType": "pip"
}
Autentifica la llamada REST utilizando un token JWT (véase API REST de OpenTok autenticación):
X-OPENTOK-AUTH: <token>
La solicitud devuelve un código de respuesta de error 400 si se especifica un tipo no válido.
También puedes cambiar el tipo de diseño utilizando los SDK del servidor de OpenTok:
- Java —
OpenTok.setArchiveLayout() - Nodo -
OpenTok.setArchiveLayout() - PHP -
OpenTok->setArchiveLayout() - Python —
opentok.set_archive_layout() - Ruby —
Archives.layout()
Al especificar un tipo de diseño distinto del predeterminado («Best Fit»), asegúrate de aplicar las clases de diseño adecuadas a las secuencias de la sesión de OpenTok (véase Asignación de clases de diseño a las transmisiones de OpenTok »).