

# Amazon IVS 多軌視訊：設定指南
<a name="multitrack-video-setup"></a>

本文件主要針對將 Amazon IVS API 和 SDK 整合到其應用程式的客戶。

## 採用多軌視訊串流
<a name="multitrack-video-setup-adopting"></a>

如要採用多軌視訊，有兩個必要的[頻道](https://docs.aws.amazon.com//ivs/latest/LowLatencyAPIReference/API_Channel.html)組態和建議的[縮圖組態](https://docs.aws.amazon.com//ivs/latest/LowLatencyAPIReference/API_ThumbnailConfiguration.html)。

### 必要條件：設定頻道 ContainerFormat
<a name="multitrack-video-setup-adopting-required-required-channel-containerformat"></a>

多軌視訊可能會將廣播軟體設定為使用進階轉碼器 (例如 HEVC)，但這些轉碼器與 MPEG2 傳輸串流 (TS) 檔案不相容。您必須將 `Channel.ContainerFormat` 設定為 `FRAGMENTED_MP4`，才能使用多軌視訊。

變更 `ContainerFormat` 值會改變即時播送和 S3 錄製內容 (如果已啟用)的媒體檔案格式。因此，您可能需要更新取決於媒體容器格式的第三方播放器應用程式或下游工作流程。

### 必要條件：設定頻道 MultitrackInputConfiguration
<a name="multitrack-video-setup-adopting-required-required-channel-multitrackinputconfiguration"></a>

支援 IVS 多軌影片的廣播軟體工具，必須透過 GetClientConfiguration API 操作實作自動串流組態。如需廣播軟體整合詳細資訊，請參閱《[多軌視訊廣播軟體整合指南](multitrack-video-sw-integration.md)》。

具有多軌輸入內容的頻道擁有更加動態的 ABR 階梯 (以頻道和串流工作階段為基礎)，可根據創作者的設定、網路環境和 IVS 控制平面，提供最佳的觀看體驗。當內容創作者開始使用他們的軟體 (例如 OBS Studio) 串流時，用戶端會收集以下資訊並傳送至 GetClientConfiguration：
+ 創作者的偏好設定，包括螢幕/畫布解析度、最大總位元速率、預留編碼器工作階段/頻寬和影格速率。
+ 創作者的硬體/作業系統中繼資料，包括 GPU 模型、GPU 記憶體、GPU 驅動程式版本、作業系統版本、CPU 模型和系統記憶體。

伺服器端演算法會對各個組態進行評分和排序，以提供符合以下條件的組態：
+ 最佳觀看體驗 (最高解析度、影格速率、位元速率和轉譯數)。
+ 串流器設定可安全支援。
+ 遵循 `MultitrackInputConfiguration` 頻道屬性設定的限制。

最後，廣播軟體會套用該組態，並使用[增強型 RTMP](https://veovera.org/docs/enhanced/enhanced-rtmp-v2) 通訊協定開始傳送多個視訊軌。

若要採用多軌視訊，您必須設定 `Channel.MultitrackInputConfiguration` 和 [MultitrackInputConfiguration](https://docs.aws.amazon.com//ivs/latest/LowLatencyAPIReference/API_MultitrackInputConfiguration.html) 中指定的子屬性。
+ 若要平衡成本和品質，請判斷 `Channel.MultitrackInputConfiguration.MaximumResolution` 的正確值，以每個頻道為基礎設定最大輸入解析度。在廣播用戶端呼叫 GetClientConfiguration 時，這個欄位會決定輸入軌的最佳解析度。如果任何用戶端傳送不同數量的視訊軌，或者每個視訊軌的解析度、影格速率、轉碼器或位元速率與 GetClientConfiguration 回應不相符，則系統會中斷用戶端的連線。
+ 為了讓您的廣播者可以彈性採用多軌視訊，請將 `Channel.MultitrackInputConfiguration.Policy` 設定為 `allow` 或 `require` 廣播用戶端，以與多軌輸入連線。當用戶端使用 RTMP 連線時，此欄位會決定系統是否允許或要求廣播者傳送多軌視訊。如果是較簡單的方法，您可以選擇讓廣播者逐步且彈性地採用多軌視訊 (使用 `allow`)；或要求廣播者使用多軌用戶端以降低成本 (使用 `require`)。

### 建議：檢閱和更新 ThumbnailConfiguration
<a name="multitrack-video-setup-adopting-recommended-thumbnailconfiguration"></a>

如果您為啟用多軌功能的頻道使用縮圖，且與多軌用戶端連線，也未指定 `resolution`，則系統會記錄所有輸入軌的縮圖。為了控制成本，您可能想要指定特定的轉譯版本。

無論是多軌輸入還是單軌輸入串流，最高品質的路徑都位於相同的相對位置。其他視訊軌的縮圖會記錄到 `additional_thumbnails` 子索引鍵。如要找出適當的縮圖路徑，建議您使用寫入 S3 的中繼資料 JSON 檔案。

## 廣播系統和環境條件
<a name="multitrack-video-setup-broadcaster-system"></a>

支援 IVS 多軌影片的廣播用戶端，必須實作 GetClientConfiguration API 操作來自動配置廣播串流設定。在實際情況下，我們會遇到很多限制，包括較舊的 GPU、訊號不良的網路、特定的使用者設定、GPU 資源競用，以及平台轉碼器支援不足。面對這些限制時，自動串流組態應逐漸且合理地應變；例如：
+ 將總位元速率在 10.2 Mbps (5 個轉譯版本) 和 1.5 Mbps (2 個轉譯版本) 之間進行變動。
+ 將最高品質視訊軌的最大解析度從 1080p (4 或 5 個轉譯版本) 調降為 480p (2 個轉譯版本) 進行變動。
+ 將轉譯版本的數量在 5 個 (1080p、720p、480p、360p、160p) 和 2 個 (480p、360p) 之間進行變動。
+ 將支援的眾多解析度 (1080p、720p、540p、480p、360p、240p 和 160p) 中的轉譯版本選項進行變動。
+ 將各個轉譯版本的位元速率從 6 Mbps (例如 1080p60 AVC) 調降為 200 Kbps (例如 160p AVC) 進行變動。
+ 將影格速率從高速率 (60、50 或 48 fps) 調至標準速率 (30、25 或 24 fps) 進行變動。
+ 對視訊轉碼器進行變動，以平衡安全性/觀看裝置支援和轉碼效率 (H.264/AVC 和 H.265/HEVC)。
+ 對縮放演算法 (例如 Lanczos、雙立方和雙線性) 進行變動，以平衡 GPU 資源。
+ 根據 GPU 供應商和驅動程式版本，對視訊編碼設定 (包括轉碼器設定檔、編碼器預設、前瞻視窗、心理視覺 AQ 和 B 影格數量) 進行變動。

下表提供我們在硬體、軟體和環境組態方面的建議：


|  使用案例  |  FULL\$1HD 串流  | 
| --- | --- | 
|  GPU 和驅動程式版本  |  NVIDIA GeForce 900 系列或更新型號的顯示卡，搭配 NVIDIA 驅動程式 545.92 或更新版本 AMD Radeon RX 6000/7000 系列或更新型號的顯示卡，搭配 AMD Adrenalin 24.4.1 以上版本  | 
|  顯示  |  1920x1080，每秒 60fps  | 
|  持續上傳的頻寬  |  12 Mbps  | 
|  作業系統  |  Windows 10 或 Windows 11  | 
|  廣播軟體  |  OBS Studio 30.2 版 (或更新版本)  | 