

# IVS プレーヤー SDK
<a name="player"></a>

Amazon Interactive Video Service (IVS) を使用するには、Amazon IVS プレイヤーが必要です。このプレイヤーは、Amazon IVS ストリームを再生するためのクロスプラットフォームの SDK スイートです。Amazon IVS アーキテクチャを活用するように設計され、Amazon IVS の再生に最適化されています。

当社が性能を保証できる唯一のプレイヤーが Amazon IVS プレイヤーです。低レイテンシーを実現するには、Amazon IVS プレイヤーが必要になります。

Amazon IVS プレイヤーの主な機能をご紹介します。
+ **低レイテンシーストリーミング** — 低レイテンシーであることは、良好なインタラクティブユーザーエクスペリエンスを構築し、オーディエンスの体験を豊かにするために欠かせない要素です。レイテンシーは、配信者と視聴者の間の伝送経路全体に段階的に入り込み、応答性を低下させます。

  エンドツーエンドのレイテンシーとは、ライブストリームがカメラにキャプチャされてから視聴者側の画面に映るまでの遅延を指します。Amazon IVS は、エンドツーエンドの低レイテンシー (5 秒未満、ブロードキャストの場所とブロードキャスターの設定による) を実現するように設計されています。*低レイテンシーを実現するには、Amazon IVS プレーヤーが必要です*。
+ **クロスプラットフォームの一貫性** — 視聴者はさまざまなプラットフォームで配信動画を視聴します。モバイルデバイスからウェブブラウザまで、Amazon IVS プレイヤーはすべての視聴者に同様の体験を提供します。この一貫性は、すべてのプラットフォームに同じプレイヤー機能のライブラリを使わせることで可能になります。このプレイヤーライブラリは、Amazon IVS アーキテクチャにとって欠かせない要素です。1 つの動画スタックを使用することで、低レイテンシーモード、タイムドメタデータ、分析、エラー追跡、レポート、ログ記録など、動画再生のすべての動作を、サポート対象のすべてのプラットフォームで一貫した方法で利用できるようにしています。
+ **アダプティブビットレートストリーミング (ABR)** — Amazon IVS プレイヤーは、低レイテンシー環境に最適化された ABR アルゴリズムを使用しています。サービスの品質と帯域幅の可用性をリアルタイムで測定し、動画の品質とバッファレベルとを調整することで、中断なく再生を行います。接続品質が低下すると、ABR が低ビットレートに切り替わり、接続品質が改善すると、より高いビットレートに切り替わります。
+ **タイムドメタデータ** — Amazon IVS プレイヤーは*タイムドメタデータ*をサポートしています。これは、投票やクイズなどインタラクティブな要素の構築に使用できます。メタデータとは、他のデータに関する情報を記述して付与するデータのセットのことです。「タイムド」メタデータでは、ストリームに関するデータにタイムコードが付随します。このタイムコードは、動画の再生中に、例えば次のように、データに基づいてアクションをトリガーするキューポイントとして機能します。
  + スポーツのストリームにおける選手の統計情報の送信
  + ショッピングのライブストリームにおける商品情報の送信
  + クイズのライブストリームにおける質問の送信
+ **堅牢なエラー処理** — 一時的なエラーに対処することで視聴体験の中断を適切に回避します。Amazon IVS プレイヤーの堅牢なエラー処理は、ストリーミング中の多くの潜在的エラーを検出し、代替の表示に自動的に切り替えます。視聴者は、中断なく継続して配信動画を視聴でき、自分で何らかの修正措置を講じる必要がありません。
+ **統合が容易** — Amazon IVS プレイヤー API は、IVS のお客様のアプリケーションとプレイヤーライブラリとのギャップを埋めます。API には、サポートされているすべてのプラットフォームのバインディングがあり、使い慣れたコーディング環境とテクニックを使用しながら、プレイヤーをアプリケーションに容易に統合できるようにしています。UI の要素をフルにコントロールでき、お客様は、アプリケーションのブランディングや外観面をカスタマイズできます。

