このトピックでは、Intelligent Media Management (IMM) の CreateMediaConvertTask 操作を使用して、動画から字幕を抽出する方法について説明します。
機能の説明
動画の字幕抽出は、動画ファイルから字幕情報を分離して、アクセスや編集のために別のテキストファイルにする技術的な機能です。この機能は、多言語サポート、バリアフリー視聴、字幕作成に不可欠です。

シナリオ
多言語サポート: 字幕抽出は、多言語字幕の制作をサポートし、多様な言語の視聴者が動画コンテンツを理解しやすくします。
翻訳とローカライズ: 字幕を抽出することで、翻訳者は動画からテキスト情報を迅速に取得し、それを翻訳して、特定の地域の文化的および言語的習慣に準拠したローカライズ版を作成できます。
吹き替えと音声認識: 字幕抽出は、声優にとって重要なテキストの基盤を提供し、抽出された字幕に基づいて音声を録音することができます。音声認識は、字幕テキストを使用してトレーニングおよび最適化できます。
動画編集と制作: 動画編集者は、音声コンテンツの字幕を抽出して整理し、テキストコンテンツを編集、校正、改善できます。これにより、最終的なプロダクトの品質が向上します。
制限事項
動画の字幕抽出は、テキスト字幕とグラフィカル字幕のみをサポートし、動画フレームに埋め込まれている焼き付け字幕はサポートしていません。サポートが必要な場合は、お問い合わせください。
手順
前提条件
AccessKey ペアが作成され、取得されていること。詳細については、「AccessKey ペアの作成」をご参照ください。
Object Storage Service (OSS) が有効化され、バケットが作成されていること。詳細については、「バケットの作成」をご参照ください。
IMM が有効化されていること。詳細については、「IMM の有効化」をご参照ください。
IMM コンソールでプロジェクトが作成されていること。詳細については、「プロジェクトの作成」をご参照ください。
説明CreateProject 操作を呼び出してプロジェクトを作成できます。詳細については、「CreateProject」をご参照ください。
ListProjects 操作を呼び出して、リージョン内のすべてのプロジェクトの情報を一覧表示できます。
ステップ 1: ファイルのアップロード
OSS コンソールを使用して、IMM プロジェクトと同じリージョンにあるバケットにメディアファイルをアップロードします。

