概要
Cast Web Receiver SDK は、いくつかのウェブ ストリーミング プロトコルを使用したコンテンツの再生をサポートしています。使用されるプロトコルに基づいて、SDK はコンテンツの再生を処理するプレーヤーを読み込みます。HLS コンテンツの場合、Media Player Library(MPL)が読み込まれます。DASH コンテンツの場合は、Shaka Player が読み込まれます。
今後、Cast SDK と Shaka Player のエンジニアリング チームは、Shaka Player での HLS コンテンツの再生サポートを強化するために、取り組みを統合していきます。MPL で重要なアップデートが提供されなくなります。アプリの HLS コンテンツの再生に Shaka Player を使用することをおすすめします。
Shaka Player のメリット
プレーヤーを変更することで、アプリケーションは次のメリットを活用できます。
- ユーザー向けのより堅牢なストリーミング セッション。読み込み時間の失敗とレイテンシが改善されています。
- 最新の HLS 機能の継続的な採用。
- Shaka Player のオープンソースという性質に起因するプレーヤーとコンテンツの互換性の問題について、根本原因の分析の精度が向上しました。
- オープンソースのプレーヤー コードベースにより、パートナーは Shaka Player プロジェクトに貢献できます。
- Shaka Player のリリース ケイデンスは頻繁で、Web Receiver SDK のリリースとは独立しているため、機能とバグの修正を本番環境にリリースするまでの時間を大幅に短縮できます。
shakaVersionAPI によって提供される再生環境のより詳細な制御。- ロードマップに記載されているように、Shaka Player での HLS 再生に重点を置いたエンジニアリング リソースにより、Google による再生サポートが強化されました。
タイムライン
Web Receiver SDK は、HLS コンテンツの再生に Shaka Player をデフォルトのプレーヤーとして使用するように移行します。移行プロセスをパートナーに案内するため、段階的なアプローチで実施されます。
| フェーズ | 開始日 | 概要 |
|---|---|---|
| 1 | 2022 年 10 月 | Cast Web Receiver SDK では、Shaka Player で HLS コンテンツを再生するためのオプトイン API が導入されました。 |
| 2 | 2026 年 5 月 18 日 | Cast Web Receiver SDK で、HLS コンテンツの再生用のデフォルトのプレーヤーが Shaka プレーヤーに変更されました。 |
Web Receiver SDK のエンジニアリング チームはパフォーマンス重視のアプローチを採用しており、Shaka Player のパフォーマンスが MPL のベースライン パフォーマンスと同等になった場合にのみ、次のフェーズに進みます。これらの変更は、cast-sdk-announcements Google グループで発表され、このガイドで更新されます。
オプトイン
CAF バージョン 3.0.0105 以降では、HLS 再生に Shaka Player を使用するためのアプリケーション レベルの構成がオプトインされています。このバージョンでは、読み込む Shaka Player のサポート対象バージョン範囲から選択する API も導入されています。これらのフラグは、CastReceiverOptions クラスの useShakaForHls プロパティと shakaVersion プロパティで提供され、CastReceiverContext の開始時に評価されます。HLS に Shaka をオプトインするアプリケーションは、最新の HLS の改善を活用するために、少なくとも 4.15.53 の Shaka プレーヤー バージョンを設定する必要があります。オプトインするには、次のコード スニペットを使用します。
const context = cast.framework.CastReceiverContext.getInstance();
let castReceiverOptions = new cast.framework.CastReceiverOptions();
castReceiverOptions.useShakaForHls = true;
context.start(castReceiverOptions);
コンテンツを検証する
パートナーは、本番環境アプリで Shaka Player を使用する前に、Shaka Player でのコンテンツ再生を検証する必要があります。以下のコンテンツのバリエーションごとにテストすることをおすすめします。
- ストリーム タイプ: LIVE または VOD
- コンテナ形式: TS、MP4、またはエレメンタリ ストリーム
- コンテンツに不連続な部分がある、または広告が埋め込まれている
- 次のタイプのデバイスでの再生: スマートディスプレイ、Google Cast ドングル、Android TV デバイス、Google Cast 対応テレビ、スマート スピーカー
エラーや予期しない動作が見つかった場合は、バグを報告してください。コンテンツに重大な再生エラーがないことを確認できたら、変更を本番環境にプッシュします。
オプトアウト
Web Receiver SDK は、タイムラインに沿って、Shaka Player HLS コンテンツの再生をオプトアウト モデルに移行します。プロパティ useShakaForHls のデフォルト値が false から true に変更されます。その時点で、アプリケーションはこのプロパティを false に手動で設定することで、HLS 再生に MPL を使用することを選択できます。CastReceiverContext が開始されると、Web Receiver SDK は Shaka Player ではなく MPL の読み込みに戻ります。オプトアウトの方法については、以下のサンプルをご覧ください。
const context = cast.framework.CastReceiverContext.getInstance();
let castReceiverOptions = new cast.framework.CastReceiverOptions();
castReceiverOptions.useShakaForHls = false;
context.start(castReceiverOptions);
問題を報告する
パートナー様には、HLS コンテンツの再生中に見つかった問題についてご報告いただくことをおすすめします。前述のとおり、MPL は重要な更新を受け取らなくなります。MPL で問題が発生した場合は、ガイドのオプトイン セクションの手順に沿って、Shaka Player に切り替えることで問題が解決するかどうかを確認してください。問題が解決しない場合や、プレーヤーを切り替えたときに別の問題が発生した場合は、以下の手順に沿って対応します。
- 問題を解決するには、
shakaVersionを別のブランチ バージョンに設定してみてください。たとえば、4.15ブランチで問題が発生した場合は、別のブランチの最新リリースに設定してみてください。Shaka Player のリリースノートで、最も関連性の高い更新を含むリリースを確認してください。shakaVersionAPI には、リファレンス ドキュメントで説明されているように、サポートされている最小バージョンと最大バージョンがあります。リグレッションが見られた場合は、Shaka Player の Issue Tracker で問題を報告してください。 - プレーヤーの構成パラメータを変更してみます。Shaka Player は、
PlayerConfigurationオブジェクトを通じて構成できます。Web Receiver SDK は一連のデフォルト値を定義し、アプリケーションがPlaybackConfigオブジェクトのshakaConfigプロパティを通じてこの構成を変更できるようにします。これは、プレーヤー インスタンスの作成時に読み込み時間中に評価されます。詳しくは、アプリケーションの構成とオプションをご覧ください。Web Receiver SDK で設定されるデフォルト値は推奨値です。 - Shaka Player の Issue Tracker または Cast の Issue Tracker で、問題が報告されているかどうかを確認します。バグにコメントし、問題が説明されている場合は関連情報を追加します。
- Shaka Player デモサイトでコンテンツをテストします。コンテンツのデモサイトで問題が再現される場合は、Shaka Player プロジェクトにバグを報告してください。
- キャスト エンドポイントの Shaka Player に固有の問題が発生した場合は、キャストの Issue Tracker でバグを報告してください。
よくある質問
選手の変更は、多くの疑問を生み出す可能性があります。移行プロセスをスムーズに進めるために、よくある質問とその回答を以下にまとめました。
Shaka Player に移行すべきですか?
HLS コンテンツを使用しているパートナー様は、できるだけ早く移行プロセスを開始することをおすすめします。これにより、アプリでより安定したストリーミング エクスペリエンスをユーザーに提供できるようになります。その他のメリットについては、このガイドの Shaka Player のメリットのセクションをご覧ください。パートナーは、Shaka Player を使用してアプリが正しく動作することを確認し、スムーズな移行を確保する必要があります。パートナーがコンテンツを Shaka Player で事前に正しく再生できることを確認していない場合、一部のアプリは Web Receiver SDK がオプトアウト モデルに移行する際にリスクが生じる可能性があります。
プレーヤーを変更する際の労力はどの程度ですか?
パートナーは、テスト環境でアプリケーションとコンテンツをテストし、HLS と比較してユーザー エクスペリエンスが同等以上であることを確認する必要があります。そのため、パートナーは内部環境でこの機能を有効にし、Shaka Player を使用してコンテンツを再生できることを徹底的にテストする必要があります。コンテンツのどの部分に重点を置くべきかについては、コンテンツの検証をご覧ください。検証が完了したら、パートナーは本番環境のアプリケーション環境にオプトイン フラグを追加して、Shaka Player が提供するメリットを利用できるようにする必要があります。大まかに言うと、ソフトウェア開発の変更は最小限で、主にパートナーが移行を成功させるための QA 要件です。
まもなくアプリで HLS を使用してコンテンツをストリーミングする予定です。どうすればよいですか?
新しい統合では、再生に Shaka Player を使用するようにオプトインする必要があります。アプリケーションの長期的なサポートが向上し、新しい HLS 機能とパフォーマンスの改善も活用できるようになります。新しいインテグレーションで問題が発生した場合は、エンジニアリング チームが問題を解決するのに十分な時間を確保できるよう、できるだけ早くバグを報告してください。期限が迫っている場合は、バグレポートにその情報と影響を含めて、優先度を適切に設定してください。Google のエンジニアリング チームは、ユーザーを適切にサポートするための解決策の提供に取り組んでいます。
コンテンツやアプリが Shaka Player で動作しません。どうすればよいですか?
Shaka Player プロジェクトまたは Cast プロジェクトのいずれかにバグを報告する必要があります(問題を報告するを参照)。Cast SDK エンジニアリング チームはこれらのトラッカーを頻繁にモニタリングしており、問題の解決に向けてお客様と協力して取り組んでいます。これらの問題が早く検出されるほど、修正をリリースするまでの時間を長く確保できます。
MPL は重要なアップデートを受け取れなくなりますが、具体的にどういうことですか?
これまで、MPL は重要なアップデートを通じて、新しい HLS 機能の採用と重大なバグの修正を行ってきました。MPL が受信しなくなるため、新しい HLS 機能はプレーヤーに追加されません。同様に、MPL での HLS 再生に関する報告された問題は MPL では修正されません。これらの問題は、再生に Shaka Player を使用することで解決されます。問題が解決しない場合は、Shaka Player で発生した関連する問題とともに バグを報告する必要があります。パートナーは MPL の使用を避けるべきです。
コンテンツで Smooth Streaming プロトコルを使用しています。アプリケーションにどのような影響がありますか?
MPL バイナリは引き続きホストされ、レシーバー アプリケーションからアクセスできます。ただし、Smooth Streaming の仕様は 4 年以上更新されていないため、Smooth Streaming 関連の機能リクエストやバグの修正はサポートされません。コンテンツのパフォーマンスの更新とサポートを継続して受けられるように、DASH または HLS ストリーミング プロトコルを使用するようにコンテンツを移行することをおすすめします。
コンテンツで HLS または Smooth Stream プロトコルを使用していません。アプリケーションにどのような影響がありますか?
コンテンツ ライブラリでこれらのストリーミング プロトコルのいずれも使用していない場合は、移行による影響はありません。アプリケーションの変更は必要ありません。