スクリーンキャプチャはビデオの特定の位置の映像を切り取り、画像を生成するプロセスであり、オフラインタスクです。VODでは次のタイプのスクリーンキャプチャを提供しています。
スクリーンキャプチャ機能を使用すれば、次のようなユースケースに対応できます。
スクリーンキャプチャの目標仕様。スクリーンキャプチャのファイル形式、スクリーンキャプチャの幅と高さなどのパラメータが含まれます。VODではスクリーンキャプチャテンプレートを使用してスクリーンキャプチャのパラメータグループを表します。スクリーンキャプチャテンプレートによって、次のスクリーンキャプチャ関連パラメータを指定することができます。
タイムポイントスクリーンキャプチャテンプレートは、「指定タイムポイントスクリーンキャプチャ」と「1枚の画像を切り取りカバー画像を作成」の2種類のタスクに用います。
パラメータ | 説明 |
---|---|
形式(Format) | スクリーンキャプチャのファイル出力形式。現在はJPGのみをサポートしています。 |
幅(Width) | スクリーンキャプチャの幅。範囲は128px~4096px。 |
高さ(Height) | スクリーンキャプチャの高さ。範囲は128px~4096px。 |
塗りつぶしタイプ(FillType) | スクリーンキャプチャの幅と高さの比率とオリジナルビデオの幅と高さの比率が異なるときに、スクリーンキャプチャの処理方式が、「塗りつぶし」になります。一般的な塗りつぶしタイプには次のようなものがあります。 |
一般的な仕様を対象に、VODでは プリセットのタイムポイントスクリーンキャプチャテンプレートを提供しています。またコンソールでも、カスタマイズしたスクリーンキャプチャテンプレートを作成し、管理することができます。具体的な操作は、 テンプレート設定をご参照ください。
サンプリングスクリーンキャプチャテンプレートは、「サンプリングスクリーンキャプチャ」のタスクに使用します。
パラメータ | 説明 |
---|---|
形式(Format) | スクリーンキャプチャのファイル出力形式。現在はJPGのみをサポートしています。 |
幅(Width) | スクリーンキャプチャの幅。範囲は128px~4096px。 |
高さ(Height) | スクリーンキャプチャの高さ。範囲は128px~4096px。 |
サンプリング方式(SampleType) | サンプリング方式は2種類に分かれます。 |
サンプリング間隔(Interval) | サンプリング間隔の長さ: |
塗りつぶしタイプ(FillType) | スクリーンキャプチャの幅と高さの比率とオリジナルビデオの幅と高さの比率が異なるときに、スクリーンキャプチャの処理方式が、「塗りつぶし」になります。一般的な塗りつぶしタイプには次のようなものがあります。 |
一般的な仕様を対象に、VODでは プリセットのサンプリングスクリーンキャプチャテンプレートを提供しています。またコンソールでも、カスタマイズしたスクリーンキャプチャテンプレートを作成し、管理することができます。具体的な操作は、 テンプレート設定をご参照ください。
スプライトイメージテンプレートは、「スプライトイメージのスクリーンキャプチャ」タスクに使用します。
パラメータ | 説明 |
---|---|
形式(Format) | スプライトイメージのファイル出力形式。現在はJPGのみをサポートしています。 |
小さい画像の幅(Width) | スプライトイメージの中の小さい画像の幅。 |
小さい画像の高さ(Height) | スプライトイメージの中の小さい画像の高さ。 |
小さい画像の行数(Rows) | 1枚の大きな図の中にある小さい図の行数。 |
小さい画像の列数(Columns) | 1枚の大きな図の中にある小さい画像の列数。 |
サンプリング方式(SampleType) | 小さい画像のサンプリング方式。現在は時間間隔によるサンプリングのみをサポートしています。 |
サンプリング間隔(Interval) | どの位の間隔で1枚の小さい画像をサンプリングするかのサンプリング間隔。 |
注意:
- Width × Columnsは128px~4096pxの間にする必要があります(大きい図の幅が128px~4096pxの間)。
- Height × Rowsは128px~4096pxの間にする必要があります(大きい図の高さが128px~4096pxの間)。
一般的な仕様を対象に、VODでは プリセットのスプライトイメージテンプレートを提供しています。またコンソールでも、カスタマイズしたスクリーンキャプチャテンプレートを作成し、管理することができます。具体的な操作は、 テンプレート設定をご参照ください。
スクリーンキャプチャタスクの開始には、「サーバーAPIから直接開始」、「コンソールから直接開始」、「アップロード時に実行したいタスクを指定」の3種類の方法があります。詳細内容は、ビデオ処理の タスクの開始をご参照ください。
以下は、各種方式のスクリーンキャプチャタスク開始についての説明です。
MediaProcessTask.SnapshotByTimeOffsetTaskSet
パラメータで スクリーンキャプチャテンプレート のテンプレートIDを指定します。procedure
パラメータでこのタスクフローを指定します。procedure
でこのタスクフローを指定します。スクリーンキャプチャタスクの開始後、非同期の結果通知 待ちおよび同期の タスク確認 の2種類の方式でスクリーンキャプチャタスクの実行結果を取得できます。以下は、スクリーンキャプチャタスクの開始後、通常のコールバック方式での結果通知の例となります(値がnullのフィールドは省略)。
{
"EventType":"ProcedureStateChanged",
"ProcedureStateChangeEvent":{
"TaskId":"1256768367-Procedure-2e1af2456351812be963e309cc133403t0",
"Status":"FINISH",
"FileId":"5285890784246869930",
"FileName":"アニマルワールド",
"FileUrl":"http://1256768367.vod2.myqcloud.com/xxx/xxx/AtUCmy6gmIYA.mp4",
"MetaData":{
"AudioDuration":60,
"AudioStreamSet":[
{
"Bitrate":383854,
"Codec":"aac",
"SamplingRate":48000
}
],
"Bitrate":1021028,
"Container":"mov,mp4,m4a,3gp,3g2,mj2",
"Duration":60,
"Height":480,
"Rotate":0,
"Size":7700180,
"VideoDuration":60,
"VideoStreamSet":[
{
"Bitrate":637174,
"Codec":"h264",
"Fps":23,
"Height":480,
"Width":640
}
],
"Width":640
},
"MediaProcessResultSet":[
{
"Type":"SnapshotByTimeOffset",
"SnapshotByTimeOffsetTask":{
"Status":"SUCCESS",
"ErrCode":0,
"Message":"",
"Input":{
"Definition":10,
"Definition":[3, 6, 9]
},
"Output":{
"Definition":10,
"PicInfoSet": [
{
"TimeOffset":3,
"Url":"http://1256768367.vod2.myqcloud.com/xxx/xxx/xxx1.jpg"
},
{
"TimeOffset":6,
"Url":"http://1256768367.vod2.myqcloud.com/xxx/xxx/xxx2.jpg"
},
{
"TimeOffset":9,
"Url":"http://1256768367.vod2.myqcloud.com/xxx/xxx/xxx3.jpg"
}
]
}
}
},
{
"Type":"SampleSnapshot",
"SampleSnapshotTask":{
"Status":"SUCCESS",
"ErrCode":0,
"Message":"",
"Input":{
"Definition":10
},
"Output":{
"Definition":10,
"SampleType":"Percent",
"Interval": 10,
"WaterMarkDefinition": [],
"ImageUrlSet":[
"http://1256768367.vod2.myqcloud.com/xxx/xxx/xxx1.jpg",
"http://1256768367.vod2.myqcloud.com/xxx/xxx/xxx2.jpg",
"http://1256768367.vod2.myqcloud.com/xxx/xxx/xxx3.jpg",
"http://1256768367.vod2.myqcloud.com/xxx/xxx/xxx4.jpg",
"http://1256768367.vod2.myqcloud.com/xxx/xxx/xxx5.jpg",
"http://1256768367.vod2.myqcloud.com/xxx/xxx/xxx6.jpg",
"http://1256768367.vod2.myqcloud.com/xxx/xxx/xxx7.jpg",
"http://1256768367.vod2.myqcloud.com/xxx/xxx/xxx8.jpg",
"http://1256768367.vod2.myqcloud.com/xxx/xxx/xxx9.jpg"
]
}
}
},
{
"Type":"ImageSprites",
"ImageSpriteTask":{
"Status":"SUCCESS",
"ErrCode":0,
"Message":"",
"Input":{
"Definition":10
},
"Output":{
"Definition":10,
"Height":80,
"Width":142,
"TotalCount":1,
"ImageUrlSet":[
"http://1256768367.vod2.myqcloud.com/xxx/xxx/xxx1.jpg"
],
"WebVttUrl":"http://1256768367.vod2.myqcloud.com/xxx/xxx/xxx.vtt"
}
}
},
{
"Type":"CoverBySnapshot",
"CoverBySnapshotTask":{
"Status":"SUCCESS",
"ErrCode":0,
"Message":"",
"Input":{
"Definition":10,
"PositionType":"Time",
"PositionValue":0
},
"Output":{
"CoverUrl":"http://1256768367.vod2.myqcloud.com/xxx/xxx/xxx.jpg"
}
}
}
],
"TasksPriority":0,
"TasksNotifyMode":""
}
}
コールバックの結果の中で、ProcedureStateChangeEvent.MediaProcessResultSet
にType
がSnapshotByTimeOffset
、SampleSnapshot
、ImageSprites
、CoverBySnapshot
の結果があり、それぞれタイムポイントスクリーンキャプチャ、サンプリングスクリーンキャプチャ、スプライトイメージ切り取り、1枚の画像を切り取りカバー画像を作成の数種類等のスクリーンキャプチャタスクを表しています。
この記事はお役に立ちましたか?