서문
실시간 스트리밍 이벤트를 만들고 관리할 수 있는 REST 기반 API입니다. Live API 옵션 기능은 다음과 같습니다.
- 서버측 광고 삽입 ( SSAI )
- AES-128암호화
- 라이브 스트림에서 가져온 클립에서 주문형 비디오 에셋 만들기
- DVR능력
- 멀티플CDNs
기본 URL
의 기본Live API URL은 다음과 같습니다.
https://api.bcovlive.io
헤더
Live API에 요청할 때 API 키를 사용하여 인증해야 합니다. Live 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인 계정으로 제한됩니다. 미국 서부-2 : 최대 10개까지 가능합니다. 모든 제한은 지역이 아닌 계정별로 설정됩니다.
지원되는 CDN
라이브 스트리밍에는 다음 CDN이 지원됩니다.
- Akamai
- Cloudfront
다른 파일 기반 CDN은 작동하지만 테스트를 거치지 않았으며 적극적으로 지원되지 않습니다.
채널 및 이벤트 시간
Live에는 두 가지 구매 옵션이 있습니다.
- 스트리밍 시간 구매 이벤트 시간
- 스트리밍 채널 구매
이벤트 스트리밍 시간과 채널을 모두 구매할 수도 있습니다. 오퍼링에 대한 자세한 내용은 고객 성공 관리자에게 문의하십시오.
청구 가능 상태
라이브 작업에 대한 청구는 활성 상태에 적용됩니다.
활성 상태(청구 적용)
waiting
processing
disconnected
비활성 상태(청구가 적용되지 않음)
standby
cancelling
finishing
cancelled
finished
failed
토큰 인증
Brightcove는 라이브 비디오 스트림 재생 URL에 토큰 인증을 추가하는 옵션을 제공합니다. 토큰 인증을 추가하려면 Brightcove 지원팀에 문의하십시오 . 토큰 인증을 설정하는 데 최대 3일이 걸릴 수 있습니다.
토큰의 TTL (유효 기간) 은 1시간에서 365일까지 원하는 값으로 설정할 수 있습니다. TTL 설정 기간은 배포하는 실시간 스트림의 종류에 따라 다릅니다. 그러나 TTL은 계정 전체 설정이며 모든 실시간 스트림에 적용됩니다.
DVR능력
브라이트코브 라이브 스트림에는DVR기능이 있습니다. 이 기능을 사용하려면 다음을 수행해야합니다.
- 재생용
playback_url_dvr
URL 사용 - 가지고 있는 플레이어를 사용하세요. DVR능력
DVR 기능은 86,400 초로 제한됩니다.
DVR스트리밍은 실시간 스트림이 완료된 후 7일 동안 계속 사용할 수 있습니다.
끝점 및 운영
의 주요 작업은 라이브 스트림을 생성 및 관리하고 라이브 스트림에서 VOD 클립을 생성하는 것입니다. Live API 이러한 작업은 다음 끝점에 대한 요청을 통해 수행되며 문서의 나머지 부분에서 자세히 설명합니다.
작업 생성 및 관리
클립 만들기
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 Quick Start는 라이브 스트림 작업을 생성하고 이를 재생할 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
a가 필요합니다.
라이브 작업 중지
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 참조에서 확인할 수있습니다.
슬레이트 미디어 소스 자산 가져 오기
GET https://api.bcovlive.io/v1/ssai/slates/:ACCOUNT_ID
계정에 대해 정의 된 슬레이트 미디어 자산을 가져옵니다. 슬레이트 미디어 자산은 광고로 채워지지 않은 광고 시간을 채우는 데 사용됩니다. 응답 필드의 세부 정보는 API 참조에서 확인할 수있습니다.
슬레이트 미디어 소스 자산 수집
POST https://api.bcovlive.io/v1/ssai/slates
채워지지 않은 광고 시간을 채우기 위해 슬레이트 용 미디어 자산을 추가합니다. 요청 본문 필드의 세부 정보는 API 참조에서 확인할 수있습니다.
슬레이트 미디어 소스 자산 삭제
DELETE https://api.bcovlive.io/v1/ssai/slates/:SLATE_MSA_ID
슬레이트 미디어 자산을 삭제합니다.
정적 진입 점
정적 진입점 (SEP) 기능을 사용하면 진입점 URL 및 재생 URL을 정적으로 유지하고 재사용 가능한 상태로 유지하면서 활성화 및 비활성화할 수 있는 장기 실행 라이브 작업을 수행할 수 있습니다. 이 기능을 통해 고객은 시설 또는 현장에서 인코더를 구성할 수 있으며, 고객은 라이브 채널 또는 프로그램에 대한 자체 일정 로직을 만들 수 있습니다. 자세한 내용은정적 진입점을참조하십시오.
SEP 작업의 활성화 및/또는 비활성화를 예약할 수 있는 스케줄러도 있습니다. 개요 참조: 라이브 스케줄러 .
자막
캡션이 h264 입력 신호 (user_data 패킷에서 올바르게 시그널링 됨) 내에있는 경우 해당 캡션은 h264 출력으로 전달됩니다.
브로드 캐스트 Elemental 라이브 인코더를 사용하는 경우 SDI (EIA-608 / CEA-608) 또는 기타 소스 (SCTE-20, SCC, Teletext, DVB-Sub, Ancillary, 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 캐시를 지워야 할 수도 있습니다.
- 현재 입력 스트림의 프레임 속도는 30FPS로 제한됩니다. 더 높은 프레임 속도를 사용하려면 지원팀에 문의하십시오.
- 기본적으로 입력 스트림의 해상도는 1080p로 제한됩니다.
- 연결을 끊었다가 다시 연결할 때 스트림 설정이 동일하게 유지되어야 합니다. 오디오 채널 수, 해상도 또는 코덱 설정을 변경하면 예기치 않은 동작이 발생합니다.
- 비디오 클라우드 비디오의 원격 소스로 DASH와 MP4를 추가할 수 있지만 현재 Live는 해당HLS비디오만 지원합니다.
- 입력 스트림에는 AAC 오디오 만 지원됩니다.
- 대기 중인 시작되지 않은 활성작업은 언제든지 최대 5개까지 허용됩니다.
동시 작업에 대한 추가 제한 사항:
channel
(연중무휴) 작업 수는 지역당 0개 또는 적은 수로 제한됩니다 (계정 유형에 따라 다름).- 동시에실행되는
event
작업 수는 지역별로 제한되며 일반적으로 100개로 제한됩니다. - 연결을 위해 동시에대기 중인
event
작업 수는 5개로 제한됩니다. - 지역당 SEP 작업 수는 3개 또는 10개로 제한됩니다 ( 지원되는 AWS 지역 참조 ).
이러한 제한은 지원 부서에서 계정 수준에서 조정할 수 있습니다. 추가 용량이 필요한 경우 고객 성공 관리자에게 문의하십시오.
- 라이브
stream_url
작업용으로 반환된 “RTMP” 주소는 레거시 FMS RTMP 스트림이 아닌 Akamai HD 라이브 스트림입니다. 이전 버전의 Internet Explorer에서는 지원되지 않습니다. - 라이브 스트림은 HTTPS를 통해 전달되며, Brightcove 계정이 HTTPS에 대해 활성화되지 않은 경우 Brightcove 플레이어가 라이브 스트림을로드하지 못합니다. 계정에서 오리진 서빙에 대한 HTTPS 지원이 활성화되지 않은 경우 Brightcove 지원팀에문의하여 재생 문제를 방지하기 위해 오리진 서비스에 대한 HTTPS 지원을 활성화하십시오.
- 멀티 비트레이트의 HLS 출력 내에서 트랜스멀티믹싱된 렌디션을 사용하는 경우 트랜스먹싱 시
segment_size
포함시킬 수 있지만 입력 스트림GOP
크기의 배수가 되도록 설정해야 합니다. 따라서 입력이 30fps이고 60프레임마다 키프레임이 있는 경우GOP
크기는 2초이고 세그먼트 크기는 2의 배수여야 합니다. 이렇게하지 않으면 스트림 세그먼트의 크기가 달라집니다.또한 어떤 출력에도
keyframe_interval
지정해서는 안 됩니다. - 자체 FTP 또는 S3 원본 위치를 사용하는 경우 원본 위치로 대체하도록 CDN을 구성해야합니다. Brightcove Live 시스템은 작업 요청에 제공된 CDN의 원본 위치를 확인하지 않습니다.