構成されたアーカイブのビデオレイアウトをカスタマイズする
OpenTok REST API を使用すると、OpenTok アーカイブ内の動画のレイアウトをカスタマイズできます。
この機能は、個々のアーカイブではなく、複合アーカイブに適用されます。(OpenTokアーカイブに関する一般的な情報については、 以下を参照してください。 OpenTok アーカイブ開発者ガイド.)
概要
デフォルトでは、OpenTokのアーカイブでは、OpenTokセッションの動画がタイル状の レイアウトで表示されます。たとえば、セッションに1、2、 4、または5つのストリームがある場合のレイアウトは以下の通りです:

これは「ベストフィット」レイアウトとして知られています。あるいは、 あらかじめ定義された他のレイアウトから選択することもできます。その他のレイアウトでは、 各 OpenTok ビデオストリームにクラス名を割り当てることで、 レイアウト内での表示方法を決定します。(参照: 定義済みのレイアウト・タイプ.)
また、CSSを使用して独自のカスタムレイアウトを定義することもできます。参照 カスタムレイアウトの 定義.
デフォルトでは、合成されたアーカイブのサイズは640×480ピクセル(SD横長、アスペクト比4:3)です。 個々の OpenTok動画は、アーカイブ動画内のコンテナとなる長方形の中に配置されます。個々の ストリームの動画のアスペクト比がコンテナのアスペクト比と一致しない場合( たとえば、HD動画や画面共有動画の場合など)、コンテナ内に収まるよう レターボックス処理が施されます。 たとえば、次の図は、2つのSD横向き(4:3)動画(1と4)と2つのHD横向き(16:9)動画(2と3)を、 最適な配置で配置した例を示しています:

また、合成アーカイブについて、480×640(SD縦向き、アスペクト比3:4)、 1280×720(HD横向き、アスペクト比16:9)、720×1280(HD縦向き、アスペクト比9:16)、 1920×1080(FHD 横向き、アスペクト比 16:9)、または 1080×1920(FHD 縦向き、アスペクト比 9:16) の解像度で再生するように設定することも可能です。 アーカイブ開始 OpenTok REST APIの メソッド。モバイルデバイスからのビデオストリーム(多くの場合、縦向きアスペクト比が使用される)を含むアーカイブを録画する際は、 縦向きアスペクト比を使用することをお勧めします。
この機能を使うには
-
構成済みアーカイブのレイアウトタイプを指定します(「 初期の レイアウトタイプの指定 そして セッションのアーカイブ中に レイアウトの種類を動的に変更する).
を定義することもできます。 カスタムレイアウト.
初期レイアウトタイプの指定
OpenTok REST API を使用してセッションのアーカイブを開始する際、 必要に応じて、初期のアーカイブレイアウトタイプを指定することができます。
POSTリクエストのリクエストURLを以下に設定する:
https://api.opentok.com/v2/project/{apiKey}/archive
を設定する。 Content-Type への application/json そして、POSTリクエストで送信されるJSONデータの
プロパティとしてレイアウトタイプを設定します:
{
"sessionId": "2_MX44NTQ1MTF--bm1kTGQ0RjVHeGNQZE51VG5scGNzdVl0flB-",
"layout": {
"type": "pip"
},
"name" : "archive_name",
"outputMode" : "composed"
}
カスタムレイアウトを使用している場合 ( カスタムレイアウトの
定義),
を type プロパティ "custom"
そして、スタイルシートを追加のプロパティとして渡して—stylesheet:
{
"sessionId": "2_MX44NTQ1MTF--bm1kTGQ0RjVHeGNQZE51VG5scGNzdVl0flB-",
"layout": {
"type": "custom",
"stylesheet": "stream.instructor {position: absolute; width: 100%; height:50%;}"
},
"name" : "archive_name",
"outputMode" : "composed"
}
また、セッション内に画面共有ストリームがある場合に使用するレイアウトの種類を、 screenshareType プロパティの layout プロパティ(参照:
画面共有レイアウト):
{
"sessionId": "2_MX44NTQ1MTF--bm1kTGQ0RjVHeGNQZE51VG5scGNzdVl0flB-",
"layout": {
"type": "bestFit",
"screenshareType": "pip"
},
"name" : "archive_name",
"outputMode" : "composed"
}
JWTトークンを使用してREST呼び出しを認証します(参照: OpenTok REST API 認証):
X-OPENTOK-AUTH: <token>
無効な型を指定した場合、リクエストは400エラー応答コードを返す。
また、OpenTokサーバーSDKを使用してアーカイブを開始する際に、 初期のレイアウトタイプを指定することもできます:
- Java —
OpenTok.startArchive(sessionId, properties)(に電話してlayout()のメソッドを使用する。ArchiveProperties.Builderオブジェクト) - ノード
OpenTok.startArchive()(設定するlayoutプロパティのoptionsパラメータ) - PHP
OpenTok->startArchive()(に電話してOpenTok->setArchiveLayout()(アーカイブの開始後のメソッド) - Python —
opentok.start_archive()(に電話してopentok.set_archive_layout()(アーカイブの開始後のメソッド) - Ruby —
Archives.create()(設定するlayoutプロパティのoptions(ハッシュ) - .NET —
OpenTok.StartArchive()(設定するlayoutパラメータ)
初期のレイアウトタイプを指定しない場合、生成されたアーカイブでは 「Best Fit」レイアウトタイプが使用されます。その他のレイアウトタイプを指定する場合は、OpenTok セッション内のストリームに対して 適切なレイアウトクラスを適用するようにしてください( OpenTokの ストリームへのレイアウトクラスの割り当て).
参照 定義済みのレイアウト・タイプ.
アーカイブ録画中にレイアウトの種類を動的に変更する
を呼び出すことで、レイアウトの種類を動的に変更できます。 /archive/layout
REST API。以下のURLに対してPUTリクエストを送信してください:
https://api.opentok.com/v2/project/{apiKey}/archive/{archiveId}/layout
を設定する。 Content-Type への "application/json" また、PUTリクエストのJSONデータの
プロパティとしてレイアウトタイプを含めます:
{
"type": "pip"
}
を使用している場合 カスタム
レイアウト を設定する。 type
プロパティを "custom" そして、スタイルシートを追加の
プロパティとして渡して—stylesheet:
{
"type": "custom",
"stylesheet": "stream.instructor {position: absolute; width: 100%; height:50%;}"
}
また、セッション内に画面共有
ストリームが存在する場合に使用するレイアウトの種類を、 screenshareType プロパティ(参照:
画面共有レイアウト):
{
"type": "bestFit",
"screenshareType": "pip"
}
JWTトークンを使用してREST呼び出しを認証します(参照: OpenTok REST API 認証):
X-OPENTOK-AUTH: <token>
無効な型を指定した場合、リクエストは400エラー応答コードを返す。
また、OpenTokサーバーSDKを使用してレイアウトの種類を変更することもできます:
- Java —
OpenTok.setArchiveLayout() - ノード
OpenTok.setArchiveLayout() - PHP
OpenTok->setArchiveLayout() - Python —
opentok.set_archive_layout() - Ruby —
Archives.layout()
デフォルトの「Best Fit」レイアウトタイプ以外のレイアウトタイプを指定する場合は、 OpenTok セッション内のストリームに適切なレイアウトクラスを適用するように してください(詳細は OpenTokの ストリームへのレイアウトクラスの割り当て).