本ドキュメントでは、非同期タスクのタイムラインの概要を説明し、トランスコードタスクを例に、タスクステータスの解釈方法と処理時間の見積もり方法を解説します。ステータスフィールド、進捗インジケーター、およびクエリメソッドはタスクタイプによって異なる場合があります。必ず特定のプロダクトドキュメントと実際の API 応答をご参照ください。
概要
Alibaba Cloud ApsaraVideo VOD、Alibaba Cloud Intelligent Media Services、および Alibaba Cloud Media Processing は、さまざまな非同期メディア処理機能を提供しています。非同期タスクを送信すると、サービスはバックグラウンドでそれを処理し、完了時に結果を返します。
送信の成功は、サービスがタスクを受け付けたことを確認するだけであり、タスクが直ちに開始されることや、一定時間内に完了することを保証するものではありません。
非同期タスクはオフライン処理の一形態です。同期 API とは異なり、非同期タスクの完了時間は、タスクスケジューリング、タスク量の変動、タスクの複雑さ、ソースファイル特性、およびパラメーター設定など、複数の要因に影響されます。合計完了時間は、タスクが実際の処理段階に入ってからの処理時間よりも大幅に長くなる可能性があります。
非同期タスクは、時間的制約の厳しいビジネスワークフローにおけるブロッキング依存関係としては適していません。本ドキュメントの処理速度の参考値を使用して、本番環境での納品時間を見積もらないでください。
適用範囲
本ドキュメントは、Alibaba Cloud ApsaraVideo VOD、Alibaba Cloud Intelligent Media Services、および Alibaba Cloud Media Processing で非同期に開始および実行されるメディア処理タスクに適用されます。これには以下が含まれますが、これらに限定されません。
メディアトランスコードタスク
メディア編集タスク
スナップショットおよびイメージスプライトタスク
メディア分析タスク
AI 支援の非同期メディア処理タスク
非同期メカニズムを通じて送信および取得されるその他のメディア処理タスク
特定の機能について別途ドキュメントが存在する場合は、その指示に従ってください。
一般的なタイムライン
タスクを開始し、ビジネスワークフローを設計する前に、このセクション全体をお読みください。
非同期タスクの合計時間は、通常、次の 2 つの部分で構成されます。
合計タスク時間 = 待機時間 + 処理時間ここで、
待機時間:タスクが送信されてから、実際の処理段階に入るまでのキューでの待機時間。
処理時間:タスクが実際の処理段階に入ってから、タスク自体の実行に要する時間。
タスク ID の受信は、タスクが正常に作成されたことを確認するだけです。
体感的な完了時間は、処理時間だけでなく、合計タスク時間です。
パフォーマンスの参考値は、説明のみを目的としています。これらは、サービスコミットメント、サービスレベルアグリーメント (SLA) のメトリック、納品保証、または補償の根拠を構成するものではありません。
タスクの仕様が参考例と類似していても、待機時間の増加により、合計完了時間が大幅に長くなる場合があります。
ビジネスに厳しい納期がある場合は、バッファー時間を設け、非同期デカップリング、タイムアウトフォールバック、およびサービス低下計画を含むシステムを設計してください。
「合計完了時間」と「処理時間」の違い
この違いを理解することは、非同期タスクに対する期待を管理する上で重要です。
本ドキュメントにおける処理速度、速度倍率、または時間例への言及は、タスクが実際の処理段階に入った後のパフォーマンス特性のみを説明しています。
結果を受け取るまでに必要な時間は、次の要因に依存します。
処理が開始される前にタスクがキューで待機する時間。
タスクが開始されてから処理にかかる時間。
したがって:
参考処理時間 ≠ 合計完了時間
参考処理時間を使用してタスクの納品時間を予測することはできません。
同じ仕様のタスクを異なる時間に送信した場合、合計完了時間が大幅に異なる可能性があります。
一般的な待機時間
タスクが送信されると、サービスはタスクタイプ、全体のタスク量、および内部の処理戦略に基づいて処理をスケジューリングします。
以下のような状況では、待機時間が増加する可能性があります。
短期間に大量のタスクが送信された場合。
同じ時間帯にタスク量が大幅に変動した場合。
計算量の多い複雑なタスクがキューに高い割合で存在する場合。
タスクの送信成功は、タスクの処理が開始されたことを意味しません。
待機時間は、送信時間、タスクタイプ、タスク量、および処理パイプラインの違いによって変動する可能性があります。
待機中に同じタスクを再送信しないでください。重複処理を引き起こし、全体の待機時間を増加させる可能性があります。
高頻度のポーリングの代わりに、非同期コールバックを使用してタスク結果を受信してください。
現在のサービスステータスを理解するには、以下の点を考慮してください。
待機時間は、タスク量やタスク特性など多くの要因に影響されます。待機時間の増加だけでは、サービスの問題を示す信頼できる指標にはなりません。現在のサービスステータスを確認するには、テクニカルサポートにご連絡ください。
広範囲に影響を及ぼすサービスの問題が発生した場合、Alibaba Cloud は影響を受けるユーザーにサイト内メッセージ、SMS、またはその他のチャネルを通じて通知します。
一般的な処理時間
実際の処理時間は、タスクタイプ、ソースファイル特性、およびタスク設定によって異なります。機能ごとにタスク所要時間の見積もりモデルが異なります。
一般的な影響要因
要因 | パターン | 説明 |
ソースファイルの持続時間 | 持続時間が長いほど、通常、処理時間も長くなります | ほとんどのメディア処理タスクにおける主要な要因の 1 つです。 |
出力仕様 | 仕様が高いほど、通常、処理時間も長くなります | 例:高解像度やより複雑な出力フォーマット。 |
処理アルゴリズムの複雑さ | アルゴリズムが複雑なほど、通常、処理時間も長くなります | 例:高度なトランスコードや複雑な分析。 |
カスタムパラメーター | パラメーターが複雑なほど、通常、処理時間も長くなります | 例:画質向上パラメーターや多段階処理。 |
ソースファイル特性 | 特性が複雑なほど、時間の変動が大きくなる可能性があります | 例:ビットレート、フレームレート、コンテナ形式、またはストリーム構造。 |
タスクタイプ | タスクタイプごとに時間モデルが異なります | トランスコード、編集、スナップショット、分析タスクの時間を直接比較することはできません。 |
タスクタイプによる違い
トランスコードタスク:処理時間は通常、動画の持続時間、解像度、エンコード形式、トランスコードアルゴリズム、およびテンプレートパラメーターに依存します。
編集タスク:処理時間は、クリップ数、再エンコーディングが必要かどうか、編集がキーフレームをまたぐかどうか、および複数クリップの結合にも影響されます。
スナップショット、イメージスプライト、分析タスク:時間見積もり方法はトランスコードとは異なる場合があります。進捗フィールド、ステータスフィールド、および処理段階が利用可能かどうかについては、特定のプロダクトドキュメントをご参照ください。
タスクステータスと進捗
ステータスフィールド、進捗インジケーター、クエリメソッド、および結果通知メカニズムは、非同期タスクタイプによって異なる場合があります。
本ドキュメントで説明する状態ロジックは、非同期タスクの一般的な処理段階を示しています。すべての非同期タスクがこの状態モデルを使用するわけではありません。
一般的に、非同期タスクは以下の段階を経ます。

