agora.io Cloud Recording SDK スクリーンショットの取得方法
- 入門
- screenshot
- recording
- Agora.io
- RestfulAPI
概要
- agora.ioにCloud Recording SDKが公開されています。
- 2020年4月よりCloud Recording SDKにスクリーンショット機能(Capture Screenshots)が加わりました。
- この記事では、Cloud Recording SDKの
- スクリーンショットの取得方法 についてご説明いたします。
なお、Cloud Recording SDKの関連記事も併せてご参照ください。
- agora.io Cloud Recording SDKのクイックスタートガイド
- agora.io Cloud Recording SDK 録画モード(Individual/Composite)の違い
サンプル
- 本記事で利用するサンプルはこちらです。
実装
- Cloud Recording SDKにてスクリーンショットを取得するには、
RestfulAPIのstartのsnapshotConfigを設定します。
start_Screenshot.php
$snapshotConfig = [
'captureInterval' => 10,
'fileType' => ["jpg"]
];
[snapshotConfig]
設定値 | 説明 |
---|---|
captureInterval | 取得間隔(5~3600秒) デフォルトは10秒 |
fileType | "jpg"のみ |
補足
- スクリーンショットはIndividualモードにて取得することができます。
- スクリーンショットはuidごとに取得されます。
- 1つのresource ID(録画実行ID)で、映像とスクリーンショット両方を取得することはできません。両方取得したい場合、resource IDをそれぞれ発行します。(acquireを2回コール)
動作確認
映像とスクリーンショットの両方を取得できるよう、動作確認します。
前準備
下記環境をご準備ください。
録画実行&停止の確認
1.params.phpにmode(individual)をセットします。
params.php
$mode = 'individual';
2.デモアプリに指定したChannel名で2名入室しておきます。
※Channel名はparams.phpの$cnameで指定した値になります。
3.【acquire実行(映像用)】http://localhost/acquire.phpを実行します。
4.【acquire実行(スクリーンショット用)】http://localhost/acquire.phpを実行します。
(3、4共通)ブラウザ上に以下のようなレスポンスが表示されます。
http
{"resourceId":"IL0B7AstDJPJLomAtRqYZ(省略)jC3bVHSX885c0AW7PG4p0Wsufq"}
acquireコールにて、映像用、スクリーンショット用のそれぞれのresourceIdが発行されていることがわかります。
5.サンプルソース(params.php)にresourceIdを保存します。
- 映像は$resourceid
- スクリーンショット用は$resourceid_ss
params.php
$resourceid = "IL0B7AstDJPJLomAtRqYZ(省略)jC3bVHSX885c0AW7PG4p0Wsufq";
$resourceid_ss = "VHSX885c0AW7PG4p0Wsuf(省略)K6Pwq3aa2cSUbjMwuzzYpNEerk";
6.【start実行(映像用)】http://localhost/start_individual.phpを実行します。
7.【start実行(スクリーンショット用)】http://localhost/start_screenshot.php実行します。
(6、7共通)ブラウザ上に以下のようなレスポンスが表示されます。
http
{"resourceId":"IL0B7AstDJPJLomAtRqYZ(省略)jC3bVHSX885c0AW7PG4p0Wsufq",
"sid":"533abda706437c0b551deab494ca088d"}"
startコールにて録画、スクリーンショットが開始され、各sidが発行されています。
8.サンプルソース(params.php)にsidを保存します。
- 映像は$sid
- スクリーンショット用は$sid_ss
params.php
$sid = '533abda706437c0b551deab494ca088d';
$sid_ss = '11f6c6315245c99854fbd9a8dfb58a19';
10秒程度経過後
9.【stop実行(映像用)】http://localhost/stop.phpを実行します。
※スクリーンショット用のstop処理については、実行せずに全員を退室させて、30秒後(maxIdleTimeで指定)に録画が停止するのを待ちます。
10.デモアプリから全員退室させます。
30秒後にスクリーンショットも停止します。
(映像用のみ)ブラウザ上に以下のレスポンスが表示されます。
http
{"resourceId":"IL0B7AstDJPJLomAtRqYZ(省略)jC3bVHSX885c0AW7PG4p0Wsufq",
"sid":"533abda706437c0b551deab494ca088d",
"serverResponse":{
"fileListMode":"string",
"fileList":"directory1/directory2/533abda706437c0b551deab494ca088d_demo__uid_s_2310497544__uid_e_audio.m3u8",
"uploadingStatus":"uploaded"}
}"
/*省略*/
※複数ファイルがある場合は複数表示されます。
スクリーンショットの確認
1.クラウドストレージ(S3)に接続して確認します。
- 10秒間隔でjpgファイルが作成されています。
- jpgファイルはuidごとに作成されています。
- ファイル名の書式は以下です。
{sid}_{channel}_uid_s_{uid}_uid_e_video_{datetime}.jpg
S3Storage
11f6c6315245c99854fbd9a8dfb58a19_demo__uid_s_2310497544__uid_e_video_20200525073629678.jpg
11f6c6315245c99854fbd9a8dfb58a19_demo__uid_s_2310497544__uid_e_video_20200525073639720.jpg
11f6c6315245c99854fbd9a8dfb58a19_demo__uid_s_2310497544__uid_e_video_20200525073649790.jpg
11f6c6315245c99854fbd9a8dfb58a19_demo__uid_s_2310497544__uid_e_video_20200525073659831.jpg
11f6c6315245c99854fbd9a8dfb58a19_demo__uid_s_2310497544__uid_e_video_20200525073709862.jpg
/*省略*/
11f6c6315245c99854fbd9a8dfb58a19_demo__uid_s_3534335585__uid_e_video_20200525073629649.jpg
11f6c6315245c99854fbd9a8dfb58a19_demo__uid_s_3534335585__uid_e_video_20200525073639682.jpg
11f6c6315245c99854fbd9a8dfb58a19_demo__uid_s_3534335585__uid_e_video_20200525073649704.jpg
11f6c6315245c99854fbd9a8dfb58a19_demo__uid_s_3534335585__uid_e_video_20200525073659759.jpg
11f6c6315245c99854fbd9a8dfb58a19_demo__uid_s_3534335585__uid_e_video_20200525073709783.jpg
11f6c6315245c99854fbd9a8dfb58a19_demo__uid_s_3534335585__uid_e_video_20200525073719829.jpg
/*省略*/
2.PCにダウンロードしてファイルを開いてみます。
※画像は一部隠しています。
11f6c6315245c99854fbd9a8dfb58a19_demo_uid_s_2310497544_uid_e_video_20200525073629678.jpg

