簡介
的Live API是基於REST的API,允許您創建和管理實時流事件。可選功能包括:
- 服務器端廣告插入(SSAI)
- AES-128加密
- 從即時串流中擷取的剪輯片段建立隨選視訊資產
- DVR能力
- 多CDNs
另請參閱API參考。
基本網址
的基本網址Live API是:
https://api.bcovlive.io
標頭
向 Live API 發出請求時,您需要使用 API 密鑰進行身份驗證。要獲取實時 API 密鑰,請打開 客戶支持票。密鑰在X-API-KEY
標頭。一種Content-Type
標頭也是必需的:
X-API-KEY : YOUR_APIKey
Content-Type: application/json
支持的AWS區域
支持以下AWS區域:
地點 | AWS名稱 | SSAI支持 |
---|---|---|
奧勒岡 | us-west-2 | |
維吉尼亞 | us-east-1 | |
東京 | ap-northeast-1 | |
新加坡 | ap-southeast-1 | |
悉尼 | ap-southeast-2 | |
孟買 | ap-south-1 | < |
法蘭克福 | eu-central-1 | |
愛爾蘭 | eu-west-1 |
請注意,SEP 作業受帳戶限制,其中標準限制為 3,但 us-west-2除外:其限制最多為 10。所有限制均由帳戶而非地區設置。
支援的 CDN
實時流支持以下CDN:
- Akamai
- Cloudfront
其他基於文件的CDN應該可以使用,但尚未經過測試並且未得到積極支持。
頻道和活動時間
Live有兩種購買選項:
- 流媒體活動的購買活動時間
- 購買流媒體頻道
您也可以購買事件流式傳輸時間和頻道。有關產品的更多信息,請聯繫您的客戶成功經理。
計費狀態
實時作業計費適用於 活動 狀態:
活動狀態(計費適用)
waiting
processing
disconnected
非活動狀態(計費不適用)
standby
cancelling
finishing
cancelled
finished
failed
權杖驗證
Brightcove提供了向實時視頻流播放URL添加令牌身份驗證的選項。如果您想添加令牌身份驗證,聯繫Brightcove支持。設置令牌身份驗證最多可能需要三天。
令牌的TTL(生存時間)可以設置為一小時到365天之間的任何值。設置TTL的時間取決於您部署的實時流類型。請注意,TTL是整個帳戶範圍的設置,並且將應用於所有實時流。
DVR能力
Brightcove直播流有DVR能力。要使用此功能,您必須:
- 使用
playback_url_dvr
播放網址 - 使用具有硬盤錄像機能力
DVR功能限制為86,400秒。
的DVR直播結束後,直播將持續7天。
端點和操作
主要操作Live API正在創建和管理實時流,並從實時流生成VOD剪輯。這些操作通過對以下端點的請求來執行,在文檔的其餘部分中對此進行了詳細說明。
創建和管理工作
創建剪輯
管理SSAI
創建和管理工作
這些操作使您可以創建實時作業,獲取其詳細信息並停止它。還有一個端點可以為廣告休息時間創建立即提示點。
建立即時工作
POST https://api.bcovlive.io/v1/jobs
該端點用於通過POST
請求。除了指定直播流本身的屬性外,請求還可以指定要從直播流生成的VOD剪輯(也可以稍後通過終點)。可在請求正文中包含的字段的詳細信息在API參考。
輸入協議
Brightcove Live支持多種輸入協議。使用protocol
創建作業以指定要使用的作業時,請求正文中的字段。支持的值為:
rtmp
(默認)rtp
rtp-fec
srt
RTMP協議用於以FLV格式傳送流。其他協議用於傳遞MPEG2-TS。
如果您使用rtp
,rtp-fec
要么srt
,還必須指定一個cidr_whitelist
(看到無類域間路由)。
如果您使用rtmp
,您可以指定一個ip_whitelist
代替輸入,但這不是必需的。
RTP + FEC作業的示例請求正文:
{
"live_stream":true,
"region":"us-west-2",
"reconnect_time":300,
"outputs":[
{
"label": "hls720p",
"live_stream": true,
"height": 720,
"video_bitrate": 800,
"segment_seconds": 6,
"keyframe_interval": 90
}
],
"protocol": "rtp-fec",
"cidr_whitelist": ["127.0.0.1/32"]
}
的Live API快速開始引導您完成實時流作業並設置Brightcove Player進行播放。
列出現場工作
GET https://api.bcovlive.io/v1/jobs
該端點用於通過GET
請求。端點支持分頁,排序和搜索過濾。可在請求正文中包含的字段的詳細信息在API參考和一些其他信息可以在獲取實時或VOD作業列表。
獲取實時工作詳細信息
GET https://api.bcovlive.io/v1/jobs/:jobId
該端點使您能夠獲取有關實時流的詳細信息,當您最初創建作業時也會返回該信息。見API參考有關響應字段的詳細信息。
手動插入廣告提示點
POST https://api.bcovlive.io/v1/jobs/:jobId/cuepoint
通常,您的編碼器將發送廣告間隔的提示點,但是您也可以通過向該端點發送請求來創建即時廣告間隔。見API參考有關詳細信息。
請注意timecode
形式DD:HH:MM:SS
提示點是必需的。
停止現場工作
PUT https://api.bcovlive.io/v1/jobs/:jobId/cancel
使用此端點可以立即停止直播。取消後,實時流將無法重新啟動。見API參考有關詳細信息。
創建剪輯
您可以從實時流中創建視頻點播剪輯,並將其存儲在Video Cloud帳戶中,或將其發送到S3存儲桶或FTP地址。您可以在創建實時流時定義片段,或稍後使用下面描述的端點來創建它們。另請參閱創建剪輯指南。
創建VOD剪輯
POST https://api.bcovlive.io/v1/vods
可以根據與流或UNIX時間戳的起點之間的偏移量來定義剪輯的起點和終點。請求正文字段的詳細信息可以在API參考。
獲取VOD(剪輯)作業列表
要獲取剪輯的VOD作業列表,請參見獲取實時或VOD作業列表和API參考。
管理SSAI
使用服務器端廣告插入(SSAI),您可以在實時流中插入任意多個廣告間隔。您還可以提取板岩資產(VOD剪輯),以使用即時反饋消息或任何您喜歡的消息來填充任何未使用的廣告時間。
設置的更多細節SSAI可以在使用Brightcove的服務器端廣告插入Live API和API參考。
獲取帳戶廣告配置
GET https://api.bcovlive.io/v1/ssai/applications/:account_id
通過此終結點,您可以獲取為帳戶設置的所有廣告配置。有關響應字段的詳細信息,請參見API參考。
建立廣告組態
POST https://api.bcovlive.io/v1/ssai/application
創建一個廣告配置,定義如何檢索廣告SSAI。請求正文字段的詳細信息可以在API參考。
獲取廣告配置
GET https://api.bcovlive.io/v1/ssai/application/:application_id
使用此端點可獲取您創建的廣告配置的詳細信息。有關響應字段的詳細信息,請參見API參考。
更新廣告配置
PUT https://api.bcovlive.io/v1/ssai/application/account/:application_id
更新廣告配置的詳細信息。請求正文字段的詳細信息可以在API參考。
獲取Slate媒體資源
GET https://api.bcovlive.io/v1/ssai/slates/:ACCOUNT_ID
獲取為帳戶定義的平板媒體資產。板岩媒體資源用於填充廣告未填充的廣告休息時間。有關響應字段的詳細信息,請參見API參考。
攝取Slate媒體資源
POST https://api.bcovlive.io/v1/ssai/slates
為板岩添加媒體資源,以填補廣告空缺的時間。請求正文字段的詳細信息可以在API參考。
刪除Slate媒體源資產
DELETE https://api.bcovlive.io/v1/ssai/slates/:SLATE_MSA_ID
刪除平板媒體資產。
靜態入口點
靜態進入點 (SEP) 功能允許長時間執行的即時工作,可啟動和停用,同時將進入點 URL 和播放 URL 保持靜態且可重複使用。此功能可讓客戶在設施或現場設定編碼器,並允許客戶為即時頻道或節目建立自己的排程邏輯。看到靜態入口點有關詳細信息。
還有一個調度程序允許您安排 SEP 作業的激活和/或停用。看到概述:實時調度程序 .
字幕
如果字幕在h264輸入信號內(在user_data數據包中已正確發出信號),則將它們傳遞到h264輸出。
如果您使用的是廣播Elemental live編碼器,則可以從SDI(EIA-608 / CEA-608)或其他來源(SCTE-20,SCC,圖文電視,DVB-Sub,輔助,ARIB,TTML,SCTE-27, STL,SRT,SMI)並將其放入您發送給我們的h264流中。其他廣播級編碼器可能可以做同樣的事情,但我們沒有正式測試它們。
插入 ID3 計時的詮釋資料
此信息已移至插入ID3定時元數據。
限制
-
為了使使用API創建的實時作業顯示出來,並且不能在實時模塊,您必須包括
videocloud
創建作業時,請求正文中的對象。例如:
{ "live_stream": true, "region": "eu-central-1", "reconnect_time": 1800, "live_sliding_window_duration_ms": 0, "outputs": [ { "label": "hls720p", "live_stream": true, "width": 1280, "height": 720, "video_codec": "h264", "h264_profile": "high", "video_bitrate": 2100, "segment_seconds": 4, "keyframe_interval": 60 } , { "label": "hls540p", "live_stream": true, "width": 960, "height": 540, "video_codec": "h264", "h264_profile": "main", "video_bitrate": 1500, "segment_seconds": 4, "keyframe_interval": 60 } , { "label": "hls360p", "live_stream": true, "width": 640, "height": 360, "video_codec": "h264", "h264_profile": "main", "video_bitrate": 800, "segment_seconds": 4, "keyframe_interval": 60 } ], "videocloud": { "video": { "name": "live event UI", "description": "live event UI", "long_description": "", "tags": [], "reference_id": "", "state": "ACTIVE" } } }
- 來自編碼器的初始連接提供了要通過實時播放列表創建的帶寬信息。如果初始連接較低,即使作業配置具有較高的輸出,播放列表仍將在播放列表上保留相同的信息,直到完成以下操作:
- 編碼器重新啟動
- CDN緩存可能還需要清除
- 當前,輸入流的幀速率限制為30 FPS。如果您對使用更高的幀速率感興趣,請聯繫支持。
- 默認情況下,輸入流的分辨率限制為1080p。
- 中斷連線並重新連線時,串流設定必須保持不變。對音訊頻道數目、解析度或轉碼器設定所做的任何變更,都會導致無法預測的行為。
- 儘管您可以為視頻雲視頻的遠程源添加DASH和MP4,但Live當前支持HLS只要。
- 輸入流僅支持AAC音頻。
- 任何時候最多允許 5 個使用中等待未啟動的工作。
並行工單的其他限制:
channel
( 24x7) 工作數量限制為 0 或每個區域的數目較少 (取決於帳戶類型)。- 同時執行的
event
工作數目受區域限制,通常為 100。 - 同時等待連線
event
工作的數目限制為 5 個。 - 每個區域的SEP作業數量限制為3或10(請參見支持的AWS區域)。
任何這些限制都可以由支援在帳戶層級調整。如果您需要額外的容量,請聯繫您的客戶成功經理。
- “ RTMP”地址作為
stream_url
適用於Live作業的是Akamai HD Live流,而不是舊的FMS RTMP流-舊版本的Internet Explorer不支持。 - 實時流是通過HTTPS傳遞的,如果您的Brightcove帳戶未啟用HTTPS,則Brightcove播放器將無法加載實時流。如果您的帳戶沒有啟用HTTPS對原始服務的支持,請聯繫Brightcove支持獲得啟用原始服務的HTTPS支持以防止播放問題。
- 在多比特率HLS輸出中使用經過多路復用的演繹時,
segment_size
可以在轉碼時包含在內,但應將其設置為GOP
輸入流的大小。因此,如果輸入為30 fps,每60幀有關鍵幀,則GOP
size為2秒,而段大小應為2的倍數。如果不這樣做,則流段的大小將有所不同。也,
keyframe_interval
應該不在任何輸出上指定。 - 使用自己的FTP或S3原始位置時,必須將CDN配置為回退到原始位置。Brightcove Live系統將不會驗證作業請求中提供的CDN的原始位置。