このトピックでは、さまざまなプラットフォーム上の ApsaraVideo Player SDK に関する一般的な質問とそのソリューションについて説明します。
標準ライブストリーミングにおける RTMP と HTTP-FLV の比較
次の理由から HTTP-FLV を使用できます。
ApsaraVideo Live コンソールで URL を生成すると、RTMP と HTTP-FLV の両方の URL が作成されます。データは両方のプロトコルで同じです。ネットワークプロトコルチャンネルのみが異なります。
HTTP プロトコルは、インターネット上の主要なプロトコルです。CDN、キャリア、中間ネットワークデバイスなどのネットワークリンクは、長年にわたって HTTP に最適化されてきました。デフォルトの HTTP ポート 80 と 443 も一般的なホワイトリストポートであり、無効にされる可能性は低いです。RTMP プロトコルは古く、そのデフォルトポート 1935 はファイアウォールなどのデバイスによって無効にされる可能性があり、例外を引き起こす可能性があります。したがって、複雑なネットワーク環境では、HTTP-FLV は RTMP よりも安定しており、スタッタリングや遅延の点でパフォーマンスが優れています。
再生の失敗
ApsaraVideo VOD 動画の再生失敗をトラブルシューティングする方法
再生の失敗は、ストリームのエンコーディングの問題、ネットワークエンドポイントまたは CDN の問題、フォーマットの問題、またはバケットの問題によって引き起こされる可能性があります。原因を特定するには、プレーヤーからのエラーメッセージとネットワークリクエストを確認してください。以下のリストは、一般的な問題とその解決策を説明しています。
支払い遅延: アカウントの残高を確認してください。アカウントに支払い遅延がある場合、動画は再生できません。
ネットワークエンドポイントの問題: 動画の再生に失敗し、エラーコード
4400が報告されます。エラーコード4400は、サーバーまたはネットワークの問題によりリソースを読み込めないことを示します。SSL 証明書が設定されているか、HTTPS 証明書が期限切れまたは無効になっていないかを確認してください。フォーマットの問題: 動画フォーマットがプレーヤーと互換性がありません。ApsaraVideo VOD がサポートする再生フォーマットの詳細については、「プレーヤー SDK の特徴」をご参照ください。
説明認証付きの M3U8 ファイルを再生するには、カスタムドメイン名を使用する必要があります。ドメイン名をアタッチするには、「高速化ドメイン名の追加」をご参照ください。
バケットの問題: 指定されたバケットが無効であるか、非公開バケットの認証が期限切れになっています。これにより再生が失敗します。これを解決するには、バケット認証を無効にし、バケットの権限を公開読み取りに設定します。
クロスドメインの問題: 高速化ドメイン名のリージョンが動画の再生リージョンと同じであるかを確認してください。異なる場合、再生は失敗します。新しい高速化ドメイン名を作成するか、元のドメイン名のリージョンを変更できます。
ローカル M3U8 動画の再生時のエラー
M3U8 ファイルには複数の TS シャードが含まれています。これらのシャードはローカルに存在する必要があります。M3U8 ファイル内のパスは、これらの TS ファイルの正しい場所を指している必要があります。そうでない場合、ファイルは読み込めません。シャードがリンクとして指定されている場合、再生はサポートされません。
次の図は、

