即時 API:RTMP 輸出

本主題說明如何使用Live API輸出RTMP。當您將流式傳輸到不支持HLS實時流的平台時,RTMP輸出非常有用。

一般資訊

要使用RTMP輸出,請注意以下幾點

  • 您必須已購買活動時間,或任何數字營銷套餐
  • RTMP輸出時間將根據活動時間計費
  • 每個現場工作最多只能有5個輸出
  • 您可以定義一個label標籤可以在其中選擇為流選擇的輸出格式之一。如果label如果未設置,則輸出將默認為輸入源。
  • 它們可以與標準作業和重複事件(SEP)一起使用。
  • 它們可用於事件或24/7流。
  • 它們可以獨立於任何直播流而啟動和停止。
  • 對於在實施RTMP輸出功能之前創建的SEP作業,該功能將無法完全使用:在API上,即使實際創建了RTMP輸出,也會顯示失敗。為了獲得最佳結果,請創建一個新的SEP作業以使用RTMP輸出功能。
  • 當將RTMP輸出與標準作業(非SEP)一起使用時,RTMP輸出流將在作業結束時結束。
  • RTMP輸出支持rtmps網址,如果社交媒體平台支持它們,我們建議使用它們。另請注意,自2019年5月1日起,Facebook將僅允許RTMPS。
  • RTMP URL 目前支援的唯一格式rtmps://host:port/application/streamName

通知

您可以設置以下內容的通知rtmp_output_state_changed事件。將發送以下狀態的通知:

b
RTMP 輸出狀態
RTMP 輸出狀態 (報告為rtmp_output_state_changed通知為state
starting 流正在開始。
connected 編碼器已連接。
Disconnected 編碼器已中斷連線。
error 串流無法連線。
pending_deactivation 進入點已排入佇列,以便從串流工作者清理。
deactivation_in_progress 進入點正在中斷與串流工作者的連線。
cancelled 入口點已被取消。
finished 進入點已順利完成。

RTMP輸出的通知必須在職業等級創建實時作業時。

看到不同state為RTMP輸出報告的值,請參閱實時通知

創建RTMP輸出

首先,您將需要像平時一樣創建一個實時作業,然後再提出一個附加請求來創建RTMP端點。

注意:在某些情況下,例如激活/停用作業,此API調用將返回錯誤,如果發生這種情況,請在暫停後重試。

端點

	https://api.bcovlive.io/v1/jobs/{jobId}/rtmpouts

方法

POST

要求主體

	{
		"url": "rtmps://host:port/application/streamName",
		"output_label": "480p"
	}
請求主體欄位
欄位名稱 必填 類型 描述
url RTMP輸出的URL-示例rtmp://live-api-s.facebook.com:80/rtmp/my_stream
output_label 作業輸出的標籤,用作RTMP輸出的源。忽略此參數可以簡單地使用RTMP輸入。

範例回應

	{
		"host": "live-api-s.facebook.com",
		"port": 80,
		"application": "rtmp",
		"streamName": "my_stream",
		"rtmp_out_id": "asdfg-lkjh"
	}

獲取RTMP輸出

端點

	https://api.bcovlive.io/v1/jobs/{jobId}/rtmpouts

方法

GET

範例回應

	[
		{
			"rtmp_out_id": "asdfg-lkjh",
			"stream_start": 1538746255247,
			"connection_info": {
				"host": "a.rtmp.youtube.com",
				"port": 1935,
				"application": "live2",
				"streamName": "my_stream",
				"sessionStatus": "Active"
			}
		}
	]

停止RTMP輸出

端點

	https://api.bcovlive.io/v1/jobs/{jobId}/rtmpouts/{rtmp_out_id}/stop

方法

PUT

範例回應

	{
		"message": "RTMP out asdfg-lkjh deleted successfully"
	}