注:
一部のタスクには、クエリ可能な進捗フィールドがある場合があります。
一部のタスクは、「処理中」、「成功」、「失敗」など、いくつかのステータスしか返さない場合があります。
一部のタスクでは、「待機中」は独立したステータスではなく、ステータスフィールドと他のフィールドを組み合わせて判断される段階です。
特定のステータス定義については、実際の API 応答と関連するプロダクトドキュメントをご参照ください。
例:トランスコードタスク
このセクションでは、トランスコードタスクのステータスの解釈と所要時間の見積もり方法を説明します。他の非同期タスクは異なるメカニズムを使用する場合があります。
トランスコードタスクのステータス
例えば、トランスコードタスクを送信した後、クエリ結果のステータスフィールドに「Transcoding」と表示されることがあります。
「Transcoding」ステータスは、タスクがトランスコードプロセスに入ったことを意味しますが、必ずしも実際のトランスコードが開始されたことを意味するわけではないことに注意してください。
タスクの段階をさらに判断するために、`TranscodeProgress` フィールドを使用できます。
タスクステータス | TranscodeProgress | 説明 | 推奨される解釈 |
Transcoding/Submitted | 0 | まだトランスコードしていません。 | 待機中 |
Transcoding/Percent/Running | > 0 | トランスコードが進行中です。 | トランスコード中 |
成功ステータス | 100 またはタスク完了 | トランスコードが正常に終了しました。 | 成功 |
失敗ステータス | - | エラーによりトランスコードが終了しました。 | 失敗 |
トランスコードタスクの場合、待機中は通常、独立したステータスではありません。タスクステータスとトランスコードの進捗を組み合わせて判断される段階です。
トランスコード速度の参考
これらの参考値は、典型的なテスト条件下で、トランスコードタスクが開始された後の処理速度を説明するものです。待機時間は含まれず、合計タスク完了時間を表すものでもなく、サービスコミットメントを構成するものでもありません。
典型的な H.264 720p トランスコードシナリオにおいて、異なるトランスコードアルゴリズムの処理速度特性は以下の通りです。
トランスコードアルゴリズム | 速度参考 | 説明 |
標準トランスコード | 約 3 倍速 | 典型的な条件下での処理段階の速度のみを反映しています。 |
ナローバンド HD 1.0 | 約 1.5 倍速 | 処理時間は通常、標準トランスコードよりも長くなります。 |
ナローバンド HD 2.0 | 通常、1 倍速を大幅に下回ります | 処理時間は通常、ソース動画の持続時間よりも長くなります。実際の時間はタスクに依存します。 |
速度倍率
速度 = 単位時間あたりに処理できる動画の持続時間の倍率
例:
3 倍速とは、1 分間の処理で約 3 分間の動画コンテンツを処理できることを意味します。
したがって、30 分の動画の場合、理論上の処理時間は約 10 分です (待機時間を除く)。上記の参考値は、典型的な H.264 720p トランスコードシナリオにのみ適用されます。
これらの値を使用して合計タスク完了時間を見積もらないでください。
より高い解像度、より複雑なエンコーディング、またはより負荷の高いパラメーター設定の場合、処理速度は通常、参考値よりも低くなります。
ソース動画のビットレート、フレームレート、コンテナ形式、およびストリーム構造の違いはすべて、処理時間に大きな影響を与える可能性があります。
ナローバンド HD 2.0 の処理の複雑さは、通常、標準トランスコードおよびナローバンド HD 1.0 よりもはるかに高くなります。
実際の処理時間については、タスクステータスのクエリまたは完了通知の結果をご参照ください。
よくある質問
1. 10 分間の 720p トランスコードタスクは、常に 3~4 分で完了しますか?
必ずしもそうとは限りません。
「約 3 倍速」という参考値は、典型的な条件下でタスクが開始された後の処理速度を説明するものです。処理が開始される前の待機時間は含まれず、本番環境でのタスクの合計完了時間を表すものでもありません。
結果が利用可能になるまでの実際の時間は、タスクの合計完了時間です。処理速度の参考値を使用して納品時間を予測しないでください。
合計タスク時間がビジネス上の期待を超える場合は、一般的なトラブルシューティングのセクションを参照するか、テクニカルサポートにお問い合わせください。
2. トランスコードタスクのステータスが「Transcoding」なのに、TranscodeProgress が常に 0 なのはなぜですか?
トランスコードタスクにおいて、ステータスが「Transcoding」であることは、タスクがトランスコードワークフローに入ったことを意味しますが、実際のトランスコードが開始されたことを意味するわけではありません。
TranscodeProgress = 0 の場合、タスクはまだ待機段階にあります。TranscodeProgress > 0 の場合、タスクは実際のトランスコード処理段階に入っています。
3. 私のタスク仕様は参考シナリオと似ていますが、実際の完了時間がはるかに長いのはなぜですか?
考えられる理由には、以下が含まれますが、これらに限定されません。
処理が開始される前に、タスクが長い待機時間を経験した。
ご利用のソースファイルの実際の特性が、典型的な参考シナリオと異なる。
タスクパラメーターまたはテンプレート設定が通常よりも複雑である。
同じ期間中のタスク量の変動により、合計完了時間が増加した。
原因をさらに特定するために、テクニカルサポートに連絡し、タスク ID を提供して支援を求めることを推奨します。
4. 待機時間の増加は、常にサービスの問題を示しますか?
必ずしもそうとは限りません。
待機時間は、タスク量やタスク特性など多くの要因に影響されます。待機時間の増加だけでは、サービスの問題を示す信頼できる指標にはなりません。現在のサービスステータスを確認するには、テクニカルサポートに連絡して支援を求めることを推奨します。
5. 処理速度の参考値を使用して、ビジネスの納品時間を保証できますか?
いいえ。
処理速度の参考値は、タスク処理の特性を理解するのに役立つだけであり、本番環境での納品時間、ビジネス SLA、またはエンドユーザーへのコミットメントの根拠として使用すべきではありません。
時間要件が厳しいビジネスシナリオでは、アーキテクチャにバッファー時間を組み込み、タイムアウトフォールバックとサービス低下メカニズムを実装してください。
6. 他の非同期タスクのステータスを、トランスコードタスクと同じように解釈できますか?
必ずしもそうとは限りません。
この例での「Transcoding」と「TranscodeProgress」の使用は、トランスコードタスクに特有のものです。
編集、スナップショット、イメージスプライト、メディア分析、およびその他の非同期タスクでは、ステータスフィールド、進捗フィールド、および解釈方法が異なる場合があります。各特定のタスクのクエリ API とドキュメントをご参照ください。
主な操作
タスクの送信
API を通じて非同期タスクを送信すると、サービスはタスク ID を返します。
タスク ID は、ステータスのクエリ、通知の関連付け、およびトラブルシューティングのためのユニークな識別子です。安全に保管してください。
結果の取得
タスクが処理された後、コールバック URL が設定されていれば、サービスは結果通知を送信できます。このコールバックを使用すると、継続的なポーリングなしでタスクの完了を自動的に検出できます。
コールバックの使用
本番環境では、結果を取得するためにコールバックメソッドを使用することを推奨します。
コールバック URL が到達不能な場合、サービスは事前定義されたポリシーに従って自動的にリトライします。
複数回のリトライ後に配信が失敗した場合は、クエリ API を使用して最終的なタスクステータスを能動的に確認してください。
コールバック通知は、ネットワークの変動やクライアント側の問題により、遅延したり複数回配信されたりする可能性があります。
クライアント側のコールバックロジックでは、タスク ID に基づいてべき等性チェックを実行する必要があります。
最終的なタスクステータスは、クエリ API によって返される結果に基づくべきです。
コールバック設定とリトライメカニズムの詳細については、「コールバック設定」をご参照ください。
タスクのクエリ
タスク ID を使用して、タスクの現在のステータスと結果を能動的にクエリできます。これは、以下のシナリオで役立ちます。
コールバック通知を設定していない場合。
コールバックを設定しているが、現在の進捗を確認する必要がある場合。
タスクの持続時間が、ビジネス上の期待を超えています。
コールバック通知が失敗した場合のフォールバックメソッドとして。
タスク情報のクエリ
クエリ API は、主にタスクのステータス、進捗、および結果情報を返します。タスクが予想よりも大幅に長くかかる場合は、タスクステータスの変更、送信時間、およびタスク設定を確認してトラブルシューティングすることを推奨します。それでも原因を特定できない場合は、テクニカルサポートに連絡し、分析のためにタスク ID を提供してください。
一般的なトラブルシューティング
タスクが予想よりも長くかかる場合は、以下の手順に従ってください。
1. タスクの完了を確認する
タスク ID を使用して、タスクの現在のステータスまたは結果をクエリします。
タスクが完了している場合は、結果を取得し、かかった合計時間を評価します。
タスクが失敗した場合は、エラーコードとエラーメッセージを確認します。
タスクがまだ完了していない場合は、次のステップに進み、待機段階か処理段階かを判断します。
2. タスクタイプ別に段階を判断する
トランスコードタスクの場合:「Transcoding」ステータスと「TranscodeProgress」フィールドを確認して、タスクが実際の処理段階に入ったかどうかを判断できます。
他の非同期タスクの場合:クエリ API によって返されるフィールドと、その特定のタスクのドキュメントをご参照ください。トランスコードタスクで使用される同じ解釈方法を適用しないでください。
3. タスク特性別に原因を特定する
症状 | 考えられる原因 | 推奨されるアクション |
長時間結果が得られない | タスク量の変動、待機時間の増加、サービスの問題、または高いタスクの複雑さ | サービスステータスページを確認してください。必要に応じてテクニカルサポートにご連絡ください。 |
処理時間が通常よりはるかに長い | 複雑なソースファイル、負荷の高いパラメーター、または高いタスクの複雑さ | ソースファイルと設定を確認してください。必要に応じてサポートにご連絡ください。 |
タスクが失敗した | ソースファイルの問題、パラメーターエラー、または処理エラー | エラーコードのドキュメントを確認し、提案どおりに修正してください。 |
クエリから結果が得られない | 不正なタスク ID またはタスクが正常に送信されなかった | 送信結果とタスク ID を確認してください。 |
4. テクニカルサポートへの情報提供
トラブルシューティングのためにテクニカルサポートに連絡する際は、以下の情報を提供してください。
タスク ID
タスク送信時間
タスクタイプ (例:トランスコード、編集、スナップショット、または分析)
ソースファイルの持続時間、解像度、およびエンコード形式
テンプレート設定または処理パラメーター
アイテムをバッチで送信するかどうかを指定
問題とその影響の説明
推奨される統合方法
メソッド | 説明 | ユースケース |
非同期コールバック (推奨) | タスク完了後、サービスが結果を送信します。 | 本番環境および通常のビジネスシナリオ。 |
ポーリング | 定期的にタスクのステータスと結果をクエリします。 | デバッグ、テスト、およびコールバック失敗時のフォールバックとして。 |
統合に関する推奨事項
本番環境では、非同期コールバックの使用を優先してください。
不要なリクエストを減らすために、高頻度のポーリングは避けてください。
重複を避けるために、タスク送信時にべき等性コントロールを実装してください。
バッチタスクの場合、短時間で大きなキューが作成されるのを避けるために、送信をずらしてください。
タスクのタイムアウトモニタリング、アラート機能、および手動フォールバックのメカニズムを確立してください。
重要なビジネスシナリオでは、十分なバッファー時間を確保し、サービス低下計画を設計してください。
本番環境での納品コミットメントに処理速度の参考値を使用しないでください。
SLA と責任範囲
タスクの遅延がサービスの問題によって引き起こされた疑いがある場合は、テクニカルサポートに連絡し、タスク ID と関連情報を提供して支援を求めてください。
サービスの可用性、責任、および補償は、公式のサービス契約およびサービスレベルアグリーメント (SLA) に準拠します。
本ドキュメントのタスク所要時間の説明、処理速度の参考値、例、およびよくある質問は、参考のみを目的としています。これらは非同期タスク処理メカニズムを説明するのに役立つものであり、完了時間に対する独立したコミットメントや、サービスまたはビジネス補償の根拠を構成するものではありません。
推奨事項
非同期タスクの時間の変動によるビジネスへの影響を軽減するために:
システム設計で非同期デカップリングを使用してメディアタスクを処理してください。
同期ブロッキングの代わりに、コールバックまたはステータスクエリを使用してタスク結果を取得してください。
ピーク時、バッチタスク、および複雑なタスクのために、追加のバッファー時間を確保してください。
タスクのタイムアウトアラート、手動介入、およびビジネスフォールバックのメカニズムを確立してください。
詳細については、関連するプロダクトドキュメントをご参照ください。