透過 RTMPS 放送 YouTube 直播內容
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
本文說明如何使用 RTMPS 透過編碼器在 YouTube 上串流即時資料。RTMPS 是透過 SSL 連線建立通道的 RTMP (即時訊息通訊協定) 一般影片串流。本文件的適用對象為想將 RTMPS 支援功能至支援 RTMP 的編碼器的廠商。
對一般的一般使用者內容而言,RTMPS 是一個不錯的選擇。當需要延遲時間較短時更是如此。請參閱內容擷取通訊協定比較,瞭解 YouTube 即時串流支援的各種擷取通訊協定。
需求條件
必須完成以下必要步驟才能傳送 RTMPS 到 YouTube 直播:
- 連線網址的每個部分 (
<protocol>://<server>/<path>
) 都必須正確:- 通訊協定必須是
rtmps
。
- 伺服器必須是有效的 YouTube RTMPS 擷取端點。
- 路徑必須是有效的 YouTube 直播 RTMP 應用程式名稱。
- 您必須建立擷取伺服器的通訊埠 443。
- 多媒體串流必須透過 RTMP 傳送,也就是
透過 RTMP 連線使用 RTMP。
取得連線網址
如果編碼器已使用 YouTube Live API,則取得 RTMPS 擷取網址的程序與 RTMP 的擷取程序類似。請傳送 LiveStreams insert (POST) 要求來建立新的擷取串流。回應中的 cdn.ingestionInfo.rtmpsIngestionAddress
欄位會指定 RTMPS 網址。如果您支援雙重擷取,備份位址會是 cdn.ingestionInfo.rtmpsBackupIngestionAddress
。
建立連線
使用您偏好的通訊端程式庫,在擷取網址指定的伺服器中,建立通訊埠 443 的 SSL/TLS 連線。傳輸層安全標準 (TLS) 僅適用於傳輸層,因此不需要伺服器主機名稱就能啟動連線;不過,我們的伺服器需要經過驗證。因此,請務必將 SNI 擴充功能 (伺服器名稱指示) 新增至安全資料傳輸層 (SSL) 握手,並將伺服器名稱設為您要連線的伺服器主機名稱。
建立 SSL 連線後,請使用該連線做為 RTMP 用戶端程式庫的連線。初始化的安全資料傳輸層 (SSL) 連線與標準 TCP 連線具有相同的 API,因此 RTMP 程式庫應該都能在兩者上使用。
疑難排解
安全資料傳輸層 (SSL) 錯誤
如果您嘗試建立安全資料傳輸層 (SSL) 連線卻收到無效的憑證,可能是因為您要連線至預期使用 RTMP 的 YouTube 伺服器。請確認您使用的伺服器名稱中包含「rtmps」,請注意「s」。
如果網址正確,但您仍然看到 SSL 錯誤,可能是因為您連線到錯誤的通訊埠。確認您連線至通訊埠 443。
如果網址和通訊埠正確無誤,則您的 SSL 程式庫可能無法正確處理憑證。尋找低層級診斷的安全資料傳輸層 (SSL) 失敗訊息,並再次檢查您在使用握手時使用的是 SNI。
連線逾時
如果可以連線至伺服器,但您的 RTMP 程式庫在沒有回應回應的情況下逾時,您可能為了與 RTMPS 預期使用的 YouTube 伺服器設定了明文 RTMP 連線。確認您建立的是安全資料傳輸層 (SSL) 連線,而非純 TCP 連線。
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2023-02-22 (世界標準時間)。
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["缺少我需要的資訊","missingTheInformationINeed","thumb-down"],["過於複雜/步驟過多","tooComplicatedTooManySteps","thumb-down"],["過時","outOfDate","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["示例/程式碼問題","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2023-02-22 (世界標準時間)。"],[[["RTMPS is a secure method for streaming live data to YouTube, using RTMP through an SSL connection."],["To use RTMPS, ensure the connection URL is correct, including the `rtmps` protocol, a valid YouTube ingestion endpoint, and a valid application name."],["Connections must be made to port 443, and the server hostname is required for authentication via the SNI extension in the SSL handshake."],["Encoder vendors can retrieve the RTMPS ingestion URL from the `cdn.ingestionInfo.rtmpsIngestionAddress` field in the response of a LiveStreams insert request, similar to RTMP."],["Common issues like SSL errors and connection timeouts often arise from incorrect server names, ports, or improper SSL setup, and usually indicate a cleartext RTMP connection is being attempted instead of RTMPS."]]],[]]