Personalização do layout do vídeo para arquivos compostos

Você pode usar a API REST do OpenTok para personalizar o layout dos vídeos em um arquivo do OpenTok.

Esse recurso se aplica a arquivos compostos, e não a arquivos individuais. (Para obter informações gerais sobre os arquivos do OpenTok, consulte o Guia do desenvolvedor do OpenTok Archive.)

Visão geral

Por padrão, os arquivos do OpenTok organizam os vídeos da sessão do OpenTok em um layout em mosaico. Por exemplo, a ilustração a seguir mostra o layout quando há 1, 2, 4 ou 5 transmissões em uma sessão:

Esse layout é conhecido como “melhor ajuste”. Como alternativa, você pode escolher entre vários outros layouts predefinidos. Para os demais layouts, é necessário atribuir um nome de classe a cada fluxo de vídeo do OpenTok para determinar como ele aparecerá no layout. (Consulte Tipos de layout predefinidos.)

Você também pode definir seus próprios layouts personalizados usando CSS. Consulte Definindo layouts personalizados.

Por padrão, o arquivo composto tem 640 x 480 pixels (SD paisagem, proporção 4:3). Os vídeos individuais do OpenTok são organizados em retângulos contêineres dentro do vídeo do arquivo. Se a proporção de um vídeo de stream individual não corresponder à do contêiner (por exemplo, se for um vídeo em HD ou um vídeo de compartilhamento de tela), ele será ajustado com barras laterais para caber dentro do contêiner. Por exemplo, a ilustração a seguir mostra um layout de melhor ajuste com dois vídeos SD na orientação paisagem (4:3) (1 e 4) e dois vídeos HD na orientação paisagem (16:9) (2 e 3):

Você também pode configurar um arquivo composto para usar uma resolução de 480x640 (SD retrato, proporção 3:4), 1280x720 (HD paisagem, proporção 16:9), 720x1280 (HD retrato, proporção 9:16), 1920x1080 (FHD paisagem, proporção 16:9) ou 1080x1920 (FHD retrato, proporção 9:16) ao chamar o iniciar arquivo método da API REST do OpenTok. Talvez seja recomendável usar a proporção retrato ao gravar arquivos que incluam transmissões de vídeo de dispositivos móveis (que geralmente utilizam a proporção retrato).

Para usar esse recurso:

Você também pode definir o seu próprio layouts personalizados.

Especificação do tipo de layout inicial

Ao iniciar o arquivamento de uma sessão, usando a API REST do OpenTok, você pode, opcionalmente, especificar o tipo de layout inicial do arquivo.

Defina a URL da solicitação POST da seguinte forma:

https://api.opentok.com/v2/project/{apiKey}/archive

Defina o Content-Type para application/json e definir o tipo de layout como uma propriedade dos dados JSON enviados na solicitação POST:

{
  "sessionId": "2_MX44NTQ1MTF--bm1kTGQ0RjVHeGNQZE51VG5scGNzdVl0flB-",
  "layout": {
    "type": "pip"
  },
  "name" : "archive_name",
  "outputMode" : "composed"
}

Se você estiver usando um layout personalizado (consulte Definindo layouts personalizados), defina o type propriedade para "custom" e passar a folha de estilo como uma propriedade adicional—stylesheet:

{
  "sessionId": "2_MX44NTQ1MTF--bm1kTGQ0RjVHeGNQZE51VG5scGNzdVl0flB-",
  "layout": {
    "type": "custom",
    "stylesheet": "stream.instructor {position: absolute; width: 100%;  height:50%;}"
  },
  "name" : "archive_name",
  "outputMode" : "composed"
}

Você também pode especificar um tipo de layout a ser usado quando houver uma transmissão de compartilhamento de tela na sessão, definindo o screenshareType propriedade do layout propriedade (ver formatos de compartilhamento de tela):

{
  "sessionId": "2_MX44NTQ1MTF--bm1kTGQ0RjVHeGNQZE51VG5scGNzdVl0flB-",
  "layout": {
    "type": "bestFit",
    "screenshareType": "pip"
  },
  "name" : "archive_name",
  "outputMode" : "composed"
}

Autentique a chamada REST usando um token JWT (consulte API REST do OpenTok autenticação):

X-OPENTOK-AUTH: <token>

A solicitação retorna um código de resposta de erro 400 caso você especifique um tipo inválido.

Você também pode especificar o tipo de layout inicial ao iniciar um arquivo usando os SDKs do servidor OpenTok:

Se você não especificar um tipo de layout inicial, o arquivo composto utilizará o tipo de layout “Best Fit”. Se você especificar qualquer outro tipo de layout, certifique-se de aplicar as classes de layout apropriadas para os fluxos na sessão do OpenTok (consulte Atribuição de classes de layout aos streams do OpenTok streams).

Veja Tipos de layout predefinidos.

Alteração dinâmica do tipo de layout durante uma gravação de arquivo

É possível alterar dinamicamente o tipo de layout chamando a função /archive/layout API REST. Envie uma solicitação PUT para a seguinte URL:

https://api.opentok.com/v2/project/{apiKey}/archive/{archiveId}/layout

Defina o Content-Type para "application/json" e inclua o tipo de layout como uma propriedade dos dados JSON na solicitação PUT:

{
  "type": "pip"
}

Se você estiver usando um personalizado layout definir o type propriedade para "custom" e passar a folha de estilo como uma propriedade adicional—stylesheet:

{
  "type": "custom",
  "stylesheet": "stream.instructor {position: absolute;  width: 100%;  height:50%;}"
}

Você também pode especificar um tipo de layout a ser usado quando houver uma transmissão de compartilhamento de tela na sessão, definindo o screenshareType propriedade (ver formatos de compartilhamento de tela):

{
  "type": "bestFit",
  "screenshareType": "pip"
}

Autentique a chamada REST usando um token JWT (consulte API REST do OpenTok autenticação):

X-OPENTOK-AUTH: <token>

A solicitação retorna um código de resposta de erro 400 caso você especifique um tipo inválido.

Você também pode alterar o tipo de layout usando os SDKs do servidor OpenTok:

Ao especificar um tipo de layout diferente do padrão “Best Fit”, certifique-se de aplicar as classes de layout adequadas aos fluxos na sessão do OpenTok (consulte Atribuição de classes de layout aos streams do OpenTok streams).