このトピックでは、ApsaraVideo VOD でのビデオトランスコーディングに関するよくある質問とその回答を説明します。
トランスコードの失敗をトラブルシューティングするにはどうすればよいですか?
ソースファイルがローカルマシンで正しく再生されることを確認します。これは重要なステップです。ほとんどのトランスコーディングの失敗は、ソースファイルが無効であるために発生します。たとえば、ビデオストリームの欠落、メタデータの間違い、フレームの破損、ファイルヘッダーの欠落などです。これらの問題は、トランスコーディング効率のモニタリングをトリガーし、ジョブを停止させる可能性があります。
ffprobe -show_streams -show_format -of json -i [filePath]コマンドを実行して、ファイルのメタデータに moov アトムの欠落やストリームの異常などの問題がないか確認します。ffprobe -show_packets -i [filePath]コマンドを実行して、データストリームに問題がないか確認し、ストリームのデュレーションがメタデータのデュレーションと一致するかどうかを検証します。説明メタデータのデュレーションと実際のストリームのデュレーションが一致しない場合、トランスコーディングが失敗する可能性があります。ファイルのメタデータに問題がある場合は、FFmpeg ツールでローカルで処理してから、トランスコーディングのためにアップロードできます。
失敗の具体的な原因を特定するために、エラーコードで対応するエラーコードを見つけます。
テキストウォーターマークに特殊文字が含まれている場合、出力が切り捨てられたり、失敗したりする可能性があります。ウォーターマークを追加する前に、これらの特殊文字をエスケープする必要があります。
暗号化トランスコーディングが失敗した場合は、HLS 暗号化中に発生する一般的なエラーについて、「ビデオ暗号化に関するよくある質問」をご参照ください。
組み込みの「トランスコーディングなし」テンプレートグループで処理されたビデオが再生できない理由
考えられる原因は次のとおりです。
原因 1:アップロードされたソースビデオが無効で再生できません。
原因 2:MP4、FLV、M3U8、MP3、WEBM 形式のビデオのみが、トランスコーディングなしで直接再生できます。
ApsaraVideo VOD にビデオをアップロードする際、組み込みの「トランスコーディングなし」テンプレートグループを使用し、ソースビデオが MP4、FLV、M3U8、MP3、または WEBM 形式の場合、アップロード後に「オリジナル品質」のビデオストリームが生成されます。ソースビデオが他の形式の場合、「オリジナルファイル」のビデオストリームが生成されます。
ApsaraVideo VOD コンソールで「オリジナルファイル」のビデオストリームをプレビューしたり、GetPlayInfo 操作を呼び出して再生 URL を取得したりすることはできません。GetMezzanineInfo 操作を呼び出して、再生用のソースファイル URL のみを取得できます。一方、「オリジナル品質」のビデオストリームは ApsaraVideo VOD コンソールでプレビューでき、GetPlayInfo 操作を呼び出して再生 URL を取得できます。
ソースビデオに複数のオーディオストリームがあるが、トランスコーディング後に1つしか残らない場合の対処法
現在、保持できるオーディオストリームは 1 つだけです。これは、Output パラメーターに audioMap=0 を追加することで設定されます。特別な要件がある場合は、チケットを送信してください。
トランスコードされたビデオの幅と高さが設定と異なるのはなぜですか?
ApsaraVideo VOD のトランスコーディングテンプレートには、デフォルトで有効になっている自動回転機能 (LongShortMode) が含まれています。この機能が有効な場合、`width` は長辺に、`height` は短辺に対応します。これらの値のいずれか一方のみを設定し、もう一方は空のままにする必要があります。特定の解像度を出力したい場合は、自動回転を無効にする必要があります。ただし、これにより出力ビデオが引き伸ばされたり歪んだりする可能性があることにご注意ください。
トランスコーディング後にビデオの解像度が入れ替わる (縦向きから横向きになるなど) 理由
これは通常、ビデオソースに rotation=-90 が含まれているために発生し、トランスコーディング後に解像度が入れ替わります。FFmpeg ツールを使用して、ソースファイルに回転角度情報が含まれているかどうかを確認できます。ソースファイル情報を照会するには、次のコマンドを実行します。
ffprobe -show_streams -show_format -of json -i [filepath]MP4 からトランスコーディングされた M3U8 ファイルの再生時に黒い画面が表示される場合のトラブルシューティング
まず、ソースビデオストリームが正常かどうかを確認します。ソースファイルの最初の TS セグメントにビデオストリームデータがない場合、プレーヤーはビデオがないと判断します。この場合、まずソースファイルを MP4 にトランスコーディングし、次にその MP4 ファイルを M3U8 にトランスコーディングします。そうすれば、ビデオは正しく再生されるはずです。
HDR から SDR に変換後、ビデオが露出オーバーまたは暗すぎる理由
ソースビデオが HDR (ハイダイナミックレンジ) の場合は、トランスコーディングテンプレートの「HDR ソースのダイナミックレンジ」パラメーターを「SDR にマッピング」に設定します。 例:

「SDR にマッピング」機能はパブリックプレビュー中です。パブリックプレビュー終了後は有料機能となります。詳細については、「オーディオとビデオの拡張料金」をご参照ください。問題が解決しない場合は、チケットを送信してサポートを依頼してください。
ApsaraVideo VOD はトランスコーディング中に moov ボックスの位置を決定できるか?ファイルに moov ボックスがない場合はどうなるか?
トランスコーディング後、moov ボックスはデフォルトで MP4 ファイルヘッダーに配置されます。カスタム設定はサポートされていません。ApsaraVideo VOD は moov ボックスのないファイルを処理できません。そのようなファイルのトランスコーディングは失敗します。
変換後の音声ファイルのデュレーションがソースビデオと異なる理由
ApsaraVideo VOD のトランスコーディングロジックは、入力ファイル内の最も短いオーディオストリームに基づいてトランスコーディングのタイミングを計ることで、デュレーションの一貫性を確保します。一部のソースファイルセグメントのタイムスタンプが連続していない場合、サービスはビデオストリームのメディア情報を取得できません。これにより、トランスコーディングのデュレーション推定に影響し、デュレーションのずれが発生します。
トランスコーディングされた音声のみのファイルの再生時にエラーが発生した場合の対処法
トランスコーディングテンプレートでビデオ設定が無効になっているかどうかを確認します。音声のみのファイルをトランスコーディングする場合、ビデオのトランスコーディングを防ぐ必要があります。そのためには、ビデオを無効にし、図に示されている最後の 2 つの解像度など、適切な解像度を選択します。
トランスコーディングテンプレートで設定した音声またはビデオのビットレートが有効にならない理由
トランスコーディングテンプレートにビットレートチェックメカニズムが設定されているかどうかを確認します。ApsaraVideo VOD コンソールでは、これは「条件付きトランスコーディングパラメーター」の「ビデオビットレートのチェック」または「オーディオビットレートのチェック」設定に対応します。このチェックが有効な場合、入力と出力のエンコーダーが同じで、ターゲットビットレートがソースビットレートよりも高いという条件下では、テンプレートで設定したビットレートは有効になりません。この場合、ビットレートはチェックメカニズムに基づいてリセットされ、元のビットレートが使用されるか、トランスコーディングがスキップされることがあります。
トランスコーディングジョブにはどのくらいの時間がかかりますか?
ApsaraVideo VOD では、トランスコーディングジョブに必要な時間は主にビデオのデュレーションに比例します。時間は、出力解像度、エンコード形式、トランスコーディングアルゴリズムの複雑さ、トランスコーディングジョブの数など、複数の要因にも影響されます。詳細は次のとおりです。
ビデオのデュレーション:ビデオが長いほど、トランスコーディングは遅くなります。
出力解像度:出力解像度が高いほど、トランスコーディングは遅くなります。
トランスコーディングアルゴリズム:アルゴリズムが複雑なほど、トランスコーディングは遅くなります。トランスコーディングアルゴリズムの複雑さは、ナローバンド HD 2.0 > ナローバンド HD 1.0 > 通常トランスコーディングの順です。
トランスコーディングジョブの数:送信するジョブが多いほど、トランスコーディングは遅くなります。これは、多くのジョブがキューを作成し、処理時間が増加するためです。
その他の要因:エンコード形式など。H.265 へのトランスコーディングは、H.264 へのトランスコーディングよりも時間がかかります。
通常、720P H.264 ビデオを出力するジョブの場合、通常トランスコーディングは再生速度の 5〜6 倍で実行され、ナローバンド HD 1.0 トランスコーディングは再生速度の 2〜3 倍で実行されます。たとえば、6 分のビデオを 720P H.264 にトランスコーディングする場合、通常トランスコーディングジョブには約 1 分かかります。ナローバンド HD 1.0 トランスコーディングジョブには約 2 分かかります。
トランスコーディングの進捗をリアルタイムで照会できるか?
ApsaraVideo VOD は、トランスコーディングジョブのリアルタイムの進捗を照会するインターフェイスを提供していません。ただし、コールバックを設定して、トランスコーディングプロセスの結果に関するイベント通知を受け取ることができます。詳細については、「イベント通知」をご参照ください。
バッチトランスコーディング操作は可能か?
ApsaraVideo VOD は、すでに ApsaraVideo VOD にあるビデオのバッチトランスコーディング操作をサポートしていません。システムは、設定されたトランスコーディングテンプレートまたはワークフローに基づいて、アップロード中にビデオを自動的にトランスコーディングします。ただし、独自の Object Storage Service (OSS) バケットを使用している場合は、バッチトランスコーディングを実行できます。これを行うには、まず Intelligent Media Management (IMM) プロジェクトをアタッチします。次に、プレフィックスマッチングなどの条件を使用してバッチトランスコーディングジョブを作成し、複数のビデオを効率的に処理します。詳細については、「OSS バッチ処理」をご参照ください。
トランスコーディングジョブが失敗し続ける理由
ジョブは多くの理由で失敗する可能性があります。返されたエラーメッセージを確認してください。「前処理の失敗」エラーを受け取った場合、ApsaraVideo VOD がソースファイルをデコードできなかったことを意味します。この場合、チケットを送信してサポートを依頼し、Alibaba Cloud アカウント ID とビデオ ID の情報を提供してください。
リアルタイムトランスコーディングはサポートされているか?
いいえ。ApsaraVideo VOD はファイルベースのトランスコーディングサービスであり、リアルタイムトランスコーディングはサポートしていません。
ApsaraVideo VOD にアップロード済みのビデオをバッチトランスコーディングできるか?
いいえ。すでに ApsaraVideo VOD にアップロードされているビデオのバッチトランスコーディングはサポートされていません。
トランスコーディング後にウォーターマークが表示されない、または有効にならない理由
トランスコーディングに使用されるウォーターマークテンプレートのパラメーター (サイズ (幅 × 高さ) やオフセットなど) を確認します。これらの設定が、ビデオフレーム (解像度の幅 × 高さ) 内にウォーターマークを配置していることを確認してください。ウォーターマークがビデオフレームの外にある場合、トランスコーディングが成功しても表示されません。

トランスコーディング失敗のコールバックを受信しない理由
トランスコーディングのイベント通知を設定する際、単一解像度トランスコーディング完了 (StreamTranscodeComplete) イベントのみを設定し、全解像度トランスコーディング完了 (TranscodeComplete) イベントを設定していない可能性があります。破損したソースビデオをアップロードしてすべてのトランスコーディングストリームが失敗した場合、ApsaraVideo VOD は失敗した `TranscodeComplete` コールバックを返します。このコールバックのリスナーを設定していないため、トランスコーディングの失敗に関する通知を受け取れません。