すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:ビデオスナップショット

最終更新日:Aug 28, 2024

ビデオをObject Storage Service (OSS) バケットにアップロードし、ビデオスナップショット機能を使用して、ビデオからビデオサムネイル、キーフレーム、または特定のフレームを抽出できます。

使用上の注意

  • ビデオからスナップショットをキャプチャすると、キャプチャされたスナップショットの数に基づいて課金されます。 詳細については、「データ処理料金」をご参照ください。

  • OSSは、H.264およびH.265形式のビデオからのみスナップショットをキャプチャできます。

  • デフォルトでは、キャプチャしたスナップショットは自動的に保存されません。 キャプチャしたスナップショットをローカルストレージデバイスに手動でダウンロードする必要があります。

パラメーター

カテゴリ: ビデオ

処置: snapshot

パラメーター

説明

有効値

t

スナップショットをキャプチャする時点。 値がビデオの長さを超える場合、最後のフレームが返されます。

説明

ビデオのサムネイルをキャプチャする場合は、tを0に設定します。

[0, ビデオ再生時間]

単位: ミリ秒

w

キャプチャするスナップショットの幅。 このパラメーターを0に設定すると、キャプチャされたスナップショットの幅は、キャプチャされたスナップショットの高さとビデオの高さの比率に基づいて計算されます。

[0、ビデオ幅]

単位: ピクセル

h

キャプチャするスナップショットの高さ。 このパラメーターを0に設定すると、キャプチャされたスナップショットの高さは、キャプチャされたスナップショットの幅とビデオの幅の比率に基づいて計算されます。 wとhの両方が0に設定されている場合、スナップショットの幅と高さはビデオの幅と高さと同じになります。

[0、ビデオの高さ]

単位: ピクセル

m

スナップショットのキャプチャに使用されるモード。 このパラメーターを指定しない場合、スナップショットはデフォルトモードでキャプチャされます。 つまり、動画の指定された時点のスナップショットがキャプチャされます。 このパラメーターがfastに設定されている場合、指定された時点より前の最新のキーフレームがキャプチャされます。

速い

f

返されるスナップショットの形式。

jpgpng

ar

キャプチャされたスナップショットを自動的に回転するために使用するモード。

  • auto: キャプチャされたスナップショットがビデオ情報に基づいて自動的に回転されるように指定します。

  • h: 高さが幅よりも大きいモードに基づいて、キャプチャされたスナップショットが自動的に回転されるように指定します。

  • w: 幅が高さよりも大きいモードに基づいて、キャプチャされたスナップショットが自動的に回転されるように指定します。

このセクションでは、中国 (杭州) リージョンのoss-console-img-demo-cn-hangzhouバケットに保存されているビデオからスナップショットをキャプチャする方法の例を示します。 ビデオは次のURLでホストされます。

https://oss-console-img-demo-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/video.mp4

署名付きURLを生成してビデオスナップショットをキャプチャする

OSS SDKを使用して署名付きURLを生成し、ビデオスナップショットをキャプチャできます。 次のサンプルコードは、OSS SDK for Javaを使用して署名付きURLを生成し、ビデオスナップショットをキャプチャする方法の例を示しています。

// In this example, the endpoint of the China (Hangzhou) region is used. Specify your actual endpoint. 
String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
// We recommend that you do not save access credentials in the project code. Otherwise, access credentials may be leaked. As a result, the security of all resources in your account is compromised. In this example, access credentials are obtained from environment variables. Before you run the sample code, make sure that the environment variables are configured. 
EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
// Specify the name of the bucket in which the video object is stored. Example: examplebucket. 
String bucketName = "examplebucket";
// Specify the full path of the video object. If the video object is not stored in the root directory of the bucket, you must provide the full path of the object. Example: examplefolder/videotest.mp4. 
String objectName = "examplefolder/videotest.mp4";
// Create an OSSClient instance. 
OSS ossClient = new OSSClientBuilder().build(endpoint, credentialsProvider);
// Capture the snapshot right at the 17th second of the video. Export the captured snapshot as a JPG image whose width is 800 pixels and height is 600 pixels. 
String style = "video/snapshot,t_17000,f_jpg,w_800,h_600";
// Set the validity period of the URL to 10 minutes. 
Date expiration = new Date(new Date().getTime() + 1000 * 60 * 10 );
GeneratePresignedUrlRequest req = new GeneratePresignedUrlRequest(bucketName, objectName, HttpMethod.GET);
req.setExpiration(expiration);
req.setProcess(style);
URL signedUrl = ossClient.generatePresignedUrl(req);
System.out.println(signedUrl);
// Shut down the OSSClient instance. 
ossClient.shutdown();

ビデオスナップショットをキャプチャするために署名付きURLを生成するために使用される方法は、Image Processing (IMG) を使用して画像を処理するために署名付きURLを生成するために使用される方法と同様です。 次のOSS SDKを使用して署名付きURLを生成し、ビデオスナップショットをキャプチャするには、コード内のIMG操作をスナップショット操作に置き換えます。

よくある質問

オブジェクトのURLにパラメータを直接追加して、ACLがプライベートなビデオオブジェクトを処理できますか?

いいえ、できません。 処理するビデオオブジェクトのACLが非公開の場合、OSS SDKを使用して、オブジェクトの署名付きURLにビデオ処理操作を追加できます。 オブジェクトのURLにパラメーターを直接追加して、ACLが非公開のビデオオブジェクトを処理することはできません。

OSSに保存されているビデオオブジェクトの幅と高さを確認するにはどうすればよいですか?

ビデオ情報抽出機能を使用して、ビデオの幅と高さを取得できます。

キャプチャされたビデオスナップショットが歪んでいるのはなぜですか?

スナップショットをキャプチャするビデオは、BT.2020色域を使用します。 ビデオスナップショット機能は、BT.2020色域を使用するビデオをサポートしていません。