お問い合わせ ・資料請求

agora.io Cloud Recording SDK スクリーンショットの取得方法

  • 入門
  • screenshot
  • recording
  • Agora.io
  • RestfulAPI

概要

    この記事では、Cloud Recording SDKの
  • スクリーンショットの取得方法
  • についてご説明いたします。

なお、Cloud Recording SDKの関連記事も併せてご参照ください。

サンプル

  • 本記事で利用するサンプルはこちらです。

実装

  • Cloud Recording SDKにてスクリーンショットを取得するには、
    RestfulAPIのstartsnapshotConfigを設定します。
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回コール)

動作確認

映像とスクリーンショットの両方を取得できるよう、動作確認します。

前準備

下記環境をご準備ください。

  • APPID
    ※コンソールより発行
  • サンプルコード
  • 外部ストレージ環境(S3)
    ※利用可能な外部ストレージについては公式サイトを参照
  • アプリケーションサーバ環境(XAMPP)
  • デモアプリ(Web)

録画実行&停止の確認

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 SDK イメージ
Agora SDK

大規模・安価・すぐに使える
ライブ配信・ビデオ通話・音声通話SDK

 

Agoraに関するお問い合わせ

03-4405-2688

受付時間:平日10:00〜18:00

先頭へ戻る