Amazon IVS プレイヤーは Airplay とのキャストをサポートしていませんが、デベロッパーはセッションを AVPlayer に移行することで Airplay を実装できます。ただし、AVPlayer のレイテンシーが Amazon IVS Player SDK よりも高いため、シームレスな切り替えはできません。この移行を実行する方法の例は、[こちら](https://github.com/aws-samples/sample-for-airplay-on-ivs)に示されます。

Chromecast によるキャスティングは、デフォルトの Chromecast レシーバーアプリケーションを使用して、プレイヤー外部に実装できます。ただし、これらのアプリケーションのレイテンシーが Amazon IVS Player SDK よりも高いため、シームレスに切り替えることはできません。Amazon IVS Broadcast SDK: 「[低レイテンシーストリーミング](broadcast.md)」および「[リアルタイムストリーミング](https://docs.aws.amazon.com//ivs/latest/RealTimeUserGuide/broadcast.html)」に関するドキュメントも参照してください。

## ブラウザとプラットフォームの要件
<a name="player-browser-platform-requirements"></a>

各種ブラウザーの最新リリース版の詳細については、以下を参照してください。
+ [Chrome プラットフォームのステータス](https://chromestatus.com/roadmap)
+ [Firefox のリリース](https://www.mozilla.org/en-US/firefox/releases/)
+ [Microsoft Edge のリリーススケジュール](https://learn.microsoft.com/en-us/deployedge/microsoft-edge-release-schedule)
+ [Safari リリースノート](https://developer.apple.com/documentation/safari-release-notes)

Amazon IVS が一部の古いブラウザでも動作する場合がありますが、古いブラウザに関連するバグは修正されません。

IVS Player Web SDK (Video.js および Player JW 統合を含む) は、ブラウザのような環境ではサポートされていません。これには、ネイティブ WebViews と、Wウェブアプリケーションをサポートする「10フィートデバイス」（TV、コンソール、セットトップボックス）が含まれます。以下の表以外の特定のブラウザのサポートが不明な場合は、IVS サポートにお問い合わせください。

### デスクトップブラウザ
<a name="player-browser-platform-requirements-desktop"></a>


| デスクトップブラウザ | サポートされているプラットフォーム | サポートされているバージョン | 
| --- | --- | --- | 
| Chrome | Windows、macOS  | 2 つのメジャーバージョン (最新バージョンと 1 つ前のバージョン)  | 
| Firefox | Windows、macOS | 2 つのメジャーバージョン (最新バージョンと 1 つ前のバージョン) | 
| Edge | (Windows 8.1 以降)  | 44.0 以降 ([Microsoft Edge Legacy](https://support.microsoft.com/en-us/microsoft-edge/what-is-microsoft-edge-legacy-3e779e55-4c55-08e6-ecc8-2333768c0fb0) の自動品質モードでは、標準レイテンシーによる再生のみがサポートされ、低レイテンシー再生はサポートされていません。自動品質モードは、ABR が有効かどうかを示します。例えば Web プレイヤーの場合は、`setAutoQualityMode` を参照してください。  | 
| Safari | macOS | 2 つのメジャーバージョン (最新バージョンと 1 つ前のバージョン)(macOS 14 以降の Safari の自動品質モードでは、IVS Player 1.3.0 以降は低レイテンシー再生をサポートしています。それ以前のバージョンの Safari および IVS Player は通常のレイテンシー再生のみをサポートしています。上記の「自動品質モード」を参照してください。) | 

### モバイルブラウザ
<a name="player-browser-platform-requirements-mobile"></a>


| モバイルブラウザ | サポートされているバージョン | 
| --- | --- | 
| Chrome for iOS、Safari for iOS | 2 つのメジャーバージョン (最新バージョンと 1 つ前のバージョン) (低レイテンシー再生はサポートされていません。標準レイテンシーによる再生はサポートされています。この制限は、iOS のすべてのブラウザに適用されます。) (時間指定メタデータは Player 1.3.0 以降のみでサポートされています)。 | 
| iPadOS 向け Chrome、iPadOS 向け Safari | 2 つのメジャーバージョン (最新バージョンと 1 つ前のバージョン) （「Request Mobile Website」が選択されている場合:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/ivs/latest/LowLatencyUserGuide/player.html)  | 
| Chrome for Android | 2 つのメジャーバージョン (最新バージョンと 1 つ前のバージョン) | 

### ネイティブプラットフォーム
<a name="player-browser-platform-requirements-native"></a>


| プラットフォーム | サポートされるバージョン | サポートされるデバイス | 
| --- | --- | --- | 
| Android | 6.0 以降 | 携帯電話とタブレット | 
| iOS | 14 以降  | すべて | 

IVS は、少なくとも 4 つの iOS メジャーバージョンと 6 つの Android メジャーバージョンをサポートしています。現在のサポート対象バージョンは、これらの最小値よりも多い可能性があります。メジャーバージョンがサポートされなくなる場合は、少なくとも 3 か月前に SDK リリースノートでお客様にお知らせします。

## サードパーティ製プレーヤーのレイテンシーの削減
<a name="player-reducing-latency"></a>

**Basic および Standard チャネルタイプの場合**: レイテンシーを最小限に抑えるには、Amazon IVS プレイヤーを使用する必要があります。サードパーティ製プレーヤー (iOS Safari など) では、次の設定をすることでレイテンシーを約 10 秒に短縮できます。
+ エンコーダ (OBS など) のキーフレーム間隔を 2 秒以下に設定します。
+ `?keyframeInterval=2` を RTMP(S) URL に追加します。例: `rtmps://a1b2c3d4e5f6.global-contribute.live-video.net:443/app/sk_us-west-2_abcd1234efgh5678ijkl?keyframeInterval=2`

**注**: RTMP URL の一部として指定するキーフレーム間隔は、エンコーダで設定された値以上でなければなりません。そうでない場合、再生で問題が発生する可能性があります。値は 2～6 の整数を任意に設定できますが、2 に設定するとレイテンシーが最も低くなります。

**Advanced チャネルタイプの場合**: 上記のガイダンスは適用されません。Advanced チャネルタイプは、エンコーディングの効率性のためにキーフレーム間隔を自動的に生成します。キーフレーム間隔は、ソースエンコーディングキーフレームの間隔設定を問わず、最大 2 秒です。

### iOS Safari
<a name="player-reducing-latency-ios-safari"></a>

iOS Safari では、IVS プレーヤーでサービスワーカーを使用するように設定し、これを使用することでレイテンシーを約 6～8 秒に削減することができます。実装の詳細とサンプルレファレンスについては、「*Player SDK: Web ガイド*」の「[サービスワーカーの設定](https://docs.aws.amazon.com//ivs/latest/LowLatencyUserGuide/web-getting-started.html#web-service-worker)」を参照してください。

**注**: レイテンシーを最小限に抑えるには、IVS ストリームでキーフレーム間隔を 2 秒に設定する必要があります。

## オーディオのみの再生
<a name="player-audio-only-playback"></a>

すべての IVS チャネルタイプでは、オーディオのみのレンディションがサポートされています。これは、モバイルアプリケーションにとって特に重要です。例えばモバイルアプリでは、ユーザーがアプリケーションをバックグラウンドにして帯域幅を節約する際に、プレーヤーをオーディオのみのレンディションに切り替えることができます。

ADVANCED-SD および ADVANCED-HD チャネルの場合、オーディオのみのレンディションはマルチバリアントプレイリストに自動的に含まれます。BASIC および STANDARD チャネルの場合、オーディオのみのレンディションを含めるには、再生 URL に `?allow_audio_only=true` クエリパラメータを追加する必要があります。

注: IVS ウェブプレイヤー SDK では、バージョン 1.24.0 以降でのみオーディオのみの再生をサポートしています。

## サポート
<a name="player-support"></a>

ストリームに再生エラーやその他再生に関する問題が発生した場合は、プレイヤー API を介して再生セッションの一意の識別子を特定します。


| 次の Amazon IVS プレイヤーでは | 以下を使用 | 
| --- | --- | 
| Android | `sessionId` 関数  | 
| iOS | `IVSPlayer` の `sessionId` プロパティ  | 
| Web | `getSessionId` 関数 | 

この再生セッション識別子を AWS サポートに伝えます。それにより、サポートはトラブルシューティングに役立つ情報を入手できます。

**注:** プレイヤーは継続的に改良されています。利用可能なバージョンと修正済みの問題については [Amazon IVS リリースノート](release-notes.md)を参照してください。必要に応じて、サポートに連絡する前にお使いのプレイヤーのバージョンを更新し、問題が解決するかどうかを確認してください。

### バージョニング
<a name="player-support-versioning"></a>

Amazon IVS Player SDK は、[セマンティックバージョニング](https://semver.org/)を使用しています。

以下の解説は、次を前提としています。
+ 最新リリースは 4.1.3。
+ 1 つ前のメジャーバージョンの最新リリースは 3.2.4。
+ バージョン 1.x の最新リリースは 1.5.6.

最新バージョンのマイナーリリースとして、下位互換性のある新機能が追加されています。この場合、次回の新機能のセットは、バージョン 4.2.0 として追加されます。

下位互換性のあるマイナーなバグ修正が、最新バージョンのパッチリリースとして追加されています。ここでは、次回のマイナーなバグ修正のセットは、バージョン 4.1.4 として追加されます。

下位互換性のあるメジャーなバグ修正は異なる方法で処理されます。これらはいくつかのバージョンに追加されています。
+ 最新バージョンのパッチリリース。こちらは、バージョン 4.1.4 です。
+ 1 つ前のマイナーバージョンのパッチリリース。こちらは、バージョン 3.2.5 です。
+ 最新バージョン 1.x リリースのパッチリリース。こちらは、バージョン 1.5.7 です。

メジャーなバグ修正は、Amazon IVS 製品チームによって定義されています。典型的な例に、重要なセキュリティ更新のほか、お客様に必要な選別された修正があります。

**注:** 上記の例では、リリースされたバージョンの数字は、連番でインクリメントされています(4.1.3 → 4.1.4、など)。実際は、1 つ以上のパッチ番号が内部に残り、リリースされないままになることもあります。そのため、リリースされたバージョンは 4.1.3 から (例えば) 4.1.6 に増えることもあります。