11f6c6315245c99854fbd9a8dfb58a19_demo_uid_s_3534335585_uid_e_video_20200525073729854.jpg

映像の確認
1.クラウドストレージ(S3)に接続して確認します。
Individualモードの通り、uidごとに音声、映像ファイルが作成されています。
S3Storage
533abda706437c0b551deab494ca088d_demo__uid_s_2310497544__uid_e_audio.m3u8
533abda706437c0b551deab494ca088d_demo__uid_s_2310497544__uid_e_audio_20200525073525555.ts
/*省略*/
533abda706437c0b551deab494ca088d_demo__uid_s_2310497544__uid_e_video.m3u8
533abda706437c0b551deab494ca088d_demo__uid_s_2310497544__uid_e_video_20200525073525626.ts
/*省略*/
533abda706437c0b551deab494ca088d_demo__uid_s_3534335585__uid_e_audio.m3u8
533abda706437c0b551deab494ca088d_demo__uid_s_3534335585__uid_e_audio_20200525073538535.ts
/*省略*/
533abda706437c0b551deab494ca088d_demo__uid_s_3534335585__uid_e_video.m3u8
533abda706437c0b551deab494ca088d_demo__uid_s_3534335585__uid_e_video_20200525073538700.ts
/*省略*/
- 録画ファイルについては、この後、マージ処理でmp4ファイルに結合するなどし、用途に応じた映像に変換していきます。
- 本記事では内容は省略いたしますが、
Individualモードの録画、マージ処理、再生については、下記の記事で記載しておりますのでご参照ください。
agora.io Cloud Recording SDK 録画モード(Individual/Composite)の違い
Cloud Recording SDKのスクリーンショットの取得と確認ができました。
Agoraに関するお問い合わせ
03-6845-0775
受付時間:平日10:00〜18:00