Shaka プレーヤーの移行に関する HLS

概要

Cast Web Receiver SDK は、いくつかのウェブ ストリーミング プロトコルを使用したコンテンツの再生をサポートしています。使用されるプロトコルに基づいて、SDK はコンテンツの再生を処理するプレーヤーを読み込みます。HLS コンテンツの場合はメディア プレーヤー ライブラリ(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 のリリースとは独立して頻繁に実施されているため、本番環境への機能とバグの修正時間の大幅な短縮を実現できます。
  • shakaVersion API による再生環境の詳細な制御
  • ロードマップに示されているように、Shaka Player での HLS 再生に重点を置いたエンジニアリング リソースにより、Google からの再生サポートが拡大されました。

タイムライン

Web Receiver SDK は、HLS コンテンツ再生のデフォルト プレーヤーとして Shaka Player を使用するよう移行します。これは、パートナーに移行プロセスを案内する段階的なアプローチで行われます。

フレーズ一致 開始日 概要
1 2022 年 10 月 Cast Web Receiver SDK では、Shaka Player で HLS コンテンツを再生するためのオプトイン API が導入されています
2 2024 年下半期 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 も導入されています。これらのフラグは、useShakaForHls プロパティと shakaVersion プロパティを介して CastReceiverOptions クラスで提供され、CastReceiverContext の開始時に評価されます。HLS 用の Shaka にオプトインするアプリで最新の HLS 改善を利用するには、4.3.4 以上の Shaka Player バージョンを設定する必要があります。オプトインするには、以下のコード スニペットを使用してください。

const context = cast.framework.CastReceiverContext.getInstance();

let castReceiverOptions = new cast.framework.CastReceiverOptions();
castReceiverOptions.useShakaForHls = true;

context.start(castReceiverOptions);

コンテンツの検証

パートナーは、製品版アプリで Shaka Player の使用を有効にする前に、Shaka Player でコンテンツの再生を検証する必要があります。以下に示すコンテンツのバリエーションごとにテストすることをおすすめします。

  • 配信タイプ: ライブまたは VOD
  • コンテナ形式: TS、MP4、エレメンタリー ストリーム
  • 途切れる要素または埋め込み広告を含むコンテンツ
  • 次のデバイスタイプで再生できる: スマートディスプレイ、Chromecast ドングル、Android TV デバイス、Chromecast built-in 搭載テレビ、スマート スピーカー

エラーや予期しない動作が見つかった場合は、バグを報告してください。コンテンツに重大な再生エラーがないことを確認できたら、変更を本番環境にプッシュします。

オプトアウト

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 に切り替えて問題がブロックされるかどうかを確認してください。問題が解決しない場合や、プレーヤーの切り替え時に別の問題が発生した場合は、以下の手順を行います。

  1. 問題を解決するには、shakaVersion を別のブランチ バージョンに設定してみてください。たとえば、4.3 ブランチで問題が発生した場合は、4.2.x バージョンまたは 3.3.x バージョンの最新リリースに設定してみます。Shaka Player リリースノートで、最も関連性の高いアップデートを含むリリースをご確認ください。shakaVersion API には、リファレンス ドキュメントで詳述されているとおり、サポートされる最小バージョンと最大バージョンがあります。回帰が発生している場合は、Shaka Player Issue Tracker で問題を報告します。
  2. プレーヤー設定パラメータを変更してみてください。Shaka Player は PlayerConfiguration オブジェクトで設定可能です。Web Receiver SDK は一連のデフォルト値を定義し、アプリが PlaybackConfig オブジェクトの shakaConfig プロパティを使用してこの構成を変更できるようにします。この値は、プレーヤー インスタンスが作成される読み込み時間で評価されます。もっと見る:

    アプリケーションの構成とオプションを確認できます。Web Receiver SDK によって設定されたデフォルト値が推奨値です。

  3. Shaka Player Issue Tracker または Cast の IssueTracker で問題が報告されているかどうかを確認します。バグにコメントし、問題を説明する情報があれば追加します。

  4. Shaka Player デモサイトでコンテンツをテストします。コンテンツのデモサイトで問題が再現された場合は、Shaka Player プロジェクトでバグを報告してください。

  5. キャスト エンドポイントでの Shaka Player 固有の問題が発生した場合は、Cast 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 プレーヤー プロジェクトまたは Cast プロジェクトでバグを報告する必要があります(問題を報告するを参照)。Cast SDK のエンジニアリング チームはこれらのトラッカーを積極的に監視しており、お客様が抱える問題の解決に向けてお客様をサポートします。 これらの問題が早期に検出されるほど、修正が提供されるまでの時間も長くなります。

MPL で重要なアップデートが提供されなくなりました。具体的にはどういう意味ですか?

これまで MPL では新しい HLS 機能が導入され、重要なアップデートを通じて大きなバグにパッチが適用されていました。MPL が受信しなくなるため、新しい HLS 機能はプレーヤーに追加されません。同様に、MPL での HLS 再生に関して報告された問題も MPL で修正されません。これらの問題は、Shaka Player に切り替えて再生することで解決する必要があります。問題が解決しない場合は、Shaka Player で直面している関連問題について、バグを報告してください。パートナー様は MPL の使用を中止する必要があります。

コンテンツで Smooth Streaming プロトコルを使用している場合、アプリケーションにはどのような影響がありますか?

MPL バイナリは引き続きホストされ、レシーバ アプリケーションからアクセスできます。ただし、スムーズ ストリーミングの仕様は 4 年以上更新されていないため、スムーズ ストリーミング関連の機能リクエストとバグの修正はサポートされません。パフォーマンスの更新とコンテンツのサポートを継続して受け取れるように、DASH または HLS ストリーミング プロトコルを使用するようにコンテンツを移行することをおすすめします。

コンテンツが HLS またはスムーズ ストリーム プロトコルを使用していませんが、アプリケーションにはどのような影響がありますか?

コンテンツ ライブラリがこれらのストリーミング プロトコルのいずれも使用していない場合は、この移行の影響を受けません。アプリに変更を加える必要はありません。