このトピックでは、再生エラーのトラブルシューティング方法について説明します。
トラブルシューティング
再生エラーは、様々な原因から生じ得ます。 まず、次の表に示すように、特定のパターンでエラーが発生していないかを確認し、エラーのトラブルシューティングを行います。 エラーがランダムに発生した場合は、ユーザーデバイス、メディアストリーム、およびネットワーク接続を確認して、エラーの原因を特定します。 エラーの原因が特定できない場合は、Alibaba Cloudテクニカルサポートに連絡し、エラー情報を含めてください。
再生エラーの分布特性を次の表に示します。
分布特性
考えられる原因
特定のリージョンのユーザーまたは特定のISPを使用するユーザーに対してエラーが発生します
ISPネットワークエラーまたはAlibaba Cloud CDNスケジューリングエラー
特定のオペレーティングシステムを使用するユーザーにエラーが発生します
異なるプラットフォームでのSDK実装の問題またはシステム互換性の問題
特定のブランドのデバイスまたは特定のデバイスモデルを使用するユーザーにエラーが発生します
デバイスの互換性の問題
特定のメディアファイルでエラーが発生します
メディアファイルのエンコーディングエラー、プリフェッチエラー、またはアクセスポリシーエラー
エラーがランダムに発生した場合、データ量が多いため、原因を特定するのが複雑または困難になる可能性があります。 この場合、ソースメディアストリームからデバイスへの各リンクを確認して、エラーのトラブルシューティングを行います。
ステップ1: デバイスの互換性を確認する
デバイスの互換性
メディアストリームが使用するプロトコルが、デバイスのオペレーティングシステムおよびアプリケーション環境でサポートされているかどうかを確認します。 プロトコルがサポートされていない場合は、メディアストリームをトランスコードします。 トランスコードの詳細については、「推奨される出力形式とツール」をご参照ください。 次の表に、ApsaraVideo Player SDKでサポートされているオーディオおよびビデオプロトコルとコーデックを示します。
ネイティブアプリ
オペレーティングシステム | ビデオコーデック | ビデオプロトコル | オーディオコーデック |
Android |
|
|
|
iOS | |||
Windows | |||
macOS | |||
Linux |
Web
次の表に示すように、メディアストリームが使用するプロトコルがApsaraVideo Player SDK for Webの互換性要件を満たしている場合は、SSL証明書を設定し、クロスオリジンリソース共有 (CORS) を有効にしているかどうかを確認します。 詳細については、「HTTPSセキュアアクセラレーションの有効化」および「CORSの設定」をご参照ください。
オペレーティングシステム | ビデオコーデック | ビデオプロトコル | オーディオコーデック |
アンドロイド | H.264 |
|
|
iOS | H.264 |
説明 FLVおよびMPEG-DASHプロトコルはサポートされていません。 | |
H.265 |
| ||
Windows | H.264 | ||
macOS | H.264 |
| |
H.265 |
|
Androidデバイスの特定のブラウザでは、HLS暗号化ビデオを再生するためにMedia Source Extensions (MSE) が必要です。 次の表に、HLSで暗号化されたビデオを再生できるブラウザーを示します。
ブラウザのAndroidデバイス | HLS暗号化ビデオのサポート |
サポート | |
DingTalk | サポート |
UCブラウザまたはクォークブラウザ | サポート |
QQブラウザ | サポート |
Chrome | MSEがインストールされている場合のみサポート |
Huawei社ブラウザ | MSEがインストールされている場合のみサポート |
OPPOブラウザ | サポート |
Vivoブラウザ | 対応 |
Miブラウザ | MSEがインストールされている場合のみサポート |
ApsaraVideo Player SDKの互換性
デバイスが前のセクションで説明した互換性要件を満たしている場合は、サードパーティのプレーヤーを使用して、ApsaraVideo player SDKがシステムと互換性があるかどうかを確認します。
サードパーティのプレーヤーでメディアストリームを再生できる場合、ApsaraVideo player SDKはお使いのシステムと互換性がない可能性があります。 この場合は、Alibaba Cloudテクニカルサポートにお問い合わせください。
サードパーティのプレーヤーでメディアストリームを再生できない場合は、メディアストリームまたはネットワークでエラーが発生していないか確認してください。
ステップ2: メディアストリームを確認する
デバイスでエラーが見つからない場合は、メディアストリームをトランスコードして再度再生します。 メディアストリームを再生できる場合、エンコードエラーのために再生に失敗しました。
MP4ビデオの再生時に起動時間が長いなどの再生エラーが発生した場合や、MOVビデオの再生に失敗した場合は、ビデオファイルの形式が原因である可能性があります。 データ解析を高速化するには、moovアトムをmdatアトムの前に配置します。 mdatアトムはメディアデータを含み、moovアトムはメディアデータのインデックスとして機能します。 メディアファイルをトランスコードして、moovアトムをmdatアトムの前に移動できます。
moovアトムの位置を確認するには、次のコマンドを実行します。
# The video source address can be the path of a local file or the URL of an online video. Example: http://pla****.alicdn.com/video/aliyunmedia.mp4. ffmpeg -v trace -i "Video source address" 2>&1 | grep -e type:\'mdat\' -e type:\'moov\'
次の図では、moovアトムはmdatアトムの前に配置されています。 この場合、ビデオは期待どおりに再生できます。
次の図では、mdatアトムはmoovアトムの前に配置されています。 この場合、再生エラーが発生する可能性があります。
オーディオコーデックやビデオコーデックなどのソースファイルに関する情報を照会するには、ffprobeツールをダウンロードするか、次のコマンドを実行します。 この情報を使用して、特定の方法で再生エラーが発生したかどうかを確認できます。
ffprobe "input.mp4"
またはffprobe "Video source address"
推奨される出力形式とコード変換ツール
出力形式: メディアストリームをH.264形式のMP4またはHLSファイルにトランスコードすることを推奨します。
トランスコードツール: 次のAlibaba Cloudサービスまたはオンプレミスツールを使用することを推奨します。
カテゴリ
サービスまたはツール名
説明
Alibaba Cloudサービス
ApsaraVideo VOD
ApsaraVideo VODは、メディアファイルをさまざまな形式に変換するための包括的なトランスコードおよびコンテナ形式変換機能を提供します。 ApsaraVideo VODは、通常のトランスコーディング、Narrowband HD 1.0トランスコーディング、Narrowband HD 2.0トランスコーディング、およびオリジナル品質のトランスコーディングをサポートしています。 詳細については、「概要」をご参照ください。
ApsaraVideoメディア処理 (MPS)
MPSは、通常のトランスコーディング、狭帯域HD 1.0トランスコーディング、狭帯域HD 2.0トランスコーディング、高速トランスコーディング、および解像度倍増トランスコーディングをサポートしています。 これにより、MPSを使用してトランスコードされたメディアストリームを幅広いプラットフォームで再生できます。 MPSは、OSS (Object Storage Service) バケットにメディアソースファイルを保存するユーザーに最適です。 詳細については、「概要」をご参照ください。
インテリジェントメディアサービス (IMS)
IMSは、OSSおよびApsaraVideo VODおよびライブストリームに保存されたオンデマンドビデオのトランスコーディングをサポートしています。
オンプレミスツール
FFmpegコーデック
ダウンロードリンク: FFmpeg Codecs
ステップ3: ネットワーク接続を確認する
デバイスまたはメディアストリームでエラーが見つからない場合は、ネットワークにアクセスできるかどうかを確認してください。
デバイスのネットワークにアクセスできるかどうかを確認します。
Wi-Fi接続が安定しているかどうか、およびダウンストリームネットワーク速度がメディアビットレートと一致するかどうかを確認します。
SpeedTestを使用して、ダウンストリームネットワーク速度を取得できます。 ダウンストリームのネットワーク速度がビデオビットレートと一致しない場合、吃音が発生し、メディアストリームの読み込みに失敗します。
4Gや5Gなどの高速ネットワークを使用しているかどうか、およびネットワークが安定しているかどうかを確認してください。
メディアストリームは、劣悪なネットワーク条件でロードされないことがあります。
Alibaba Cloud CDNが有効化されているかどうかを確認します。
Alibaba Cloud CDNが有効化されていない場合は、CDNを有効化してビデオ再生を改善します。 詳細については、「CDNのドメイン名の追加」をご参照ください。
Alibaba Cloud CDNが有効化されている場合は、次の項目を確認します。
CDN設定エラー: メディアコンテンツがプリフェッチされているかどうか、およびキャッシュされたコンテンツの有効期限が切れているかどうかを確認します。
メディアコンテンツがプリフェッチされないか、キャッシュされたコンテンツが期限切れになると、キャッシュミスが発生します。 この場合、メディアストリームの読み込みに失敗したり、再生中に吃音が発生したりします。 この問題は、ApsaraVideo VODにアップロードされた新しい動画で頻繁に発生します。 新しいビデオのプリフェッチ設定を構成することを推奨します。 詳細については、「更新とプリフェッチ」をご参照ください。
その他: 同じデバイス上の他のプレーヤーでメディアストリームを再生できるかどうかを確認します。
CDN設定エラーが見つからず、他のプレーヤーでメディアストリームを再生できる場合、CDNスケジューリングの結果として再生が失敗する可能性があります。
オリジンサーバーとユーザーが同じリージョンにあるかどうかを確認します。
オリジンサーバーが中国本土にデプロイされている場合、ユーザーが中国本土の外部からサーバーにアクセスすると、吃音が発生する可能性があります。 この場合、コンテンツ配信を高速化するために、ユーザーが配置されているのと同じリージョンにオリジンサーバーを展開することをお勧めします。
特定の時間範囲でトラフィックのスパイクが発生するかどうかを確認します。
トラフィックのスパイクが発生した場合、オリジンサーバーに送信されるリクエストが抑制される可能性があります。 これは、再生の吃音を引き起こします。
関連ドキュメント
以下のトピックでは、ApsaraVideo Playerに関するよくある質問に対する回答を示します。 原因が特定できない場合は、これらのトピックを参照してトラブルシューティングを容易にします。
技術サポートに連絡する
上記の操作を実行しても問題が解決しない場合は、チケットを起票してテクニカルサポートにお問い合わせください。 チケットを起票する方法の詳細については、「お問い合わせ」をご参照ください。
以下の情報をチケットに含めることを推奨します。
情報 | 例 | 説明 |
オペレーティングシステムとデバイスモデル | Android 9、Xiaomi | Android、iOS、Windows、Mac、Linuxなど、エラーが発生したデバイスのブランドとオペレーティングシステムを説明します。 |
SDKのタイプとバージョン | Android SDK 5.4.8.0 | ApsaraVideo Player SDKのタイプとバージョン番号を説明します。 たとえば、ApsaraVideo Player SDK For Web、ApsaraVideo Player SDK for Android、ApsaraVideo Player SDK for iOS、ApsaraVideo Player SDK for Flutter、およびApsaraVideo Player SDK for Windowsなどです。 |
ビデオソース | https:// xxxxxx.m3u8 | エラー再生URLまたはビデオファイルを指定します。 |
問題の説明、ログ、および画面の記録 | 2022年8月29日16時40分にビデオの再生が開始され、同じ日の17:00頃に吃音が発生しました。 ログが提供されます。 | 実行した操作と問題のある症状を説明します。 正確な時点を含めることをお勧めします。 エラーが再現できる場合は、AndroidまたはiOSで異常動作の完全なログを提供してください。 画面録画を含めることを選択できます。 エラーログを取得する方法の詳細については、「ApsaraVideo Player SDK for Androidでエラーログを取得するにはどうすればよいですか?」 と「ApsaraVideo Player SDK for iOSでエラーログを取得するにはどうすればよいですか?」をご参照ください。 |
エラー分布 | このエラーは、Androidデバイスでのみ毎回発生します。 | エラーが特定のパターンに分布しているかどうか、およびエラーの発生頻度を記述します。 たとえば、特定のビデオソース、プラットフォーム、またはSDKバージョンでエラーが発生したかどうか、およびエラーがランダムに発生するか、毎回発生するかどうかを記述します。 |