メディアプレーヤーに関するよくある質問(FAQ)
よくある質問(FAQ)
- このバージョンのW3C Media APIアドオンでサポートされるストリーミング形式を教えてください。
- MSE/EME APIを使用したShaka PlayerによるHLSとDASHのアダプティブストリーミング再生
- HTMLMediaElement.src属性での非アダプティブストリーミング形式(MP4、MP3)の再生
- メディアフォーカス管理はサポートされますか?
- はい。シミュレーターとVega OSを搭載したFire TV Stickデバイスの両方でサポートされます。D-Padおよびダイレクト再生/一時停止/早送り/早戻しボタンは、トランスポートコントロールとして機能します。
- アプリに独自のメディアコントロールGUIを実装することはできますか?
- はい。アプリでカスタムのメディアコントロールGUIを実装し、再生、一時停止、シークのAPIを以下のように呼び出すことができます。
video.play(); // 再生を再開する video.pause(); // 再生を一時停止する video.currentTime = <秒単位のシーク位置 >; // X.Y秒などの位置にシークする
- はい。アプリでカスタムのメディアコントロールGUIを実装し、再生、一時停止、シークのAPIを以下のように呼び出すことができます。
- 同じDRMキーをオーディオストリームとビデオストリームの両方に再利用することはできますか?
- セキュリティ上の理由により、オーディオとビデオに同じCDKを使用できるのは、ビデオのセキュリティ要件で非セキュアメモリへの復号化が許可される場合に限られます。たとえば、 Widevineでは、L3要件に相当する SW_SECURE_CRYPTO、SW_SECURE_DECODE、さらにSW_SECURE_DECODEを同時に許可するHW_SECURE_CRYPTOが該当します。PlayReadyと SL150 FairPlayでは サポートされません。
- 同じDRMキーをL1(つまり、HDコンテンツ)ビデオURIに使用するとどうなりますか?
- HW_SECURE_ALLの制限がある場合(WidevineではL1、PlayReadyではSL2000/3000、FairPlayはこのモードでのみ動作)、すべてのビデオバリアントで同じCDKを共有できます。このシナリオでは、オーディオは別のCDKを使用する必要があります。
- ExoPlayerのmultiSessionでは同じキーが使用されますが、Shaka Playerでこれに相当する機能はありますか?
- DRMには、CDKをリクエストして管理する方法が2つあります。
- DRMセッションごとに1つのCDKを処理する。つまり、メディアアセット内のオーディオとビデオが両方とも暗号化されている場合、それらが同じCDKを共有していても、クライアントアプリではオーディオ用とビデオ用に別々のDRMセッションを作成する必要があります。このため、1回の再生セッションで複数のライセンス交換が発生します。
- 単一のDRMセッションですべてのCDKを処理する。ExoPlayerのドキュメントによれば、複数のライセンス交換の発生を回避できるため、この方法の方が良いとされています。
- Shaka Playerには、上記のどちらを使用するかを選択する構成オプションはありません。一方、ExoPlayerには「マルチセッション」ノブが用意されています。ExoPlayerのデフォルトモードは2番目の方法です。
- DRMには、CDKをリクエストして管理する方法が2つあります。
-
DRM_LICENSE_REQUEST_FAILEDエラーで失敗したShaka Player DRMライセンスのhttpリクエストを解決する方法を教えてください。Shaka Playerの
DRM LICENSE_REQUEST_FAILED(6007)エラーが発生すると、一部のサーバーが入力リクエストを解釈できない可能性があります。この問題を回避するには、次のサンプルコードに示すように、HTTPリクエストに「content-type」ヘッダーを追加します。const netEngine = this.player.getNetworkingEngine(); const filter = (type : shaka.net.NetworkingEngine.RequestType, request : shaka.extern.Request) :void => { if (type === shaka.net.NetworkingEngine.RequestType.LICENSE) { console.log("Appending http header for License request"); request.headers["content-type"] = "application/octet-stream"; /* ユーザーの他のヘッダーがある場合 request.headers["header"] = "data"; */ } }; -
VegaでサポートされているJSベースのプレーヤーにはどのようなものがありますか?
Vegaでは、Shaka Player、Hls.js、DASH.js(オープンソース)、Bitmovin、THEOplayer、Brightcove(プロプライエタリ)がサポートされています。AmazonはShaka Player、Hls.js、DASH.jsをVegaに移植するパッチをリリースしています。
-
Amazonでは、Shaka Playerのバージョンが新しくなるたびにパッチをリリースしていますか?
VegaはW3C Media APIを提供しています。このAPIの使い方を示すためにShaka Playerが使用されています。この目的に必要なShaka Playerのパッチをリリースしています。APIを使用して独自のプレーヤーを構築できます。任意のオープンソース(Shaka Player、HLS.js、DASH.jsなど)のJSプレーヤー、またはBitmovin、THEOPlayerなどのプロプライエタリプレーヤーを自由に選択できます。
Shaka Playerは現在も開発が続けられています。要件に応じて、Shaka Playerの任意のバージョンを選択できます。パッチがリリースされているShaka Playerの最新バージョンについては、「Shaka Playerでの表示の自動調整(HLS/DASH)の再生」を参照してください。開発者は、リリースされているパッチを参照して、必要に応じて移植することができます。提供されていない特定のバージョンのShaka Playerが必要な場合は、提供されているパッチを参照して、必要なバージョンのプレーヤーに移植できます。W3C APIで問題が発生した場合は報告してください。問題を解決するためのサポートを提供します。現時点では、Shaka Playerの新しいバージョンごとにパッチをリリースすることは確約されていない点に注意してください。
-
Shaka Playerのパッチはどのようなライセンスでリリースされますか?
Shaka PlayerのパッチはApacheライセンス2.0でリリースされます。
-
W3C Media APIでサポートされるオーディオ/ビデオコーデック
W3C Media APIは、ストリーミングメディアのユースケースでよく使用されるオーディオおよびビデオコーデックをサポートしています。オーディオには、ドルビーオーディオ(AC3、eAC3、AC4、EC3_JOC)、AAC(LC、AAC+、eAAC+)、MP3、Opus、FLAC、Vorbisを使用できます。ビデオには、H.264、H.265、VP8、VP9、MPEG4、AV1を使用できます。
-
W3C Media APIでサポートされるDRMスキーマ
W3C Media APIは、Widevine(L1)やPlayReady(SL3000)などのDRMスキーマをサポートしています。
-
サーバー側広告の挿入はサポートされていますか?
はい。メイン→広告と広告→メインでコーデックタイプに変更がない場合はサポート対象です。そうでない場合はサポート対象外です。
-
メディア再生のさまざまなユースケースにはどのような権限が必要ですか?
メディア再生のユースケースに必要な一般的な権限には次のようなものがあります。ユースケースにもよりますが、権限がない場合は再生が開始されなかったり、黒い画面が表示されたりすることがあります。
[offers][[offers.service]] id = "com.amazon.gipc.uuid.*" # GIPC SRに必要 [[wants.service]] id = "com.amazon.gipc.uuid." [[wants.service]] id = "com.amazon.drm.key" # DRMビデオの再生に必要 [[wants.service]] id = "com.amazon.drm.crypto" # DRMビデオの再生に必要 [[needs.privilege]] id = "com.amazon.privilege.security.file-sharing" # DRMビデオの再生に必要 [[needs.privilege]] id="com.amazon.media.secureplayback" # DRMビデオの再生に必要 [[wants.service]] id = "com.amazon.mediametrics.service" [[wants.service]] id = "com.amazon.media.server" # MediaPlayer/MediaTransformへの接続に必要 [[wants.service]] id = "com.amazon.mediabuffer.service" [[wants.service]] id = "com.amazon.mediatransform.service" [[wants.service]] id = "com.amazon.media.playersession.service" # MediaControlsへの接続に必要 [[wants.service]] id = "com.amazon.inputd.service" # リモートボタンイベントに必要 [[wants.service]] id = "com.amazon.inputmethod.service" [[wants.service]] id = "com.amazon.audio.stream" # オーディオストリームの使用に必要 [[wants.service]] id = "com.amazon.audio.control" # ボリュームコントロールとその他のコントロールの使用に必要 -
Shaka PlayerのHLS MPEG2TSコンテンツでは、ライブコンテンツの再生が開始されません。
シーケンスモードを有効にします。
this.player.configure('manifest.hls.sequenceMode', true)MPEG2 TSストリームには、ソースバッファのシーケンスモード操作を使用することを推奨します。
-
一部のWV L1ビデオ再生は失敗します。
オーディオ用Widevine L1(セキュアパス)は、どのAmazonプラットフォームでもサポートされていません。オーディオには非セキュアパスを使用する必要がありますが、ビデオにはセキュアパスを使用できます。URLに
multikey=trueを追加すると、トラックごとに異なるキーを使用できます。 -
サポートされるクローズドキャプション/字幕形式
W3C Media APIは、CEA 608、CEA 708、TTML、WebVTT、SRT形式のインバンドおよびアウトオブバンドのクローズドキャプションと字幕をサポートしています。アプリでは、言語に基づいてクローズドキャプションと字幕を選択することができます。URLおよびMSEモードの再生では、クローズドキャプション/字幕がサポートされています。
-
マニフェスト内字幕を実装するにはどうすればよいですか?
マニフェスト内字幕の詳細については、クローズドキャプション(CC)と字幕のナレッジベース記事を参照してください。
-
Shaka Playerによる帯域内字幕(メディアセグメント内)の解析を無効にするにはどうすればよいですか?
W3C Media APIでCEA608/708字幕デコードがサポートされるようになりました。これはVegaアプリで字幕を解析するための推奨方法です。Shaka Playerによる帯域内字幕の解析を無効にするには、メディアセグメントの字幕パーサーの登録を解除します。
shaka.media.ClosedCaptionParser.unregisterParser('video/mp4'); shaka.media.ClosedCaptionParser.unregisterParser('video/mp2t'); -
クライアント側広告の挿入を実装するにはどうすればよいですか?
クライアント側広告の挿入の詳細については、クライアント側広告の挿入(CSAI)のサンプルコードに関するナレッジベース記事を参照してください。
-
Widevine L1またはPlayReady SL2000/3000を使用している場合、オーディオ復号化はサポートされますか?
オーディオ復号化は、ハードウェア保護のメモリバッファではサポートされません。つまり、オーディオでは、robustness値として
HW_SECURE_ALLを使用できません。オーディオとビデオを復号化およびデコードするには、MediaKeysオブジェクトを使用します。requestMediaKeySystemAccess(...)を使用してMediaKeySystemAccessオブジェクトをリクエストする場合、MediaKeySystemConfigurationディクショナリで、audioCapabilitiesとvideoCapabilitiesのrobustnessメンバーが正しく設定されていることを確認してください。たとえば、Widevineでビデオの保護が必須の場合は'robustness' : 'HW_SECURE_ALL'を使用し、オーディオでは常に'robustness' : 'SW_SECURE_CRYPTO'を使用します。これにより、ビデオデータについてはハードウェア保護のバッファを使用して復号化され、オーディオデータは非保護のバッファを使用して復号化されます。
Last updated: 2025年9月30日

