録画機能
Cloud Recording
概要
Cloud RecordingはRESTful APIとして提供しています。
agora.ioのVideoやVoiceSDKなどを使って作成されたサービス(1対1面談、ボイスチャット、会議、セミナーなど)の映像と音声を録画(録音)することができます。
録画の実行はRESTful APIをコールします。また録画終了後に録画ファイルはお客様が指定するサードパーティのクラウドストレージ(例:Amazon S3, Tencent Cloud, Google Cloud, Microsoft Azureなど、詳細は公式ページをご参照ください)上に自動でアップロードされます。また、録画/録音ファイルはお客様の設定されたストレージのみに保存される仕組みになっており、データのバックアップをAgoraが保持することは無いのでご安心いただけます。
この記事ではAgora Cloud Recordingの機能紹介を目的とし、API実行ツールを用いて録画実行から録画ファイル作成までを大まかに説明いたします。
Cloud Recording利用イメージ
- ※agora公式ページより転用
RESTful APIメソッド
RESTful APIには以下のメソッドが用意されています。
・acquire:録画実行ID(resourceId)の取得
・start:録画開始
・stop:録画停止
・update:録画更新
・query:状態確認
・updateLayout:ビデオミキシングレイアウト更新
・get-ncs-ip:メッセージ通知サーバのIPアドレス確認
基本的な一連の録画処理をするために本記事ではacquire、start、stopを利用します。
動作確認
前提
以下の設定が完了していることを前提として進めます。
・API実行ツール(今回はPostmanを利用)
・クラウドストレージ環境(今回はAmazon S3を利用)
・録画機能の有効化
・REST認証のセットアップ
・デモアプリ(今回はWebRTCデモアプリを利用)
動作実行
1. API実行ツール(Postman)のWorkspaceから実行環境(Environments)を作成し設定値を保存します。
録画実行時に必要な設定値を設定してください。
変数名 | 説明 |
---|---|
appid | AppID(※1) |
authUser | Agora RESTfull API利用のためのCustomer ID(※2) |
authPassword | Agora RESTfull API利用のためのCustomer Secret(※2) |
(※1)ここで指定するAppIDは各プロジェクトに一意の識別子として自動的に割り当てられるものとなります。Agoraコンソールにログインしていただくと、プロジェクトの一覧にて「AppID」を特定することが可能です。
(※2)Agora RESTfull API利用のためのCustomer IDとCustomer Secretを生成する方法についてはこちらをご参照ください。
2. デモアプリにPostmanの実行環境に設定したAppID(項目:APP ID)と指定するチャンネル名(項目:Channel Name)で入室しておきます。
※今回はtestというチャンネル名を使用します。また、最初に入室する時にカメラとマイクのアクセス権限をオンに設定してください。
3. 【acquire実行】録画実行ID(resourceId)を取得します。
エンドポイント(Endpoint)と必要なパラメータはこちらをご参照ください。
ステータスが200 OKと表示されると、以下のレスポンスが表示されます。
{
"cname": "string",
"uid": "string",
"resourceId": "string"
}
acquireコールにてresourceIdが発行されていることがわかります。このresourceIdで録画タスク(start Cloud Recording)を実行します。
4. 【start実行】録画を開始します。
エンドポイント(Endpoint)と必要なパラメータはこちらをご参照ください。
※録画方式(mode)には、大別して以下の3種類があります。詳細についてはこちらをご参照ください。
①Individual(個別)モード:各ユーザ(UID)の映像/音声を個別に保存するモード
②Composite(複合)モード:各ユーザ(UID)の映像/音声を結合して保存するモード
③Web Page Recording:Webページを丸ごと保存するモード
ステータスが200 OKと表示されると、以下のレスポンスが表示されます。
{
"cname": "string",
"uid": "string",
"resourceId": "string",
"sid": "string"
}
startコールにてsid(録画ID)が発行されます。このsidは録画タスクを終了(stop Cloud Recording)する時に必要な値です。
5. 【stop実行】録画を停止します。
エンドポイント(Endpoint)と必要なパラメータはこちらをご参照ください。
ステータスが200 OKと表示されると、以下のレスポンスが表示されます。
{
"cname": "string",
"uid": "string",
"resourceId": "string",
"sid": "string",
"serverResponse": {
"fileListMode": "string",
"fileList": "directory1/directory2/acc509ba4d406d46e2b616be40ec8239_test.m3u8",
"uploadingStatus": "uploaded"
}
}
stopコールにて録画が停止し、結果(serverResponse)が表示されています。
また、fileListは保存先ファイル名になります。
※404エラーについて
stop時のレスポンスコードが404だった場合、録画失敗により録画ファイルは作成されません。
良くある原因は「start時の設定値が間違っている」です。
例えば、
・uidをintで設定していた
・(token利用の場合)録画側にtokenを設定していなかった
・Cloud Strageのキーが間違えていた
404エラーが発生した際は、まずはstart時の設定値をご確認ください。
6. クラウドストレージに接続し、ファイルを確認します。
クラウドストレージ上にfileListと同じファイル名が作成されていることが確認できます。
以上で録画の実行と録画ファイルの作成ができました。
[補足]
録画ファイルの結合、変換については、下記公式ドキュメントをご参照ください。
Merge audio and video files
Convert the file format
関連リンク
On-premise RecordingとCloud Recordingの違いは何ですか?
録画モードの違いについて教えてください。
Cloud RecordingのCallback Serviceは利用可能ですか?
Agoraの開発者アカウントを作る(無料トライアル)
Agoraの無料トライアルは利用時間10,000分/月で、開発期間中はずっと無料となっています。(リリース後から料金が発生)Agoraは株式会社ブイキューブが日本代理店となっており、料金など不明点は日本語での対応が可能です。