媒體服務實時活動
警告
Azure 媒體服務將於 2024 年 6 月 30 日淘汰。 如需詳細資訊,請參閱 AMS淘汰指南。
Azure 媒體服務讓您在 Azure 雲端上將即時活動傳遞給客戶。
提示
如果您要從媒體服務 v2 API 移轉, 即時活動 實體會取代 v2 中的 通道 , 而實時輸出 會取代 程式。
即時活動
即時活動 擷取及處理即時影片摘要。 當您建立即時活動時,會建立內嵌端點。 擷取端點會從遠端編碼器取用即時訊號。 遠程即時編碼器會使用 RTMP 或 Smooth Streaming (片段 MP4) 輸入通訊協定,將摘要傳送至輸入端點。 針對 RTMP 內嵌通訊協定,內容可透明傳送 (rtmp://
),或在網路 (rtmps://
) 上安全地加密。 針對 Smooth Streaming 內嵌通訊協定,支援的 URL 配置為 http://
或 https://
。
默認配置是每個媒體服務帳戶 5 個即時活動。 如果您想要增加此限制,請在 Azure 入口網站中提出支援票證。
即時事件類型
即時活動可以設定為基本或標準傳遞或即時編碼。 使用即時事件編碼類型在建立期間會設定類型。
- 傳遞基本:內部部署即時編碼器會傳送多個比特率數據流。 基本傳遞限制為 5 Mbps 的尖峰輸入、8 小時 DVR 視窗,但不支援即時轉譯。
- 傳遞標準:內部部署即時編碼器會傳送多個比特率數據流。 標準傳遞具有較高的內嵌限制、25 小時的 DVR 視窗,並支援即時轉譯。
- 標準:內部部署即時編碼器會將單一比特率串流傳送至即時活動,而媒體服務會建立多個比特率串流。 如果發佈摘要為 720p 或更高解析度,Default720p 預設將編碼一組 6 個解析度/位元速率組。
- 進階 1080p:內部部署即時編碼器會將單一比特率串流傳送至即時活動,而媒體服務會建立多個比特率串流。 Default1080p 預設會指定解析度/位元速率組的輸出集。
注意
Standard 和 Premium 編碼的最大畫面播放速率為 30 fps。
傳遞實況活動
使用基本或標準傳遞 即時活動時,您可以使用內部部署即時編碼器來產生多個比特率視訊串流,並使用 RTMP 或片段 MP4 通訊協定) 將該串流傳送至即時活動 (。 即時活動會接著完成傳入的視訊串流,而不會再進一步處理。 傳遞即時活動已針對長時間執行的即時活動或 24x365 線性即時串流進行優化。 建立此類型的即時活動時,請為傳遞指定「基本」或「標準」。
您可以使用 H.264/AVC 或 H.265/HEVC (Smooth inging only) 視訊編解碼器傳送摘要,以及 AAC (AAC-LC、HE-AACv1 或 HE-AACv2) 音頻編解碼器。 如需詳細資訊,請參閱即時活動類型比較。
注意
如果您在很長一段時間內進行多個活動,而且已投資內部部署編碼器時,使用傳遞方法是進行即時串流的最經濟實惠方式。 請參閱定價詳細資料。
即時編碼即時活動
使用即時編碼時,您會將內部部署即時編碼器設定為使用 RTMP 或 Fragmented-Mp4 通訊協定) ,將單一比特率視訊傳送至即時活動 (。 接著,您可以設定即時活動,以便將傳入的單一比特率數據流編碼為多個比特率視訊串流。 這可讓輸出透過 MPEG-DASH、HLS 和 Smooth Streaming 等通訊協定來播放裝置。
在此情況下,您只能以 30 個畫面/秒的幀速率傳送貢獻摘要,並使用 H.264/AVC 視訊編解碼器和 AAC (AAC-LC、HE-AACv1 或 HE-AACv2) 音訊編解碼器。 如需詳細資訊,請參閱即時活動類型比較。
低延遲 HLS 和 DASH 串流選項
如需如何使用即時事件編碼達到低延遲的詳細資訊,請參閱低延遲 HLS (LL-HLS) 和 DASH 串流選項和即時串流最佳做法指南。
即時編碼輸出解析度和比特率
即時編碼器所產生輸出中的解析度和比特率取決於預設:
- 當您使用 標準 即時編碼器時, Default720p 預設會指定一組六個解析度/比特率組,從 3.5 Mbps 的 720p 向下到 200 kbps 的 192p。
- 當您使用 Premium1080p 即時編碼器時,Default1080p 預設會指定一組六個解析度/比特率組,從 3.5 Mbps 的 1080p 減少到 200 kbps 的 180p。
如需相關資訊,請參閱系統預設值。
注意
如果您需要自訂即時編碼預設,請透過 Azure 入口網站開啟支援票證。 您應該指定所需的視訊解析度/比特率和音訊比特率數據表。 針對視訊,請確認只有一層位於 720p,以及最多 6 層的視訊。 針對音訊,您可以使用下列離散 AAC 音訊比特率來自定義 (96k、112k、128k、160k、192k、224k、256k、320k、384k、448k、512k) 。 允許位於不同比特率的多個音訊播放軌,而且可以包含在自定義預設中。 此外,請指定您在支援票證中要求 自定義 預設。
請參閱 LiveEventEncodingType 的 REST API 或 .Net、 Node.JS 或 Python SDK。 此外,您可以嘗試 實況活動範例程序代碼。
即時活動選項
建立即時活動時,您可以指定下列選項:
- 名稱和描述。
- 針對標準與進階編碼,您可以選擇編碼視訊的 延展模式 :
- 無:嚴格遵守編碼預設中指定的輸出解析度,而不考慮輸入視訊的像素外觀比例或顯示外觀比例。
- AutoSize:覆寫輸出解析度,並將它變更為符合輸入的顯示外觀比例,而不需要填補。 比方說,如果輸入是 1920x1080,但編碼預設要求 1280x1280,則預設值會遭到覆寫,而輸出將會是 1280x720 (保留 16:9 的輸入外觀比例)。
- 自動調整:將輸出 (以信箱或柱子方塊) 來接受輸出解析度,同時確保輸出中的使用中視訊區域與輸入的外觀比例相同。 例如,如果輸入是 1920x1080,而編碼預設要求 1280x1280,則輸出將會是 1280x1280,其中包含 1280x720 的內部矩形 (16:9 的外觀比例),並在左側和右側加上寬度為 280 像素的垂直黑邊區域。
- 串流通訊協定 RTMP 或 Smooth 串流。 注意:當即時活動或其相關聯的實時輸出正在執行時,您無法變更通訊協議選項。 如果您需要不同的通訊協定,則應為每個串流通訊協定建立個別的即時活動。
- 輸入標識碼 ,這是即時活動輸入數據流的全域唯一標識符。
- 靜態主機名前置 詞,其中包含無 (在此情況下,將會使用隨機 128 位十六進位字串) 、使用即時事件名稱或使用自定義名稱。 選擇使用自訂名稱時,此值是自訂主機名稱的前置詞。
- 輸入主要畫面格間隔,也就是 HLS 輸出中每個媒體區段的秒數) 的持續時間 (。 該值應該是介於 0.5 到 20 秒範圍的非零整數。 如果未設定任何輸入或輸出主要畫面格間隔,此值會預設值為 2 秒。 只有在傳遞活動上才允許主要畫面格間隔。
- 自動啟動。 自動啟動設為 true 時,即時活動將會在建立後隨即啟動。 即時活動一執行,計費就會開始。 您必須明確停止即時活動,才能停止進一步計費。 或者,您可以在準備好開始串流時啟動活動。
- 擷取和預覽的IP限制。 您可以定義獲允許可將視訊內嵌到此即時活動的 IP 位址。 允許的 IP 位址可以指定為單一 IP 位址 (例如 ‘10.0.0.1’)、使用 IP 位址和 CIDR 子網路遮罩的 IP 範圍 (例如 ‘10.0.0.1/22’),或是使用 IP 位址和小數點十進位子網路遮罩的 IP 範圍 (例如 '10.0.0.1(255.255.252.0)')。
- 如果未指定 IP 位址而且也未定義規則,則任何 IP 位址都不允許。 若要允許任何 IP 位址,請建立規則,並設定 0.0.0.0/0。 IP 位址必須採用下列其中一種格式:具有四個數位或 CIDR 位址範圍的 IpV4 或 IPv6 位址。 如需使用 IPv4 或 IPv6 的詳細資訊,請參閱 使用 IP 允許清單限制DRM授權和 AES 金鑰傳遞的存取。
- 如果您想要在自己的防火牆上啟用特定 IP,或想要將對即時活動的輸入限制為 Azure IP 位址,請從 Azure 資料中心 IP 位址範圍下載 JSON 檔案。 如需此檔案的詳細資料,請選取頁面上的 [詳細資料] 區段。
- 預設會停用的實時轉譯。 如需即時轉譯的詳細資訊,請參閱即時轉譯。
待命模式
建立即時活動時,您可以將它設定為待命模式。 當事件處於 StandBy 模式時,您可以編輯描述和靜態主機名前置詞,以及限制輸入和預覽存取設定。 待命模式仍是可計費模式,但價格不同於您啟動即時串流時的價格。
如需詳細資訊,請參閱即時活動狀態和計費。
實況輸出
設定從內部部署編碼器到即時活動的串流之後,您可以建立 資產、 實時輸出和 串流定位器來開始串流活動。 即時輸出將會封存串流,並透過串流端點將它提供給檢視者。
即時活動輸出問題
請參閱常見問題集中的即時活動問題。 如需即時活動配額的相關資訊,請參閱配額和限制
設定即時活動的詳細數據
命名規則
- 即時活動名稱上限為 32 個字元。
- 名稱應遵循此 RegEx 模式:
^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$
。
另請參閱串流端點命名慣例。
提示
若要保證即時活動名稱的唯一性,您可以產生 GUID,然後移除所有連字號和大括弧 (如果有)。 字串在所有即時活動中將會是唯一的,而且其長度保證為 32。
即時活動內嵌 URL
建立即時活動之後,您就可以取得將提供給即時內部部署編碼器的內嵌 URL。 即時編碼器會使用這些 URL 來輸入即時資料流。 如需詳細資訊,請參閱建議的內部部署即時編碼器。
注意
自 2020-05-01 API 版本起,「虛名」URL 稱為靜態主機名稱 (useStaticHostname: true)
注意
若要讓內嵌 URL 成為靜態且可預測,而可在硬體編碼器設定中使用,請將 useStaticHostname 屬性設定為 true,並在每次建立時將 accessToken 屬性設定為相同的 GUID。
非靜態主機名稱
建立 LiveEvent 時,非靜態主機名稱是媒體服務 v3 中的預設模式。 您配置即時活動的速度會稍快,但您即時編碼硬體或軟體所需的內嵌 URL 將會隨機化。 如果您停止/開始即時活動,URL 將會變更。 非靜態主機名稱僅適用於使用者想要使用需要非常快速取得即時活動,且有動態內嵌 URL 不會是問題的應用程式進行串流的情況。
如果用戶端應用程式不需要在建立即時活動之前預先產生內嵌 URL,則讓媒體服務自動產生即時活動的存取權杖。
靜態主機名稱
想要使用建立或停止/啟動特定即時活動時永遠不會變更的 RTMP 內嵌 URL 來預先設定其即時編碼硬體或軟體的多數操作員,將偏好靜態主機名稱模式。 這些操作員需要有可預測且不隨時間而改變的 RTMP 內嵌 URL。 如果您需要將靜態 RTMP 內嵌 URL 推送至硬體編碼裝置的組態設定,例如 BlackMagic Atem Mini Pro 或類似的硬體編碼和生產工具,這也非常有用。
注意
在 Azure 入口網站中,靜態主機名稱 URL 稱為「靜態主機名稱前置詞」。
若要在 API 中指定此模式,請在建立時將
useStaticHostName
設定為true
(預設值為false
)。 將useStaticHostname
設定為 true 時,hostnamePrefix
會指定指派給即時活動預覽並內嵌端點的主機名稱的第一個部分。 最後的主機名稱是此前置詞、媒體服務帳戶名稱和 Azure 媒體服務資料中心簡短代碼的組合。若要避免 URL 中的隨機權杖,您也需要在建立時傳遞您自己的存取權杖 (
LiveEventInput.accessToken
)。 存取權杖必須是有效的 GUID 字串 (具有或沒有連字號)。 設定模式之後,就無法更新。存取令牌對於 Azure 區域和媒體服務帳戶而言必須是唯一的。 如果您的應用程式需要使用靜態主機名內嵌 URL,建議您一律建立全新的 GUID 實例,以搭配區域、媒體服務帳戶和即時活動的特定組合使用。
使用下列 API 來啟用靜態主機名稱 URL,並將存取權杖設定為有效的 GUID (例如,
"accessToken": "1fce2e4b-fb15-4718-8adc-68c6eb4c26a7"
)。語言 啟用靜態主機名稱 URL 設定存取權杖 REST properties.useStaticHostname LiveEventInput.useStaticHostname CLI --use-static-hostname --access-token .NET LiveEvent.useStaticHostname LiveEventInput.AccessToken
即時內嵌 URL 命名規則
- 下方的 random \(隨機\) 字串是 128 位元的十六進位數字 (由 32 個字元的 0-9 a-f 所組成)。
-
您的存取權杖:使用靜態主機名稱設定時所設定的有效 GUID 字串。 例如:
"1fce2e4b-fb15-4718-8adc-68c6eb4c26a7"
: - 串流名稱:指出特定連線的串流名稱。 串流名稱值通常是由您使用的即時編碼器新增。 您可以將即時編碼器設定為使用任何名稱來描述連線,例如:"video1_audio1"、"video2_audio1"、"stream"。
警告
如果您在數據流名稱中使用任何特殊字元或空格,即時擷取將會失敗。 請參閱開發人員概念概觀中的媒體服務資源 命名慣例 。
非靜態主機名稱內嵌 URL
RTMP
rtmp://<random 128bit hex string>.channel.media.azure.net:1935/live/<auto-generated access token>/<stream name>
rtmp://<random 128bit hex string>.channel.media.azure.net:1936/live/<auto-generated access token>/<stream name>
rtmps://<random 128bit hex string>.channel.media.azure.net:2935/live/<auto-generated access token>/<stream name>
rtmps://<random 128bit hex string>.channel.media.azure.net:2936/live/<auto-generated access token>/<stream name>
Smooth Streaming
http://<random 128bit hex string>.channel.media.azure.net/<auto-generated access token>/ingest.isml/streams(<stream name>)
https://<random 128bit hex string>.channel.media.azure.net/<auto-generated access token>/ingest.isml/streams(<stream name>)
靜態主機名稱內嵌 URL
在下列路徑中,<live-event-name>
表示指定給活動的名稱,或建立即時活動時使用的自訂名稱。
RTMP
rtmp://<live event name>-<ams account name>-<region abbrev name>.channel.media.azure.net:1935/live/<your access token>/<stream name>
rtmp://<live event name>-<ams account name>-<region abbrev name>.channel.media.azure.net:1936/live/<your access token>/<stream name>
rtmps://<live event name>-<ams account name>-<region abbrev name>.channel.media.azure.net:2935/live/<your access token>/<stream name>
rtmps://<live event name>-<ams account name>-<region abbrev name>.channel.media.azure.net:2936/live/<your access token>/<stream name>
Smooth Streaming
http://<live event name>-<ams account name>-<region abbrev name>.channel.media.azure.net/<your access token>/ingest.isml/streams(<stream name>)
https://<live event name>-<ams account name>-<region abbrev name>.channel.media.azure.net/<your access token>/ingest.isml/streams(<stream name>)
即時活動預覽 URL
在即時活動開始接收發佈摘要之後,您便可以使用其預覽端點來預覽及驗證是否有在接收即時串流,然後才進行進一步的發佈。 確認預覽串流狀況良好之後,您就可以使用即時活動讓即時串流可供透過一或多個 (預先建立的) 串流端點進行傳遞。 若要達到此目的,請在即時活動上建立新的即時輸出。
重要
請先確定視訊流向預覽 URL,再繼續操作!
即時活動長時間執行的作業
如需詳細資料,請參閱長時間執行的作業。
取得說明及支援
您可以連絡媒體服務並詢問問題,或依照下列其中一種方法追蹤我們的更新:
- 問與答
-
Stack Overflow。 使用
azure-media-services
標記問題。 - @MSFTAzureMedia 或使用 @AzureSupport 來要求支援。
- 透過 Azure 入口網站 開啟支援票證。