ローカル M3U8 ファイルは、前の図に示されているフォーマットである必要があります。
ApsaraVideo VOD 動画が自分のサイトでは正しく再生されるが、外部で共有して再生できない
次のように問題をトラブルシューティングできます。
動画がまだ ApsaraVideo VOD に存在するかどうかを確認します。
高速化ドメイン名が追加されているかどうかを確認します。
高速化ドメイン名が追加されていない場合: ストレージバケットの権限を確認します。ストレージバケットが非公開かどうかを確認します。非公開の場合、認証が必要です。動画を直接再生するには、認証を無効にしてバケットの権限を公開読み取りに設定できます。バケットを公開読み取りに設定すると、セキュリティリスクが生じることに注意してください。
高速化ドメイン名が追加されている場合: 認証が有効になっているかどうかを確認します。有効になっている場合は、認証の有効期間を延長するか、認証を無効にすることができます。認証を無効にすると、セキュリティリスクが生じることに注意してください。
再生の例外
動画は再生されるが音声が出ない
ApsaraVideo Player は Alibaba Cloud プロダクトに最適化されています。他のソース URL を使用すると、動画は再生されるが音声が出ない場合があります。この問題が発生した場合は、まずプレーヤーが使用している再生ソースを確認してください。
動画の起動が遅い
MP4 動画の起動が遅い場合、ソース動画の moov アトム (音声および動画データのインデックス) が mdat アトム (音声および動画データ) の後にある可能性があります。動画をトランスコーディングして、moov アトムを mdat アトムの前に移動させることができます。これにより、再生の解析が高速化されます。
動画のトランスコーディングの詳細については、「推奨されるトランスコーディングテンプレート」をご参照ください。
moov アトムの位置を確認するには、次のコマンドを実行します。
# 動画ソースアドレスは、ローカルファイルのパスまたはオンライン動画の URL です。例: 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 アトムの前に配置されています。この場合、再生エラーが発生する可能性があります。
ApsaraVideo Player SDK for Android および ApsaraVideo Player SDK for iOS の場合、ApsaraVideo VOD はミリ秒レベルの起動ソリューションを提供します。このソリューションは、動画の起動速度を大幅に向上させます。詳細については、「ApsaraVideo Player を使用して高速読み込みの全画面再生を実現する」をご参照ください。
暗号化された動画の再生
DRM 暗号化された動画がブラウザで再生できない
ApsaraVideo Player for Web を使用して DRM 暗号化された動画を再生する場合、ブラウザに制限があります。サポートされているブラウザの詳細については、「機能の互換性」をご参照ください。
HLS 暗号化動画の再生に必要な MtsHlsUriToken パラメーターとは何ですか、またどのように取得しますか?
MtsHlsUriToken パラメーターはカスタムパラメーターです。標準の HLS 暗号化では、暗号化文字列が HLS ストリームに書き込まれた後、復号サーバーのアドレスが M3U8 マニフェストに追加されます。特定のユーザーのみが動画にアクセスできるようにするには、復号アドレスに ID 認証機能が必要です。MtsHlsUriToken パラメーターは、復号サーバーに認証レイヤーを追加します。その後、この認証ロジックに基づいて特別なパラメーターが生成され、復号認証に追加されます。
暗号化を設定する際には、MtsHlsUriToken を生成するためのトークン発行サービスを構築する必要があります。詳細については、「HLS 暗号化 - ステップ 4」をご参照ください。
クロスドメイン再生
英国 (ロンドン) リージョンの OSS にアップロードされた動画が中国本土で遅く読み込まれる
中国本土から英国 (ロンドン) リージョンへのアクセスは、リージョン間のアクセスです。高速化ドメイン名を追加し、Global Accelerator を使用することができます。
中国国外で ApsaraVideo VOD 動画を再生する際のアクセス遅延と頻繁なスタッタリングを解決する方法
再生中のスタッタリングは、通常、不安定なネットワークが原因です。スタッタリングがプレーヤーエラーを引き起こすほど長い場合、CDN の不安定性に関連している可能性があります。スタッタリングが頻繁に発生する場合は、ネットワークリクエストを確認してください。ネットワーク速度が動画のビットレートと一致していない可能性があります。ネットワーク速度を上げるか、ビットレートを下げる必要があるかもしれません。
OSS 動画の再生
OSS に保存されている特定の動画を再生する際に多くのリクエストが送信される場合はどうすればよいですか?
ソース動画に問題がないか確認してください。たとえば、プレーヤーがソース動画をデコードする際に多くの重複リクエストを送信していないか確認します。ApsaraVideo VOD トランスコーディングテンプレートを使用して、再生前に動画をトランスコーディングできます。詳細については、「動画と音声のトランスコーディング」をご参照ください。
ApsaraVideo VOD のイメージリソースをダウンロードせずに、リンクを使用して直接プレビューするにはどうすればよいですか?
ApsaraVideo VOD に保存されているイメージは、カスタムドメイン名を使用している場合にのみプレビューできます。デフォルトのドメイン名でアクセスすると、イメージは強制的にダウンロードされます。ApsaraVideo VOD にカスタムドメイン名を追加できます。詳細については、「高速化ドメイン名の追加」をご参照ください。
SSL 証明書
一部のコンピューターで動画が再生できず、エラーコード 4400 が報告される
エラーコード 4400 は、サーバーまたはネットワークの問題、あるいはフォーマットがサポートされていないためにリソースを読み込めないことを示します。SSL 証明書が設定されているかどうかを確認してください。
再生 URL
ApsaraVideo VOD に保存されている動画の短い再生 URL を生成する方法
動画のストレージの場所の権限が非公開の場合、その再生 URL には認証文字列が含まれ、長い URL になります。権限が公開読み取りまたは公開読み書きの場合、再生 URL には認証文字列が含まれず、短い URL になります。ストレージの場所の権限とその変更方法の詳細については、「ストレージバケットの管理」をご参照ください。
ストレージの場所の権限を公開読み取りまたは公開読み書きに設定すると、ホットリンクや不正ダウンロードのリスクが生じます。この設定は推奨されません。
トランスコーディングフォーマットを HLS に設定した後、トランスコーディングされていない動画を再生できないのはなぜですか?
ApsaraVideo Player を動画 ID (VID) と再生認証情報で使用する場合、トランスコーディングされた動画のみを再生できます。トランスコーディングされていない動画は、URL を使用してのみ再生できます。GetMezzanineInfo 操作を呼び出してソース動画の URL を取得するか、ApsaraVideo VOD コンソールにログインして動画の URL を表示できます。
ApsaraVideo VOD に保存されている動画の再生 URL は固定ですか?
動画のストレージの場所の権限が非公開の場合、その再生 URL は期間限定で有効です。再生 URL 内の auth_key 認証文字列は、設定された有効期限に基づいて変化します。
永続的な再生アドレスを取得するには、動画のストレージの場所の権限を公開読み取りまたは公開読み書きに変更します。生成された再生アドレスの ? 文字より前の部分は永続的なアドレスであり、無期限に再生に使用できます。ストレージの場所の権限とその変更方法の詳細については、「ストレージバケットの管理」をご参照ください。
ストレージの場所の権限を公開読み取りまたは公開読み書きに設定すると、ホットリンクや不正ダウンロードのリスクが生じます。この設定は推奨されません。
動画を ApsaraVideo VOD にアップロードした後、URL を Taobao などのプラットフォームに送信すると、なぜ再生のためにブラウザにリダイレクトされるのですか?
動画の再生は、ブラウザとローカルデバイスのデコード能力に依存します。そのため、通常は再生のためにブラウザにリダイレクトされます。
動画を更新した後、再生中に新しい動画が表示されないのはなぜですか?
動画を更新した後、最新のデータを取得するために URL をパージする必要があります。ApsaraVideo VOD コンソールで URL をパージするには、「更新/プリフェッチ」をご参照ください。API または SDK を使用して URL をパージするには、「PreloadVodObjectCaches」または「RefreshMediaPlayUrls」をご参照ください。
プレーヤーから動画の各フレームのピクセルを取得する方法
ApsaraVideo Player for Android:
OnRenderFrameCallbackコールバックをリッスンすることでピクセルを取得できます。ApsaraVideo Player for iOS:
onRenderingFrameコールバックをリッスンすることでピクセルを取得できます。player.renderingDelegate = self; #pragma mark CicadaRenderingDelegate - (BOOL)onRenderingFrame:(CicadaFrameInfo*) frameInfo{ if(frameInfo.frameType==Cicada_FrameType_Video){ // 動画 NSLog(@"receive HW frame:%p pts:%ld foramt %d", frameInfo.video_pixelBuffer, frameInfo.pts, CVPixelBufferGetPixelFormatType(frameInfo.video_pixelBuffer)); } else if (frameInfo.frameType==Cicada_FrameType_Audio){ // 音声 } return NO; }ApsaraVideo Player for Web: この機能はサポートされていません。
API または SDK を使用して ApsaraVideo VOD で AVI 動画の再生 URL を取得できないのはなぜですか?
GetPlayInfo 操作は、AVI フォーマットの動画ストリームの取得をサポートしていません。したがって、この操作に依存する SDK は、AVI フォーマットの動画ストリームを取得できません。
ApsaraVideo VOD コンソールで AVI 動画の再生 URL を表示できます。詳細については、「音声または動画ファイルのクエリ」をご参照ください。
GetPlayInfo 操作が動画再生 URL を取得する際に「The video has no stream to play for the request parameter」というエラーを報告します
次のように問題をトラブルシューティングできます。
メディアアセットのストレージクラスが標準であることを確認します。
デフォルトでは、GetPlayInfo 操作は標準ストレージクラスのメディアアセットの再生ストリームのみを返します。他のストレージクラスのメディアアセットの再生ストリームを取得するには、
PlayConfigパラメーターのStorageClassパラメーターを All に設定します。
メディアアセットにトランスコーディングされたストリームがあることを確認します。
トランスコーディングされたストリームを取得するには、まず 動画と音声のトランスコーディング を実行してから GetPlayInfo 操作を呼び出す必要があります。ソースストリームの URL を取得するには、「GetMezzanineInfo」をご参照ください。
スタッタリング
動画のスタッタリングを減らし、ヒット率を向上させるためにどのような対策ができますか?
URL 署名の設定、コンテンツの更新とプリフェッチ、キャッシングの設定、パラメーターのフィルタリングなどにより、ヒット率を向上させることができます。
プログレスバーを動画の中間にドラッグすると動画がカクカクする
動画のキーフレームが少なすぎると、プログレスバーをドラッグする際に、対応するフレームを計算するために多くの先行および後続のキーフレームを読み込む必要があり、スタッタリングが発生します。この場合、動画をトランスコーディングしてキーフレームを追加し、スタッタリングを減らすことができます。トランスコーディングの詳細については、「動画と音声のトランスコーディング」をご参照ください。
H.266 デコーダープラグイン
エラー 0x200600001 MEDIA_PLAYER_ERROR_CODEC_VIDEO_NOT_SUPPORT が発生します
メッセージが vvc plugin not enabled の場合、ビジネスレイヤーがプラグインを有効化していません。AliPlayerGlobalSettings.enableCodecPlugin 操作を呼び出してプラグインを有効化します。
メッセージが vvc plugin not loaded の場合、プラグインが統合されていません。プラグインライブラリがプロジェクトに正常にインポートされているか確認するか、明示的に loadlibrary を呼び出して、それが読み込まれることを確認します。
エラー 0x50020002 MEDIA_PLAYER_ERROR_CODEC_PREMIUM_INVALID が発生します
これは、Professional Edition ライセンスが取得されていないことを示します。H.266 デコーダープラグインは Professional Edition の機能です。Professional Edition ライセンスの取得方法の詳細については、「ライセンスの管理」をご参照ください。
動画のサムネイル
ApsaraVideo VOD から動画のサムネイルを取得できませんでした
ApsaraVideo VOD コンソールは、デフォルトで HTTPS プロトコルを使用します。HTTPS をサポートするリソースのみが直接プレビューされ、スクリーンショットとして表示されます。ブラウザの開発者ツールを開いて、特定のエラーメッセージを表示することもできます。
動画レビュー
ApsaraVideo VOD での手動レビュー中に動画を再生できない
ApsaraVideo VOD には 2 つのレビューモードがあります。レビューモードが「公開前にレビュー」に設定されている場合、動画はレビューに合格した後にのみ再生できます。2 つのレビューモードは次のとおりです。
レビュー前に公開: 動画がトランスコーディングされた後、デフォルトで「通常」とマークされ、直接再生できます。その後、手動で動画をレビューする必要があります。レビュー後に動画がブロックされた場合、再生できなくなります。
公開前にレビュー: 動画がトランスコーディングされた後、デフォルトでレビュープロセスに入り、「レビュー中」とマークされます。動画は手動レビューに合格した後にのみ再生できます。
パラメーターの解析
videoID とは何か、なぜ必要なのか、どうすれば取得できるのか?
セキュリティ上の理由から、メディアファイルを ApsaraVideo VOD にアップロードすると、ファイルの videoID (videoID) を受け取りますが、URL は受け取りません。ApsaraVideo VOD OpenAPI を呼び出して videoID を取得することもできます。詳細については、「動画再生 URL の取得」をご参照ください。
動画を ApsaraVideo VOD にアップロードすると、videoID を取得します。
ApsaraVideo VOD コンソールで videoID を取得することもできます。手順は次のとおりです。
ApsaraVideo VOD コンソールにログインします。
左側のナビゲーションウィンドウで、[メディアライブラリ] > [オーディオ/ビデオ] を選択します。
動画リストで、videoID を取得します。
コンソールから取得した videoID を使用して、ダウンロードと再生をテストできます。ApsaraVideo VOD にファイルをアップロードする方法の詳細については、「アップロード SDK の概要」をご参照ください。
AccessKey ID と AccessKey Secret とは何か、どうすれば取得できるのか?
Alibaba Cloud の AccessKey ID と AccessKey Secret は、Alibaba Cloud API にアクセスするための唯一の認証情報です。AccessKey ID は ID 識別子です。AccessKey Secret は、改ざんを防ぐためにアクセスパラメーターに署名するために使用されます。AccessKey Secret はログインパスワードに似ています。誰にも開示しないでください。
取得操作:
ApsaraVideo VOD コンソールにログインします。
右上隅のプロファイル画像にマウスポインターを合わせ、ショートカットメニューで [AccessKey の管理] をクリックします。
[AccessKey の管理] ページで、AccessKey ペアを作成するか、既存の AccessKey ID の AccessKey Secret を表示します。
playKey とは何か、どうすれば取得できるのか?
playKey (API キー) は、プレーヤー SDK が動画再生 URL を取得する際に ID を認証するために使用される再生キーです。再生認証は、Alibaba Cloud AccessKey セキュリティ認証に基づく二次認証メカニズムです。ホットリンクを効果的に防ぐことができます。デフォルトでは、ユーザーが再生に使用する可能性のあるプラットフォームに基づいて、Flash、HTML5、iOS、および Android プラットフォーム用に playKey が提供されます。
キーのセキュリティを確保するため、playKey を表示する際には、携帯電話に送信された確認コードを入力して ID を確認する必要があります。
取得操作:
ApsaraVideo VOD コンソールにログインします。
左側のナビゲーションウィンドウの [設定管理] エリアで、 を選択します。セキュアダウンロードモードを有効にします。
[キーの取得] セクションで、[一意のアプリ ID] と [オフライン復号秘密鍵] を入力します。
[キーの生成とダウンロード] をクリックします。
playauth とは何か、どうすれば取得できるのか?
プレーヤーは、さまざまなシナリオに合わせて 3 つの再生モードをサポートしています。playauth モードが最も安全です。setAuthInfo 再生モードを使用してください。
playauth は、videoID、AccessKey ID、AccessKey Secret などの情報を含む暗号化された文字列です。ApsaraVideo VOD サービスは、この情報を混合して暗号化します。プレーヤーが playauth を受け取ると、動画を再生できます。
再生モード | シナリオ | 長所と短所 | 推奨されますか? |
setDataSource | テスト用 | 漏洩のリスク。AccessKey ID と AccessKey Secret をクライアントコードに直接書き込む必要があります。クライアントがクラックされた場合、キーが漏洩する可能性があります。 | 商用利用は推奨されません。 |
setAuthInfo | 商用利用向け | 安全。動画の URL やリンクは公開されません。 | 商用利用に推奨 |
ローカルおよびネットワーク URL の再生 | ローカル動画と動画 URL を再生できます | シンプル。他のプラットフォームの動画を再生できます。 | ローカル動画またはネットワーク動画を再生する必要がある場合に使用します。 |
フロー: 。
再生認証情報の取得: サーバーで、再生認証 SDK (サーバーサイド SDK) を呼び出して、ApsaraVideo VOD サービスから再生認証情報を取得します。
動画再生の完了: プレーヤー SDK は、動画 ID と再生認証情報を使用して、ApsaraVideo VOD サービスから動画の再生 URL を取得します。その後、動画ストリームを読み込み、デコードして再生します。
再生認証情報は 100 秒間有効です。特定の動画の再生 URL を取得するためにのみ使用でき、他の動画には再利用できません。認証情報が期限切れになると、再生 URL を取得できなくなります。新しい認証情報を取得する必要があります。
プレーヤー SDK は、再生認証情報に基づいて再生 URL を自動的に取得し、デコードと再生を行います。再生 URL は 30 分間有効です。再生認証情報が期限切れになった場合は、新しい認証情報を取得し、それをプレーヤー SDK に渡して再生 URL を更新する必要があります。
Alibaba Cloud アカウントのセキュリティを確保するため、特に Web 再生シナリオでは、RAM ユーザーの AccessKey ペアを使用してください。