このトピックでは、ApsaraVideo VOD におけるトランスコードに関するよくある質問に回答します。
トランスコード失敗のトラブルシューティング
ソースファイルをローカルデバイスで再生できることを確認します。これは重要な最初のステップです。トランスコードの失敗の多くは、ソースファイル自体の問題が原因です。一般的な問題として、ビデオストリームの欠落、無効なメタデータ、フレームエラー、またはビデオヘッダーの欠落などがあります。これらの問題によりトランスコード効率のモニタリングがトリガーされ、トランスコードジョブが失敗する場合があります。
ffprobe -show_streams -show_format -of json -i [filePath]コマンドを実行して、ファイルのメタデータに moov atom の欠落やストリームの異常などの問題がないか確認します。ffprobe -show_packets -i [filePath]コマンドを実行して、データストリームの問題をチェックし、ストリームのデュレーションがメタデータで指定されたデュレーションと一致することを確認します。説明メタデータに記載された継続時間と実際のストリーム継続時間が一致しない場合、トランスコードが失敗する可能性があります。ファイルのメタデータが無効な場合は、FFmpeg などのツールを使用してローカルでファイルを修復してから、トランスコード用にアップロードしてください。
エラーコード リストで該当するエラーコードを確認し、失敗の具体的な原因を特定します。
切り詰めやジョブの失敗を防ぐため、テキストウォーターマークで使用する特殊文字はエスケープしてください。
暗号化トランスコードジョブが失敗する場合は、HLS 標準暗号化に関連する一般的なエラーについて Video Encryption FAQ を参照してください。
「トランスコードなし」テンプレートにおける再生の問題
この問題は、次の理由で発生する場合があります:
原因 1:ソースビデオが破損しており、再生できない。
原因 2:MP4、FLV、M3U8、MP3、WEBM 形式のビデオのみ、トランスコードなしで直接再生できます。
組み込みの [トランスコードなし] テンプレートグループを使用して ApsaraVideo VOD にビデオをアップロードする場合、ソースビデオが MP4、FLV、M3U8、MP3、WEBM 形式であれば [オリジナル品質] のビデオストリームが生成されます。それ以外の形式の場合は [オリジナルビデオ] ストリームが生成されます。
[オリジナルビデオ] ストリームは ApsaraVideo VOD コンソールでプレビューできず、Get audio and video playback URL API を呼び出しても再生 URL を取得できません。再生に使用できるのは、Get source file information API を呼び出して取得するソースファイル URL のみです。一方、[オリジナル品質] のビデオストリームは ApsaraVideo VOD コンソールでプレビューでき、Get audio and video playback URL API を呼び出して再生 URL を取得できます。
原因 3:ビデオコーデックがブラウザプレーヤーと互換性がない。
ソースビデオのコンテナは MP4 形式でも、コンテナ内のビデオストリームが MPEG-4 Part 2 (mp4v) でエンコードされている場合、ブラウザの HTML5 プレーヤーはこのコーデックをサポートしません。このようなビデオを [トランスコードなし] テンプレートグループでアップロードすると、再生できません。ブラウザは H.264 および H.265 コーデックをサポートしています。
コーデックを確認するには、
ffprobe -show_streams -i [filePath]コマンドを実行し、出力のcodec_nameフィールドを確認します。値がmpeg4の場合、ビデオは MPEG-4 Part 2 でエンコードされており、ブラウザでは再生できません。この問題を解決するには、次のいずれかの方法を使用します:
ローカルで FFmpeg を使用してビデオを H.264 コーデックにトランスコードし、同じファイル名で同じ Object Storage Service (OSS) の場所に再アップロードします。ApsaraVideo VOD は再アップロードされたファイルに基づいて、新しい再生可能 URL を生成します。
ApsaraVideo VOD コンソールで H.264 コーデックを使用するトランスコードテンプレートグループを作成し、それを使用して既存のビデオをトランスコードします。その後、トランスコードされたストリームを再生できます。
複数のオーディオストリームが 1 つのストリームに削減される
現在、トランスコーディングは 1 つのオーディオストリームのみを保持します。これは、出力パラメーターのaudioMap=0 設定によって制御されます。お客様のユースケースで複数のオーディオストリームが必要な場合は、チケットを起票してください。
出力解像度が設定と一致しない
ApsaraVideo VOD のトランスコードテンプレートでは、自動回転画面機能 (LongShortMode) がデフォルトで有効になっています。この機能が有効な場合、width は長辺に対応し、height は短辺に対応します。いずれか一方の値のみを設定し、もう一方は空欄のままにしてください。特定の出力解像度を強制する場合は、自動回転画面機能を無効にする必要があります。この機能を無効にすると、出力ビデオが引き伸ばされたり歪んだりする場合があります。
トランスコード後のビデオの向きが正しくない
これは通常、トランスコーディング中に動画の幅と高さを入れ替える rotation=-90 のような回転メタデータフラグがソース動画に含まれている場合に発生します。 FFmpeg のようなツールを使用して、ソースファイルの回転情報を調べることができます。 ファイル情報を確認するには、次のコマンドを実行します。
ffprobe -show_streams -show_format -of json -i [filepath]トランスコードした M3U8 ファイルで黒画面になる
まず、ソースファイル内のビデオストリームが有効かどうかを確認します。ソースファイルの最初の Transport Stream (TS) セグメントにビデオデータが含まれていない場合、プレーヤーがビデオを表示できないことがあります。この場合は、まずソースファイルを MP4 にトランスコードし、その後、生成された MP4 ファイルを M3U8 にトランスコードしてください。これにより再生の問題が解決するはずです。
HDR から SDR への変換後の露出に関する問題
ソースビデオが HDR の場合は、トランスコードテンプレートのダイナミックレンジ設定で [SDR Mapping] を選択してください。
SDR Mapping はパブリックプレビューです。パブリックプレビュー終了後、この機能には料金が発生します。詳細については、「Audio and video enhancement fees」をご参照ください。問題が解決しない場合は、チケットを送信してサポートを依頼してください。
トランスコードにおける moov box の取り扱い
トランスコード後、ApsaraVideo VOD はデフォルトで MP4 ファイルの先頭に moov box を配置します。この動作はカスタマイズできません。moov box が存在しないファイルは処理できず、トランスコードジョブが失敗します。
動画から音声への変換における継続時間の不一致
継続時間の一貫性を確保するため、ApsaraVideo VOD のトランスコードロジックでは、入力ファイル内で最も短いオーディオストリームをタイミングの基準として使用します。ソースファイルの一部のセグメントでタイムスタンプが連続していない場合、サービスがビデオストリームからメディア情報を取得できないことがあります。これが継続時間の推定に影響し、不一致が発生する可能性があります。
音声のみのファイルの再生エラー
トランスコードテンプレートでビデオ処理が無効になっていることを確認します。音声のみのファイルの場合、ビデオ処理を無効にする必要があります。これはテンプレートの設定で行えます。
ApsaraVideo Media Processing コンソールの [トランスコードテンプレートグループの追加] ページで、トランスコードタイプを [通常のトランスコード] に、コンテナフォーマットを [MP4 (.mp4)] に設定します。ビデオパラメータでは、コーデックを [H.264] に、解像度を [長辺と短辺で指定] に設定し、長辺と短辺を [128, 4096] の範囲の偶数に設定します。
ビットレート設定が適用されない
トランスコードテンプレートでビットレートチェック機能を有効にしているかどうかを確認します。ApsaraVideo VOD コンソールでは、この機能は [通常トランスコード] テンプレートの [Conditional Transcoding Parameters] にあり、[Check video bitrate] または [Check audio bitrate] として表示されます。この機能が有効な場合、条件によってはテンプレートで設定したビットレートが反映されないことがあります。具体的には、出力エンコーダーがソースエンコーダーと同一で、ターゲットビットレートがソースビットレートより高い場合、設定に応じて、サービスは出力ビットレートをソースビットレートに合わせてリセットするか、ストリームのトランスコードをスキップします。
トランスコードジョブの所要時間
以下の参考値は、トランスコードジョブが処理を開始した後、一般的なテスト条件下における処理速度を示します。これらの値にはキューイング時間は含まれず、ジョブ完了までの総所要時間を示すものでもなく、サービスレベルアグリーメント (SLA) を構成するものでもありません。
一般的な H.264 720P へのトランスコードシナリオにおける、各トランスコードアルゴリズムの処理速度は次のとおりです:
トランスコードアルゴリズム | 処理速度 | 説明 |
通常トランスコード | 平均速度:約 3 倍 | この値は、一般的な条件下におけるトランスコードフェーズ中の処理速度を示します。 |
Narrowband HD™ 1.0 | 平均速度:約 1.5 倍 | 通常トランスコードより処理時間が長くなる傾向があります。 |
Narrowband HD™ 2.0 | 通常は 1 倍を大きく下回る | 処理時間がソースビデオの再生時間を上回ることがよくあります。実際の時間はジョブの内容によって異なります。 |
速度倍率
速度倍率 = 処理時間の単位あたりに処理されるビデオの継続時間
例:
3 倍とは、処理時間 1 分あたり約 3 分のビデオコンテンツを処理できることを意味します。
そのため、キューイング時間を除外すると、30 分のビデオは理論上約 10 分で処理されます。参考値は、一般的な H.264 720P のトランスコードシナリオにのみ適用されます。
これらの値を使用して、ジョブ完了までの総所要時間を見積もらないでください。
解像度が高い場合、エンコードが複雑な場合、またはパラメーターが高負荷な場合は、処理速度が低下するのが一般的です。
ソースビデオのビットレート、フレームレート、コンテナ形式、ストリーム構造の違いは、処理時間に大きく影響する可能性があります。
Narrowband HD™ 2.0 の処理の複雑さは、通常トランスコードおよび Narrowband HD™ 1.0 と比べて大幅に高くなります。
実際の処理時間については、ジョブステータスの照会または完了通知を参照してください。
トランスコード進捗の照会
ApsaraVideo VOD には、トランスコードジョブのリアルタイム進捗を照会する API はありません。代わりに、イベント通知 を設定して、ジョブステータスに関する通知を受信できます。
バッチトランスコード
ApsaraVideo VOD は、既存メディアに対するバッチトランスコード操作を直接サポートしていません。システムは、トランスコードテンプレートまたはワークフローを使用して、アップロードプロセス中にビデオを自動的にトランスコードします。ただし、メディアを独自の Object Storage Service (OSS) バケットに保存している場合は、Intelligent Media Management (IMM) と連携することでバッチトランスコードを実現できます。IMM プロジェクトを作成し、プレフィックス一致などの条件を使用してバッチ処理ジョブを定義することで、複数のビデオを効率的にトランスコードできます。詳細については、「Batch Processing in OSS」をご参照ください。
トランスコードジョブが繰り返し失敗する原因
ジョブの失敗にはさまざまな原因があります。必ず返されたエラーメッセージを確認してください。前処理の失敗エラーを受け取った場合、サービスがソースファイルをデコードできなかったことを意味します。この場合は、チケットを送信し、問題の診断に役立つ次の情報を提供してください:Alibaba Cloud アカウント ID とビデオ ID。
リアルタイムトランスコードのサポート
ApsaraVideo VOD はファイルベースのトランスコードサービスであり、リアルタイムトランスコードはサポートしていません。
既存ビデオのバッチトランスコード
ApsaraVideo VOD は、すでにアップロードされているビデオのバッチトランスコードをサポートしていません。
トランスコード後にウォーターマークが表示されない
トランスコードに使用するウォーターマークテンプレートのパラメーター (サイズ (幅 × 高さ) やオフセットなど) を確認します。これらの設定により、ウォーターマークがビデオ解像度の範囲内に配置されることを確認してください。ウォーターマークの設定がビデオフレーム外に配置される場合、トランスコードジョブが正常に完了しても表示されません。
[透かしテンプレートの編集] ページでは、オフセットパラメーターは [水平オフセット] および [垂直オフセット] フィールドに対応します。 透かしの [サイズ (幅 × 高さ)] および [位置] と合わせてこれらを確認し、透かしがビデオフレームをはみ出さないようにしてください。
ソースビデオにレターボックス (黒帯) がある場合、ウォーターマークが黒帯領域に書き込まれることがあります。ウォーターマークの色が黒帯の色に近い場合 (例:黒帯に黒のウォーターマーク)、コントラスト不足によりウォーターマークが見えなくなります。ウォーターマークのフォント色を黒帯と高コントラストの色 (例:白) に変更するか、水平オフセット (Dx) と垂直オフセット (Dy) を調整して、黒帯領域から離れたフレーム中央寄りにウォーターマークを移動してください。
トランスコード失敗時のコールバックが欠落する
トランスコードのイベント通知を設定する際に、Single Definition Transcoding Complete (StreamTranscodeComplete) イベントのみにサブスクライブし、TranscodeComplete イベントにサブスクライブしていない場合、特定のシナリオで失敗通知を受信できないことがあります。たとえば、破損したソースファイルをアップロードしてすべての出力ストリームが失敗した場合、ApsaraVideo VOD は TranscodeComplete イベントの失敗コールバックを送信します。このイベントにサブスクライブしていないため、トランスコード失敗の通知を受信できません。