このトピックでは、Intelligent Media Management (IMM) のメディアトランスコーディング API オペレーションを使用して、動画をアニメーション画像に変換する方法について説明します。
概要
動画からアニメーション画像への変換は、動画ファイルを GIF や WebP などのアニメーション画像フォーマットに変換するプロセスです。これにより、ウェブサイトやソーシャルメディアでの共有や埋め込みが容易になります。

利用シーン
-
ソーシャルメディアでの共有:アニメーション画像を使用すると、ユーザーは短いビデオクリップをソーシャルプラットフォームで共有し、感情、ユーモラスな瞬間、または重要な情報を表現できます。
-
オンラインミーム:動画をアニメーション画像に変換して、オンラインでの会話を盛り上げる、楽しくてユーモラスなミームを作成します。
-
チュートリアルとデモ:教育やデモンストレーションでアニメーション画像を使用して、ソフトウェアの操作やステップバイステップの手順を示し、視聴者が複雑な概念やプロシージャを迅速に理解するのに役立ちます。
-
ライブストリームとイベントリプレイ:ゲーム、イベント、またはライブストリーム中に、アニメーション画像を使用してエキサイティングな瞬間をすばやく切り取って視聴者と共有し、エンゲージメントを高めます。
サポートされている音声・動画フォーマット
カテゴリ | フォーマット |
音声 | AAC、MP3、WAV、FLAC、WMA、AC3、OPUS などのすべての主要なフォーマット。 |
動画 | MP4、MPEG-TS、MKV、MOV、AVI、FLV、M3U8、WebM、WMV、RM、VOB などのすべての主要なフォーマット。 |
使用方法
前提条件
AccessKey を作成します。 詳細については、「AccessKey の作成」をご参照ください。
Object Storage Service (OSS) を有効化し、バケットを作成します。 詳細については、「バケットの作成」をご参照ください。
IMM を有効化します。 詳細については、「IMM の有効化」をご参照ください。
IMM コンソールでプロジェクトを作成します。 詳細については、「プロジェクトの作成」をご参照ください。
説明API オペレーションを呼び出してプロジェクトを作成することもできます。 詳細については、「プロジェクトの作成」をご参照ください。
ListProjects オペレーションを呼び出して、指定したリージョンで作成されたすべてのプロジェクトを一覧表示できます。
ステップ 1:ファイルのアップロード
OSS コンソールを使用して、メディアファイルを IMM プロジェクトと同じリージョン内のバケットにアップロードします。
アップロードページで、[ファイル ACL] をデフォルト値の [バケットを継承] のままにし、[ファイルをスキャン] をクリックしてアップロードするメディアファイルを選択します。
ステップ 2:IMM を使用した動画からアニメーション画像への変換
Create Media Transcoding Job API を呼び出して、動画からアニメーション画像への変換ジョブを作成します。
課金
動画からアニメーション画像への変換中、OSS と IMM の両方から料金が発生します。
-
OSS の課金:料金詳細については、「 OSS 料金」をご参照ください。
API
課金項目
説明
GetObject
GET リクエスト
成功したリクエストの数に基づいて課金されます。
低頻度アクセスデータ取得量
取得したデータが低頻度アクセスストレージクラスに保存されている場合、取得したデータの量に基づいて課金されます。
アーカイブオブジェクトのリアルタイムデータ取得容量
アーカイブ直接読み取りが有効になっているバケットからアーカイブオブジェクトを読み取る場合、取得したデータの量に基づいて課金されます。
転送アクセラレーション
転送アクセラレーションが有効になっており、アクセラレーションエンドポイントを使用してバケットにアクセスする場合、転送されたデータ量に基づいて課金されます。
PutObject
PUT リクエスト
成功したリクエストの数に基づいて課金されます。
ストレージ料金
オブジェクトストレージのストレージクラス、サイズ、および期間に基づいて課金されます。
HeadObject
GET リクエスト
成功したリクエストの数に基づいて課金されます。
-
IMM については、料金詳細について「IMM の課金項目」をご参照ください。
重要2025 年 7 月 28 日 11:00 (UTC+08:00) より、IMM の動画からアニメーション画像への変換サービスは無料から有料モデルに変更されます。 詳細については、「 IMM 課金調整のお知らせ」をご参照ください。
API
課金項目
説明
CreateMediaConvertTask
MediaAnimation
出力されるアニメーション画像のフレーム数に基づいて課金されます。
パラメーター例
以下の例では、IMM プロジェクト test-project とファイル oss://test-bucket/video-demo/brewing.mov を使用して、動画からアニメーション画像への変換を行います。
ApsaraVideo Media Processing の機能と使用方法の詳細については、「メディアトランスコーディング」をご参照ください。
-
OpenAPI Explorer でメディアトランスコーディング API オペレーションを使用して動画ファイルを処理できます。 SDK コード例をご参照ください。
-
動画からアニメーション画像への変換では、`Target.URI` および `Target.Container` パラメーターを設定しないでください。
-
GIF アニメーション画像は品質が低くなります。 より良い品質を得るには WebP を使用しますが、これによりファイルサイズが大きくなることにご注意ください。
-
`FrameRate` は 10~15 に設定することを推奨します。 設定しない場合、デフォルトで 1 を `Interval` で割った値になります。
動画全体からアニメーションサムネイルを生成
トランスコーディング設定
-
アニメーション画像フォーマット:WebP
-
フレームサンプリング間隔:1 秒
-
アニメーション画像フレームレート:15
-
アニメーション画像解像度:ソース動画の解像度の半分
-
スケーリング方法:黒枠を保持せずにスケーリングします。 スケーリング方法の詳細については、「スケーリング方法」をご参照ください。
-
出力ファイルパス:
oss://test-bucket/video-demo/animation.webp -
トランスコーディング完了通知:MNS メッセージを MNS トピック「test-mns-topic」に送信します
SDK の例については、「OpenAPI Explorer」をご参照ください。 サンプルパラメーターは事前に入力されています。 テストする前に必要に応じて変更してください。
リクエストパラメーター
{
"ProjectName": "test-project",
"Notification": {
"MNS": {
"TopicName": "test-mns-topic"
}
},
"Sources": [
{
"URI": "oss://test-bucket/video-demo/brewing.mov"
}
],
"Targets": [
{
"Image": {
"Animations": [
{
"Format": "webp",
"FrameRate": 15,
"Height": 0.5,
"Interval": 1,
"ScaleType": "fit",
"URI": "oss://test-bucket/video-demo/animation.{autoext}",
"Width": 0.5
}
]
}
}
]
}動画の 5 秒目から 30 秒目まででアニメーションサムネイルを生成
トランスコーディング設定
アニメーション画像フォーマット:WebP
フレームサンプリング開始時刻:5 秒目
フレームサンプリング期間:25 秒
フレームサンプリング間隔:1 秒
アニメーション画像フレームレート:15
アニメーション画像解像度:ソース動画の解像度の半分
スケーリング方法:黒枠を保持せずにスケーリングします。 スケーリング方法の詳細については、「スケーリング方法」をご参照ください。
出力ファイルパス:
oss://test-bucket/video-demo/animation.webpトランスコーディング完了通知:MNS メッセージを MNS トピック「test-mns-topic」に送信します
SDK の例については、「OpenAPI Explorer」をご参照ください。 サンプルパラメーターは事前に入力されています。 テストする前に必要に応じて変更してください。
リクエストパラメーター
{
"ProjectName": "test-project",
"Notification": {
"MNS": {
"TopicName": "test-mns-topic"
}
},
"Sources": [
{
"Duration": 25,
"StartTime": 5,
"URI": "oss://test-bucket/video-demo/brewing.mov"
}
],
"Targets": [
{
"Image": {
"Animations": [
{
"Format": "webp",
"FrameRate": 15,
"Height": 0.5,
"Interval": 1,
"ScaleType": "fit",
"URI": "oss://test-bucket/video-demo/animation.{autoext}",
"Width": 0.5
}
]
}
}
]
}