ステップ 2: IMM を使用して動画から字幕を抽出する
CreateMediaConvertTask 操作を呼び出して、動画の字幕抽出タスクを作成します。
抽出プロセスには、次のフェーズが含まれます。
字幕フォーマットの識別: 動画ファイルに埋め込まれた字幕のフォーマットを識別します。これには、SubRip Subtitle (SRT)、Advanced SubStation Alpha (ASS)、Web Video Text Tracks (WebVTT)、および埋め込み字幕ストリームフォーマットが含まれます。
字幕データの抽出: 動画ファイルから字幕テキストとそのタイムスタンプを抽出します。このフェーズでは、話者名、タイムスタンプ、時間フォーマットなど、すべての字幕コンテンツが正確にキャプチャされることが保証されます。
テキスト処理: 抽出された字幕テキストに必要な処理または編集を実行します。このフェーズでは、システムは冗長な情報を削除し、フォーマットを調整し、言語を翻訳し、スペルと文法の校正を実行する場合があります。
出力と保存: 処理された字幕テキストを、SRT や ASS などの指定されたフォーマットで保存し、後続の操作での使用、編集、または動画プラットフォームへのアップロードを容易にします。
パラメーターの例
次の例では、test-project という名前の IMM プロジェクトが使用され、ファイル名が oss://test-bucket/video-demo/test.mp4 の動画から字幕が抽出されます。
メディア処理の機能と使用方法の詳細については、「メディアトランスコーディング」をご参照ください。
OpenAPI Explorer を介してメディアトランスコーディングインターフェイスを使用し、SDK コードを参照して、動画ファイルを処理できます。
動画の字幕を抽出するには、Target.URI および Target.Container パラメーターを設定しないでください。
字幕出力 URI を "oss://test-bucket/objectPrefix-{streamindex}.{autoext}" に設定することをお勧めします。streamindex 変数を指定しない場合、字幕が互いに上書きされる可能性があります。
動画からすべての字幕を抽出し、WebVTT フォーマットに変換する
字幕フォーマット: WebVTT。
字幕ファイルの出力パス:
oss://test-bucket/video-demo/subtitle-%d.vttトランスコーディング完了通知: Simple Message Queue (旧称:MNS) (SMQ) メッセージ。「test-mns-topic」という名前の SMQ Topic に送信されます。
サンプル SDK の詳細については、OpenAPI Explorer にアクセスしてください。この例のパラメーターは OpenAPI Explorer で自動的に設定されます。コードをデバッグする前に、必要に応じてパラメーターを変更してください。
リクエストパラメーター
{
"ProjectName": "test-project",
"Notification": {
"MNS": {
"TopicName": "test-mns-topic"
}
},
"Sources": [
{
"URI": "oss://test-bucket/video-demo/test.mp4"
}
],
"Targets": [
{
"Subtitle": {
"ExtractSubtitle": {
"Format": "webvtt",
"URI": "oss://test-bucket/video-demo/subtitle-{streamindex}.{autoext}"
}
}
}
]
}動画からすべての字幕を抽出し、SRT フォーマットに変換する
字幕フォーマット: SRT。
字幕ファイルの出力パス:
oss://test-bucket/video-demo/subtitle-%d.srtトランスコーディング完了通知: SMQ メッセージ。「test-mns-topic」という名前の SMQ Topic に送信されます。
サンプル SDK の詳細については、OpenAPI Explorer にアクセスしてください。この例のパラメーターは OpenAPI Explorer で自動的に設定されます。コードをデバッグする前に、必要に応じてパラメーターを変更してください。
リクエストパラメーター
{
"ProjectName": "test-project",
"Notification": {
"MNS": {
"TopicName": "test-mns-topic"
}
},
"Sources": [
{
"URI": "oss://test-bucket/video-demo/test.mp4"
}
],
"Targets": [
{
"Subtitle": {
"ExtractSubtitle": {
"Format": "srt",
"URI": "oss://test-bucket/video-demo/subtitle-{streamindex}.{autoext}"
}
}
}
]
}課金
動画の字幕抽出中に、IMM は次の課金項目を生成します。料金の詳細については、「IMM の課金項目」をご参照ください。OSS と IMM は、次の課金項目を生成します。
OSS: 料金の詳細については、「OSS の料金」をご参照ください。
API
課金項目
説明
GetObject
GET リクエスト
成功したリクエストの数に基づいてリクエスト料金が課金されます。
低頻度アクセスデータ取得容量
IA オブジェクトが取得された場合、取得された IA データのサイズに基づいて IA データ取得料金が課金されます。
アーカイブデータ直接読み取り取得容量
リアルタイムアクセスが有効になっているバケット内のアーカイブオブジェクトが取得された場合、取得されたアーカイブオブジェクトのサイズに基づいてアーカイブデータ取得料金が課金されます。
転送アクセラレーション
転送アクセラレーションを有効にし、アクセラレーションエンドポイントを使用してバケットにアクセスする場合、データサイズに基づいて転送アクセラレーション料金が課金されます。
PutObject
PUT リクエスト
成功したリクエストの数に基づいてリクエスト料金が課金されます。
ストレージ料金
オブジェクトのストレージタイプ、サイズ、およびストレージ期間に基づいてストレージ料金が課金されます。
HeadObject
GET リクエスト
成功したリクエストの数に基づいてリクエスト料金が課金されます。
IMM: 料金の詳細については、「IMM の課金項目」をご参照ください。
重要2025 年 7 月 28 日 11:00 (UTC + 08:00) より、IMM の動画字幕抽出サービスは無料モデルから有料モデルにアップグレードされます。詳細については、「IMM 課金調整のお知らせ」をご参照ください。
API
課金項目
説明
CreateMediaConvertTask
ExtractSubtitleText
正常に抽出された字幕ストリームの数に基づいて、テキスト字幕抽出のリクエスト料金が課金されます。
CreateMediaConvertTask
ExtractSubtitleImage
正常に抽出された字幕ストリームの合計時間に基づいて、画像字幕抽出のリクエスト料金が課金されます。