RICOH Live Streaming Access Token Specification (v1)

Download OpenAPI specification:Download

本文書は RICOH Live Streaming がアプリケーションに要求する Access Token の仕様について記述します。

Access Token は発行された ClientID に対応する ClientSecret によって HS256 で署名された JWT です。

セキュリティ上 ClientSecret はアプリケーションのユーザに漏れてはならないため、アプリケーションが保有するサーバで生成されることを想定します。

シーケンス

JWT 仕様

  • ヘッダの "alg" 属性および署名アルゴリズムは "HS256" のみ可
  • クレームセット ( 署名される JSON オブジェクト ) は以下に示す JWTClaims オブジェクト
  • 記載されていない属性が含まれていた場合は無視されます
  • 無視された要素は、同一 RoomInstance 中の Connection 同士で実施される RoomSpec の比較からも無視されます

エラー

Access Tokenに入力不足や不備があった場合、RICOH Live Streaming Client SDK エラー仕様の ParameterError に記載されている対応エラーが発生します。

録画機能について

JWTClaimsroom_spec.recordingconnection_spec.recording の設定によって録画機能を利用することができます。

クラウド録画機能 は、現在 β 版として提供しております。
そのため、商用サービスでの利用をご検討される際には、必ず事前にお問い合わせください。
β 版のクラウド録画機能の利用料金は無料です。正式版は有償での提供を検討しておりますので、あらかじめご了承ください。
正式版を公開せずに β 版の公開を終了する、もしくは、正式版では β 版から機能や仕様が変更される可能性がありますので、あらかじめご了承ください。
クラウド録画機能に関連して現在発生している問題はRICOH Live Streaming クラウド既知の問題を確認してください。

JWTClaims

nbf
required
integer
  • このトークンの有効期限の開始時刻
  • Unixtime
  • RFC7519 で定義されています
  • exp - nbf <= 3600 (expnbf の差は 1 時間以内) である必要があります
exp
required
integer
  • このトークンの有効期限の終了時刻
  • Unixtime
  • RFC7519 で定義されています
room_id
required
string <IDString>
  • 入室する Room の ID
required
object (RoomSpec)
  • 入室する Room の仕様
  • 同時に同じ Room に入室する Connection は同じ RoomSpec が指定されていなければなりません
connection_id
required
string <IDString>
  • 自 Connection の ID
  • 同じ room_id の Room 内に同じ connection_id の Connection が既に存在していた場合、既に存在していた方のConnectionが退室処理されます
object (ConnectionSpec)
Default: {"recording":{"store":true,"format":"mp4","video":{"codec":"h264"},"audio":{"codec":"aac"},"composition":{"use_audio":true,"use_video":true}}}

自 Connection の仕様

{
  • "nbf": 0,
  • "exp": 0,
  • "room_id": "string",
  • "room_spec": {
    },
  • "connection_id": "string",
  • "connection_spec": {
    }
}

RoomSpec

type
required
string (RoomType)
Enum: "sfu" "sfu_large" "p2p" "p2p_turn"
  • Room の種類
    • sfu
      • SFURoom 型接続
      • ある程度の人数での双方向会議向けです
    • sfu_large
      • 大規模イベント向けの SFURoom 型接続
      • 送信可能な Client 数に制限がありますが、1Room あたりの接続可能 Client 数が増えます
    • p2p
      • P2PRoom 型接続
      • 1 対 1 など少人数でのコミュニケーション向けです
    • p2p_turn
      • TURN サーバーを利用する P2PRoom 型接続
      • Room 型 p2p と比べて TURN サーバが利用可能できるため、Client が接続できる可能性が向上します
最大接続数 (sfu_large以外) (integer) or 最大接続数 (sfu_large) (integer)
object (MediaControl)
  • Room 全体に対するメディア制御設定
  • type が "sfu" または "sfu_large" の時のみ有効
    • 指定を省略した場合 {"bitrate_reservation_mbps": 10} を指定したのと同じ扱いになります
  • type が "p2p" または "p2p_turn" の時は、Room の最大帯域はブラウザ間の帯域制御に依存し、指定値は無視されます
object (RoomSpecRecording)
Default: {"recording_on_start":false,"composition_recording":{"enabled":false,"format":"mp4","video":{"resolution":"auto","max_bitrate_kbps":"auto"},"audio":{"codec":"aac"}}}
  • β 機能
  • Room 全体に対する録画設定
  • type が "sfu" または "sfu_large" の時のみ有効
    • RoomSpecRecording 全体を省略することも可能です。その場合、録画は行われません
  • type が "p2p" または "p2p_turn" の時は録画をサポートしないため、指定値が無視されます
  • 現状の制約
    • 録画を実行する場合、 storage を aws_s3 で設定することが必須になります
classification_label
string <IDString>
Default: "default"
  • 課金分類ラベル
{
  • "type": "sfu",
  • "max_connections": 1,
  • "media_control": {
    },
  • "recording": {
    },
  • "classification_label": "default"
}

MediaControl

bitrate_reservation_mbps
integer [ 1 .. 250 ]
Default: 10
  • Room ごとに利用可能な帯域幅の最大値を Mbps 単位で指定
  • Room の利用帯域幅は、すべての接続の送信と受信の合計値であり、各接続が利用する帯域は、合計が bitrate_reservation_mbps の設定内に収まるように調整されます
{
  • "bitrate_reservation_mbps": 10
}

ConnectionSpec

object (ConnectionSpecRecording)
Default: {"store":true,"format":"mp4","video":{"codec":"h264"},"audio":{"codec":"aac"},"composition":{"use_audio":true,"use_video":true}}
  • β 機能
  • Connection に対する録画設定
  • type が sfu または sfu_large の時のみ有効
    • 指定を省略した場合、 { "store": true, "video": { "codec": "h264" }, "audio": { "codec": "aac" }, "composition": { "use_audio": true, "use_video": true } } を指定したものとして扱われます
  • type が p2p または p2p_turn の時は録画をサポートしないため、指定値が無視されます
{
  • "recording": {
    }
}

IDString

string (IDString) ^[a-zA-Z0-9.%+^_"`{|}~<>\\\\-]{1,255}$
  • 1 文字以上 255 文字以下
  • ASCII
  • 以下の文字のみ許可
    • 英数字
    • 次の記号: .%+^_"`{|}~<>\-
"string"