前提条件
Object Storage Service (OSS) が有効化され、OSS バケットが作成されていること。OSS バケットは、ライブストリーミング中にキャプチャされたスナップショットを保存するために使用されます。詳細については、「OSS を有効化する」および「バケットを作成する」をご参照ください。
重要
バケットは、ストリーミングドメインのライブセンターと同じリージョンに存在する必要があります。
スナップショットルール
スナップショットルールは、取り込みストリームの AppName
パラメーターに基づいて設定されます。
ApsaraVideo Live は、上書きモードとリアルタイムモードでのスナップショットのキャプチャをサポートしています。
2 つのモードを同時に選択できます。少なくとも 1 つのモードを選択する必要があります。
ApsaraVideo Live は、JPG 形式でのみスナップショットのキャプチャをサポートしています。
スナップショット機能を使用する
説明
新しく設定または変更されたスナップショットテンプレートは、進行中のライブストリームには反映されません。ストリームを再取り込みする必要があります。
機能の設定
スナップショット機能は、ApsaraVideo Live コンソールまたは API 操作で設定できます。
- ApsaraVideo Live コンソール にログインします。
左側のナビゲーションウィンドウで、[機能管理] > [スナップショット] を選択します。 [スナップショット]ページで、[スナップショット設定]タブをクリックします。
管理するストリーミングドメインを選択します。
追加 をクリックします。
スナップショットテンプレートを設定します。

次の表は、スナップショットテンプレートのパラメーターについて説明しています。
パラメーター | 説明 |
アプリケーション名 | アプリケーションの名前。値は、アップストリーミング URL で指定されたアプリケーション名と同じである必要があります。ドメイン名の下にあるすべてのアプリケーションのスナップショット設定を行う場合は、アスタリスク (*) を入力します。 |
スナップショット間隔 | 連続する 2 つのスナップショットの間隔。単位:秒。有効値:5 ~ 3600。 |
ストレージの場所 | OSS 内のスナップショットの保存場所。 OSS バケットは、ストリーミングドメインのライブセンターと同じリージョンに存在する必要があります。 |
ストレージモード | 2 つのストレージモードが利用可能です。同時に選択できます。 2 つのモードを選択した場合、スナップショットは両方の方法でキャプチャされます。 |
[OK] をクリックします。
DefaultProfile profile = DefaultProfile.getProfile("<regionId>", "<ALIBABA_CLOUD_ACCESS_KEY_ID>", "<ALIBABA_CLOUD_ACCESS_KEY_SECRET>");
IAcsClient client = new DefaultAcsClient(profile);
AddLiveAppSnapshotConfigRequest addLiveAppSnapshotConfigRequest = new AddLiveAppSnapshotConfigRequest();
addLiveAppSnapshotConfigRequest.setDomainName("<DomainName>");
addLiveAppSnapshotConfigRequest.setAppName("<AppName>");
addLiveAppSnapshotConfigRequest.setTimeInterval(5);
addLiveAppSnapshotConfigRequest.setOssEndpoint("<Endpoint>");
addLiveAppSnapshotConfigRequest.setOssBucket("<BucketName>");
addLiveAppSnapshotConfigRequest.setOverwriteOssObject("<{AppName}/{StreamName}.jpg>");
addLiveAppSnapshotConfigRequest.setSequenceOssObject("<{AppName}/{StreamName}/{UnixTimestamp}.jpg>");
try {
AddLiveAppSnapshotConfigResponse addLiveAppSnapshotConfigResponse = client.getAcsResponse(addLiveAppSnapshotConfigRequest);
System.out.println(addLiveAppSnapshotConfigResponse.getRequestId());
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
e.printStackTrace();
}
説明
キャプチャされたスナップショットは、BucketName パラメーターで指定された OSS バケットに保存されます。上書きモードとリアルタイムモードのストレージパスを同時に設定すると、スナップショットは両方の方法で生成されます。上書きモードでキャプチャされたスナップショットのパスは <{AppName}/{StreamName}.jpg> です。リアルタイムモードでキャプチャされたスナップショットのパスは <{AppName}/{StreamName}/{UnixTimestamp}.jpg> です。
上書きモードとリアルタイムモードの違いについては、このトピックの「スナップショットルール」セクションを参照してください。
API パラメーターの詳細については、「AddLiveAppSnapshotConfig」をご参照ください。
スナップショットの管理
スナップショットを表示する
キャプチャされたスナップショットを表示するには、ApsaraVideo Live コンソールを使用するか、API 操作を呼び出すか、OSS バケット内のオブジェクトを一覧表示します。
- ApsaraVideo Live コンソール にログインします。
左側のナビゲーションウィンドウで、[機能管理] > [スナップショット] を選択します。 [スナップショット]ページで、[スナップショット管理]タブをクリックします。
ストリーミングドメインを選択します。表示されるページで、日付を指定し、アプリケーション名とストリーム名を入力します。
[検索] をクリックして、指定した日付にキャプチャされたスナップショットを表示します。スナップショットが表示されない場合は、OSS バケットのアクセス制御リスト (ACL) が パブリック読み取りに設定されているかどうかを確認します。詳細については、「バケット ACL を設定する」をご参照ください。
スナップショットの上にポインターを移動して、スナップショットを拡大するか、URL をコピーします。
重要
1 年以内にキャプチャされたスナップショットのみをクエリできます。クエリする期間は 24 時間を超えることはできません。
API を呼び出して、リアルタイムモードでキャプチャされたスナップショットのみをクエリできます。上書きモードでキャプチャされたスナップショットを表示するには、OSS バケット内のオブジェクトを一覧表示します。詳細については、「オブジェクトを一覧表示する」をご参照ください。
API はページクエリをサポートしておらず、一度に最大 100 エントリを返すことができます。デフォルトでは、10 エントリが返されます。
API パラメーターの詳細については、「DescribeLiveStreamSnapshotInfo」をご参照ください。
指定された OSS バケットに保存されているスナップショットを表示するには、OSS が提供するメソッドを使用できます。詳細については、「オブジェクトを一覧表示する」をご参照ください。
スナップショットを削除する
ApsaraVideo Live は、AppName、StreamName、OSS ストレージパスなど、スナップショットファイルに関する情報のみを保存します。ファイルは OSS に保存されます。ApsaraVideo Live からスナップショット情報を削除するときに OSS からファイルを削除するには、まず AliyunMTSVideoLifecycleRole ロールを作成し、AliyunMTSVideoLifecycleRolePolicy ポリシーをロールにアタッチする必要があります。
標準サービスロールを作成する
管理権限を持つ RAM ユーザーとして RAM コンソール にログインします。
左側のナビゲーションウィンドウで、 を選択します。
[ロール] ページで、[ロールの作成] をクリックします。

