このトピックでは、ビデオ再生に関する問題を特定し、解決する方法について説明します。
トラブルシューティング戦略
ビデオ再生は、多くの原因で失敗する可能性があります。 原因を特定するには、まずエラーにパターンがあるかどうかを確認します。 パターンがある場合は、次の表の考えられる原因を参考に調査を進めます。 明確なパターンがない場合は、エンドデバイス、メディアストリーム、ネットワークを調べることで問題をトラブルシューティングします。 それでも原因を特定できない場合は、Alibaba Cloud のテクニカルサポートにお問い合わせください。
-
特定のパターンが見られるエラー:
エラーパターン
考えられる原因
特定の ISP ネットワークまたは地域のユーザーで再生が失敗する。
この問題は、地域のキャリアネットワークの問題または CDN スケジューリングの問題が原因である可能性があります。
特定のオペレーティングシステムを搭載したエンドデバイスで再生が失敗する。
この問題は、プラットフォーム間の SDK 実装の違いや、システムの互換性の問題が原因である可能性があります。
特定ブランドまたはモデルのエンドデバイスで再生が失敗する。
この問題は、デバイスの互換性の問題が原因である可能性があります。
特定のオーディオまたはビデオファイルで再生が失敗する。
この問題は、メディアファイルのエンコード、CDN プリフェッチ、またはビジネスアクセスポリシーの問題が原因である可能性があります。
-
特定のパターンが見られないエラー: 原因は複雑な場合があります。 この場合、コンテンツからユーザーへのワークフローを追跡して、問題のあるノードを特定し、根本原因を特定します。
ステップ 1:エンドデバイスの確認
エンドデバイスの互換性
まず、メディアストリームプロトコルがオペレーティングシステムとアプリケーション環境でサポートされていることを確認します。 サポートされていない場合は、ストリームをトランスコードする必要があります。 詳細については、「トランスコードの推奨事項」をご参照ください。 次の表に、Player SDK でサポートされているビデオプロトコルとコーデックを示します。
ネイティブアプリ
|
オペレーティングシステム |
ビデオコーデック |
ビデオプロトコル |
オーディオコーデック |
|
Android |
|
|
|
|
iOS |
|||
|
Windows |
|||
|
macOS |
|||
|
Linux |
Web
メディアストリームプロトコルが以下の Web 互換性要件を満たしている場合は、SSL 証明書があり、クロスオリジンアクセスが有効になっていることを確認します。 詳細については、「HTTPSセキュアアクセラレーションの有効化」および「クロスオリジンアクセスの設定」をご参照ください。
|
オペレーティングシステム |
ビデオコーデック |
ビデオプロトコル |
オーディオコーデック |
|
Android |
H.264 |
|
|
|
iOS |
H.264 |
説明
FLV と MPEG-DASH はサポートされていません。 |
|
|
H.265 |
|
||
|
Windows |
H.264 |
|
|
|
macOS |
H.264 |
|
|
|
H.265 |
|
Android デバイスの一部のブラウザーでは、HLS ビデオを再生するために MSE (Media Source Extensions) が必要です。 詳細は次のとおりです:
|
Android デバイスのブラウザー |
HLS サポート |
|
|
サポート済み |
|
DingTalk |
サポート済み |
|
UC/Quark |
サポート済み |
|
QQ Browser |
サポート済み |
|
Chrome |
MSE が必要 |
|
Huawei Browser |
MSE が必要 |
|
OPPO Browser |
サポート済み |
|
vivo Browser |
サポート済み |
|
Mi Browser |
MSE が必要 |
Player SDKの互換性
お使いのデバイスが互換性要件を満たしている場合は、別のプレーヤーを使用して、問題が ApsaraVideo Player SDK の互換性の問題であるかどうかを確認します。
-
別のプレーヤーでビデオが正しく再生される場合、問題は ApsaraVideo Player SDK にある可能性があります。 この場合は、テクニカルサポートにお問い合わせください。
-
別のプレーヤーでもビデオが再生されない場合は、メディアストリームとネットワークを確認する必要があります。
ステップ 2:メディアストリームの確認
上記原因を除外した後、メディアストリームをトランスコードして、再生を再度試みます。 正しく再生される場合、元のストリームのエンコードが不適切であった可能性があります。
moov アトム (メディアデータインデックス) が mdat アトム (メディアデータ) の後にある場合、MP4 ビデオの再生開始が遅くなったり、MOV ビデオの再生が失敗したりすることがあります。 ソースビデオをトランスコードして moov アトムを mdat アトムの前に移動すると、再生の解析が高速化されます。
-
次のコマンドを使用して、
moovアトムの位置を確認します:# ソースビデオの URL には、ローカルファイルパスまたはオンライン URL (例: http://pla****.alicdn.com/video/aliyunmedia.mp4) を指定できます。 ffmpeg -v trace -i "source_video_url" 2>&1 | grep -e type:\'mdat\' -e type:\'moov\'正常なシナリオでは、
moovアトムはmdatアトムの前にあり、ファストスタート最適化を示しています。 出力例を以下に示します。# ffmpeg -v trace -i sample_faststart.mp4 2>&1 | grep -e type:\'mdat\' -e type:\'moov\' [mov,mp4,m4a,3gp,3g2,mj2 @ 0x54d3b80] type:'moov' parent:'root' sz: 603629 40 231901466 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x54d3b80] type:'mdat' parent:'root' sz: 231297797 603677 231901466異常なシナリオでは、
moovアトムはmdatアトムの後にあります。# ffmpeg -v trace -i sample.mp4 2>&1 | grep -e type:"mdat" -e type:"moov" [mov,mp4,m4a,3gp,3g2,mj2 @ 0x59e1b80] type:'mdat' parent:'root' sz: 231297797 48 231901466 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x59e1b80] type:'moov' parent:'root' sz: 603629 231297845 231901466 -
次のコマンドまたは ffprobe コマンドラインツール (ffprobe ツール) を使用して、ソースファイルのオーディオコーデックやビデオコーデックなどの情報をクエリします。 これにより、問題のあるビデオに共通のパターンがあるかどうかを分析できます:
ffprobe "input.mp4"またはffprobe "source_video_url"Input #0, mov, mp4, m4a, 3gp, 3g2, mj2, from 'input.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : www.aliyun.com - Media Transcoding Duration: 00:00:17.56, start: 0.000000, bitrate: 3088 kb/s Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1440x2560, 2890 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default) Metadata: handler_name : VideoHandler Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 191 kb/s (default) Metadata: handler_name : SoundHandler
トランスコードの推奨事項
-
トランスコード出力: H.264 MP4 または HLS ビデオストリームへのトランスコードを推奨します。
-
トランスコード方法: 次の Alibaba Cloud サービスまたはローカルツールの使用を推奨します。
カテゴリ
サービスまたはツール
説明
Alibaba Cloud サービス
ApsaraVideo VOD
ApsaraVideo VOD は、さまざまなメディアフォーマット変換のニーズに対応するため、包括的なトランスコードおよびトランスマックス機能を提供します。 標準トランスコード、狭帯域 HD 1.0、狭帯域 HD 2.0、およびソース品質のトランスコードをサポートしています。 詳細については、「オーディオとビデオのトランスコード」をご参照ください。
ApsaraVideo Media Processing (MPS)
ApsaraVideo Media Processing (MPS) は、マルチメディアデータをすべてのプラットフォームでの再生に適したフォーマットにトランスコードします。 標準トランスコード、狭帯域 HD 1.0、狭帯域 HD 2.0、高速トランスコード、および解像度倍増トランスコードをサポートしています。 これは、独自の OSS バケットにソースビデオファイルを保存するユーザーに最適です。 詳細については、「メディアトランスコーディング」をご参照ください。
Intelligent Media Services (IMS)
Intelligent Media Services (IMS) は、オンデマンドトランスコーディングおよびリアルタイムトランスコーディング機能を提供します。 OSS または ApsaraVideo VOD に保存されているメディアのトランスコード、およびライブストリームのトランスコードをサポートしています。
ローカルツール
FFmpeg Codecs
ダウンロード先:FFmpeg Codecs
ステップ 3:ネットワークの確認
上記の手順で問題が解決しない場合は、ネットワーク伝送を確認して再生エラーの原因を特定します。
-
エンドデバイスが安定したネットワークに接続されていることを確認してください。
-
Wi-Fi: 現在のネットワークは安定しており、アクセス可能ですか? 下りネットワーク速度はビデオビットレート以上ですか?
Speedtest.net を使用して、下りネットワーク速度を確認できます。速度がビデオビットレートを下回る場合、読み込みの失敗や再生の途切れが発生する可能性があります。
-
モバイルネットワーク: デバイスは 4G や 5G のような高速ネットワークに接続されていますか? 信号強度はどのくらいですか?
ネットワークの状態が悪い場合、メディアストリームを読み込むのに十分な速度が得られないことがあります。
説明DNS ハイジャックが発生した場合は、DNS を Alibaba Cloud Public DNS (223.5.5.5、223.6.6.6) に手動で設定して、再生を復元できます。
-
モバイルデバイスで [設定] > [Wi-Fi] に移動します。
-
現在のネットワークの右側にある詳細ボタンをタップして、ネットワーク詳細ページを開きます。
-
DNS を設定します。
ネットワーク設定ページには、[IPアドレス] (サブネット、ゲートウェイ)、[IPv6アドレス] (IP アドレス、ゲートウェイ)、[DNS] の 3 つのセクションがあります。 [DNS] エントリの横にある矢印をタップして、詳細設定を入力します。
-
-
CDN アクセラレーションが有効になっているかどうかを確認してください。
-
CDN アクセラレーションが有効になっていない場合は、再生エクスペリエンスを向上させるために設定することを推奨します。 詳細については、「アクセラレーションドメイン名の追加」をご参照ください。
-
CDN アクセラレーションが有効になっている場合:
-
CDN 設定の問題: メディアコンテンツはプリフェッチされていますか? コンテンツキャッシュは期限切れになっていませんか?
プリフェッチされていないコンテンツや期限切れのキャッシュによって引き起こされる CDN キャッシュミスは、読み込みの失敗や再生のカクつきにつながる可能性があります。 この問題は、新しくアップロードされたビデオでよく見られます。 新しいビデオのコンテンツを積極的にプリフェッチすることを推奨します。 詳細については、「リソースの更新とプリフェッチ」をご参照ください。
-
その他の問題: 同じエンドデバイスで他のアプリのビデオは正常に再生されますか?
CDN が正しく設定されており、他のアプリが問題なくビデオを再生できる場合、再生エラーは地域的な CDN スケジューリングの問題が原因である可能性があります。
-
-
-
オリジンサーバーとエンドユーザーの場所を確認してください。
オリジンサーバーが中国本土にあり、ユーザーが海外にいる場合、著しいカクつきが発生する可能性があります。 この場合、ユーザーに近いリージョンにオリジンサーバーをデプロイして、パフォーマンスを向上させます。
-
視聴のピークタイムを確認してください。
同時に視聴している人が多すぎると、オリジンサーバーがトラフィックをスロットリングし、再生がカクつく原因となることがあります。
関連ドキュメント
上記の手順に従っても原因を特定できない場合は、以下のドキュメントで同様のケースと解決策を確認してください:
テクニカルサポートへのお問い合わせ
問題が解決しない場合は、チケットを送信してください。 チケットを送信する方法の詳細については、「お問い合わせ」をご参照ください。
問題を効率的に解決するために、チケットに以下の情報をご提供ください。
|
項目 |
例 |
説明 |
|
オペレーティングシステムとデバイスプラットフォーム |
Android 9、Xiaomi |
デバイスのブランドとオペレーティングシステムのバージョン (例: Android 9 搭載の Xiaomi、iOS 15、Windows 11、macOS 12) を提供してください。 |
|
SDK とバージョン |
Android SDK 5.4.8.0 |
使用している Player SDK とそのバージョン番号を指定してください。 Player SDK には、Web SDK、Android SDK、iOS SDK、Flutter SDK、Windows SDK があります。 |
|
ビデオソース |
https://xxxxxx.m3u8 |
問題が再現するビデオソースの URL またはビデオファイルを提供してください。 |
|
問題の説明、ログ、画面録画 |
2022年8月29日 16:40 に再生を開始し、17:00 頃にカクつきが発生しました。 ログを添付します。 |
再現手順と観察された症状を、特定のタイムスタンプを含めて詳細に説明してください。 再現可能な問題については、再現手順の完全なログを提供してください。 ログの取得方法については、「Androidでのログの取得」または「iOSでのログの取得」をご参照ください。 必要に応じて、画面録画を添付してください。 |
|
エラーパターン |
この問題は Android デバイスでのみ発生し、iOS では発生しません。 常に再現可能です。 |
問題に特定のパターンがあるかどうか、またその頻度を説明してください。 たとえば、問題が特定のビデオソース、デバイスプラットフォーム、または SDK バージョンに限定されているか、断続的か常に再現可能かを指定してください。 |