[ロールの作成] ページで、[プリンシパルタイプ] を [クラウドサービス] に設定し、[プリンシパル名] を ApsaraVideo Media Processing に設定して、[OK] をクリックします。

[ロールの作成] ダイアログボックスで、[ロール名] を AliyunMTSVideoLifecycleRole に設定し、[OK] をクリックします。
ロールの詳細ページで、[精密な権限][権限] タブの をクリックします。
次のパラメーターを設定します。
[OK] をクリックします。
ApsaraVideo Live コンソール、API 操作、または OSS でサポートされている他のメソッドを使用して、スナップショットを削除できます。
- ApsaraVideo Live コンソール にログインします。
左側のナビゲーションウィンドウで、[機能管理] > [スナップショット] を選択します。 [スナップショット]ページで、[スナップショット管理]タブをクリックします。
ストリーミングドメインを選択します。表示されるページで、日付を指定し、アプリケーション名とストリーム名を入力します。
スナップショットの上にポインターを移動し、[削除] をクリックしてスナップショットを削除します。
複数スナップショットを選択し、[一括削除] をクリックして一度に削除します。最大 200 個のスナップショットを選択できます。
重要
この API 操作では、1 年以内にリアルタイムモードでキャプチャされたスナップショットのみを削除できます。上書きモードでキャプチャされたスナップショットを削除するには、「オブジェクトを削除する」をご参照ください。
スナップショットをクエリして、対応するタイムスタンプを取得できます。詳細については、このトピックの「スナップショットを表示する」を参照してください。
API パラメーターの詳細については、「DeleteSnapshotFiles」をご参照ください。
この機能のイベントリスナーを追加して、スナップショットがキャプチャされるたびにコールバックを受信できます。これには、スナップショットに関する詳細情報が含まれます。スナップショット情報とタイムスタンプを業務システムに保存できます。これにより、タイムスタンプをクエリし、削除するスナップショットを特定できます。たとえば、指定した月数より古いスナップショットを毎日クエリして削除するスケジュールされたタスクのシステムポリシーを設定できます。詳細については、「ライブストリームスナップショットのコールバック」をご参照ください。
OSS からスナップショットを直接削除することはお勧めしません。ApsaraVideo Live からスナップショット情報を削除するときに、ファイルの削除を同期できます。業務で OSS での直接削除が必要な場合は、「オブジェクトを削除する」をご参照ください。