서문
Brightcove Live의 이중화 기능은 첫 번째 스트림이 작동을 멈춘 경우 Live가 자동으로 장애 조치 할 백업 스트림을 생성하여 라이브 이벤트에 대한 안정적인 성능을 보장하는 데 도움이됩니다.
Live API에 대한 모든 요청에는 다음 헤더가 필요합니다.
키 | 값 | 참고 |
---|---|---|
X-API-KEY |
{your API Key} | Brightcove Live 계정을 열 때 키를 제공해야합니다. |
Content-Type |
응용 프로그램/json | 기술적으로content-type 헤더는 요청 본문을 포함하는 쓰기 요청에만 필요하지만 읽기 요청에는 해를 끼치 지 않아야합니다. |
라이브 작업 생성
중복 설정의 경우 2 개 이상의 Brightcove 라이브 작업을 생성해야합니다. Jobs의 유일한 요구 사항은같은output
설정. 이를 달성하는 가장 쉬운 방법은 원하는 출력 사양으로 하나의 작업을 생성 한 다음copy_outputs_from_job
추가 작업을 생성하는 매개 변수.
이러한 일자리를 창출 할 수있는 지역에는 제한이 없지만 상대적으로 가까운 곳에 위치하는 것이 좋습니다.
라이브 작업이 생성 된 후 나중에 작업 ID를 유지합니다. 이러한 작업을 중복 그룹 (아래 섹션 참조)에 추가하는 데 사용할 요청 본문은 다음과 같습니다.
[
{
"job_id": "0b76bc73f92f46dc917bbe5061c0c633"
},
{
"job_id": "0ae5a4a71dc54b3181af0f98ee407c27"
}
]
중복 그룹 만들기
중복 그룹을 생성하려면POST
요청 :
https://api.bcovlive.io/v1/redundantgroups
다음은 샘플 요청 본문입니다.
{
"ad_insertion": true,
"processing_regions": ["us-west-2"],
"storage_regions": ["us-west-2", "us-east-1"],
"label": "Test RG",
"live_dvr_sliding_window_duration": 1800
}
아래 표에는 요청 본문에 대한 전체 필드 목록이 포함되어 있습니다. 여러 경우에 이는 라이브 작업을 생성하는 데 사용되는 필드와 동일합니다. 참조라이브 API 참조필드에 대한 자세한 내용은.
필드 | 유형 | 필수? | 설명 |
---|---|---|---|
ad_insertion |
부울 | 선택 과목 | 이 스트림이 SSAI를 활성화해야하는 경우 true로 설정합니다. |
add_cdns |
배열 | 선택 과목 | 매니페스트 생성에 사용할 추가 CDN 공급자의 배열입니다. 제공된 각 CDN에 대해 매니페스트가 그에 따라 앞에 추가됩니다. |
drm |
목적 | 선택 과목 | 아직 지원되지 않음 |
encryption |
목적 | 선택 과목 | 아직 지원되지 않음 |
label |
끈 | 필수 | 그룹을 식별하는 레이블 |
live_dvr_sliding_window_duration |
정수 | 선택 과목 | |
notifications |
배열 | 선택 과목 | 알림 대상 객체 또는 문자열의 배열 |
processing_regions |
배열 | 필수 | 중복 그룹에 대한 처리 영역입니다. 이렇게하면 매니페스트를 생성 할 AWS 리전이 결정됩니다. 이는 storage_regions 및 라이브 작업이 생성 된 지역과 일치하는 것이 좋습니다. |
storage_regions |
배열 | 필수 | 스토리지 영역 미디어 청크 및 재생 목록은 S3에 업로드됩니다. 이는 processing_regions 및 라이브 작업이 생성되는 지역과 일치하는 것이 좋습니다. |
videocloud |
목적 | 선택 과목 | Video Cloud 고객은 라이브 스트림에 사용할 비디오를 만들 수 있습니다. |
응답은 다음과 같습니다.
{
"id": "481ff4cf0bf74956bc2ec6e126588080",
"processing_regions": [
{
"region": "us-west-2",
"probability": 1
}
],
"storage_regions": [
"us-west-2",
"us-east-1"
],
"jobs": [],
"state": "standby",
"label": "Test RG",
"live_dvr_sliding_window_duration": 1800,
"status": {
"us-west-2": null
},
"ad_insertion": true,
"outputs": {
"playback_url": "https://playback-qa.a-live.io/r481ff4cf0bf74956bc2ec6e126588080/us-west-2/NA/playlist.m3u8",
"playback_url_dvr": "https://playback-qa.a-live.io/r481ff4cf0bf74956bc2ec6e126588080/us-west-2/NA/playlist_dvr.m3u8",
"ssai_playback_urls": {
"26f8470f61374e608e27af9c1b3f7ff0": {
"playback_url": "https://playback-qa.a-live.io/r481ff4cf0bf74956bc2ec6e126588080/us-west-2/NA/26f8470f61374e608e27af9c1b3f7ff0/playlist_ssaiM.m3u8",
"playback_url_dvr": "https://playback-qa.a-live.io/r481ff4cf0bf74956bc2ec6e126588080/us-west-2/NA/26f8470f61374e608e27af9c1b3f7ff0/playlist_dvr_ssaiM.m3u8",
"description": "House Ads - 864b84f712ae40bca1510a8052b34312",
"type": "ads"
}
}
}
중복 그룹 가져 오기
제출하여 모든 중복 그룹을 얻을 수 있습니다. GET
요청 :
https://api.bcovlive.io/v1/redundantgroups
다음을 사용하여 응답을 필터링 할 수 있습니다. state
param. 허용되는 값은 다음과 같습니다.
cancelled
cancelling
deleting
disconnected
failed
finished
finishing
processing
standby
waiting
또 한있다page_size
최대 1000의 정수로 설정할 수있는 매개 변수입니다. 기본값page_size
10입니다.
응답은 다음과 같습니다.
{
"redundant_groups": [
{
"id": "91c268a6ec5240d79a6004f4ccf0dc6f",
"account_id": "a95ac581551b4478b27910e5675db1f8",
"user_id": "c2691d4d039040be96c190a949d754a7",
"processing_regions": [
{
"region": "us-west-2",
"probability": 1
}
],
"storage_regions": [
"us-west-2",
"us-east-1"
],
"jobs": [],
"state": "standby",
"created_at": 1594316624287,
"updated_at": 1594316624287,
"label": "Test Redundant Group",
"live_dvr_sliding_window_duration": 86400,
"status": {
"us-west-2": null
},
"outputs": {
"playback_url": "https://bcovlive-a.akamaihd.net/r91c268a6ec5240d79a6004f4ccf0dc6f/us-west-2/NA/playlist.m3u8",
"playback_url_dvr": "https://bcovlive-a.akamaihd.net/r91c268a6ec5240d79a6004f4ccf0dc6f/us-west-2/NA/playlist_dvr.m3u8"
}
},
{
"id": "279ac36e4b4d48a3abbd3e1f98cd57aa",
"account_id": "a95ac581551b4478b27910e5675db1f8",
"user_id": "c2691d4d039040be96c190a949d754a7",
"processing_regions": [
{
"region": "us-west-2",
"probability": 1
}
],
"storage_regions": [
"us-west-2",
"us-east-1"
],
"jobs": [],
"state": "standby",
"created_at": 1594323207015,
"updated_at": 1594323207015,
"label": "Test Redundant Group2",
"live_dvr_sliding_window_duration": 86400,
"status": {
"us-west-2": null
},
"outputs": {
"playback_url": "https://bcovlive-a.akamaihd.net/r279ac36e4b4d48a3abbd3e1f98cd57aa/us-west-2/NA/playlist.m3u8",
"playback_url_dvr": "https://bcovlive-a.akamaihd.net/r279ac36e4b4d48a3abbd3e1f98cd57aa/us-west-2/NA/playlist_dvr.m3u8"
}
}
]
}
중복 그룹에 라이브 작업 추가
중복 그룹을 만든 후에는 작업을 추가 할 수 있습니다. POST
요청 :
https://api.bcovlive.io/v1/redundantgroups/{redundant_group_id}/jobs
라이브 작업 ID는 다음과 같이 요청 본문에 지정됩니다.
[
{
"job_id": "0b76bc73f92f46dc917bbe5061c0c633"
},
{
"job_id": "0ae5a4a71dc54b3181af0f98ee407c27"
}
]
작업 개체에 대한 몇 가지 추가 선택적 속성이 있습니다. 다음 표는 모든 필드를 보여줍니다.
필드 | 유형 | 필수? | 설명 |
---|---|---|---|
job_id |
끈 | 필수 | 그룹에 추가 할 작업의 ID입니다. 둘 다playlist 또는streams 지정되면 모두outputs 사용하게 될 것이다. |
playlist |
끈 | 선택 과목 | 스트림의 출력으로 사용할 재생 목록의 레이블입니다. 만약playlist 정의됩니다. streams 절대로 필요한 것있다찾으시는 주소가 없습니다 . |
streams |
배열 | 선택 과목 | 스트림의 출력으로 사용할 스트림 레이블 목록입니다. 만약streams 정의됩니다. playlist 절대로 필요한 것있다찾으시는 주소가 없습니다 . |
이 요청에 대한 성공 응답은 중복 그룹 ID 만 반환합니다.
중복 그룹 상태 가져 오기
다음을 제출하여 중복 그룹의 상태를 얻을 수 있습니다. GET
요청 :
https://api.bcovlive.io/v1/redundantgroups/{redundant_group_id}
응답은 다음과 같습니다.
{
"id": "481ff4cf0bf74956bc2ec6e126588080",
"processing_regions": [
{
"region": "us-west-2",
"probability": 1
}
],
"storage_regions": [
"us-west-2",
"us-east-1"
],
"jobs": [
{
"job_id": "0b76bc73f92f46dc917bbe5061c0c633",
"streams": [
"hls720p",
"hls540p",
"hls360p"
],
"state": "processing"
},
{
"job_id": "0ae5a4a71dc54b3181af0f98ee407c27",
"streams": [
"hls720p",
"hls540p",
"hls360p"
],
"state": "processing"
}
],
"state": "processing",
"created_at": 1568057414849,
"updated_at": 1568059153017,
"label": "Test RG",
"live_dvr_sliding_window_duration": 1800,
"status": {
"us-west-2": {
"SwitchDrift": 0,
"Ended": false,
"OnAir": "0b76bc73f92f46dc917bbe5061c0c633",
"Mode": "auto",
"InManifest": true,
"MediaSequence": 10,
"Healthiness": 0,
"Duration": 4,
"DiscontinuitySequence": 1,
"SourceChunk": {
"MediaSequence": 3639,
"Duration": 4,
"DiscontinuitySequence": 0,
"ProgramDateTime": "2019-09-09T19:59:36Z",
"LiveJobID": "0b76bc73f92f46dc917bbe5061c0c633"
},
"UpdatedAt": "2019-09-09T19:59:46Z",
"ProgramDateTime": "2019-09-09T19:59:36Z"
}
},
"ad_insertion": true,
"outputs": {
"playback_url": "https://playback-qa.a-live.io/r481ff4cf0bf74956bc2ec6e126588080/us-west-2/NA/playlist.m3u8",
"playback_url_dvr": "https://playback-qa.a-live.io/r481ff4cf0bf74956bc2ec6e126588080/us-west-2/NA/playlist_dvr.m3u8",
"ssai_playback_urls": {
"26f8470f61374e608e27af9c1b3f7ff0": {
"playback_url": "https://playback-qa.a-live.io/r481ff4cf0bf74956bc2ec6e126588080/us-west-2/NA/26f8470f61374e608e27af9c1b3f7ff0/playlist_ssaiM.m3u8",
"playback_url_dvr": "https://playback-qa.a-live.io/r481ff4cf0bf74956bc2ec6e126588080/us-west-2/NA/26f8470f61374e608e27af9c1b3f7ff0/playlist_dvr_ssaiM.m3u8",
"description": "House Ads - 864b84f712ae40bca1510a8052b34312",
"type": "ads"
}
}
}
}
중복 그룹의 각 처리 영역에는 고유 한status
지역별로 키가 지정된 개체. 이 예에서 볼 수 있습니다. us_west_2
처리 영역, on_air
직업은0b76bc73f92f46dc917bbe5061c0c633
.
참고로probability
처리 영역과 관련된 것은이 시점에서 항상1
, 그러나 0과 1 사이의 확률을 가진 여러 처리 영역을 허용하는 향후 향상을 위해 데이터 모델에 포함되어 해당 영역을 사용할 재생 트래픽의 대략적인 비율을 나타냅니다.
수동으로 큐 포인트 추가
중복성을 사용하여 라이브 스트림에 큐 포인트를 수동으로 추가하는 것은 일반 라이브 스트림에 큐 포인트를 추가하는 것과 매우 유사합니다. 중복 그룹에 대해이 작업을 수행하려면POST
요청 :
https://api.bcovlive.io/v1/redundantgroups/{redundant_group_id}/cuepoint
다음과 같은 요청 본문을 포함합니다.
{
"ad_server_data": {
"subject": "wildlife"
},
"duration": 30,
"timecode": "09:23:18:05"
}
생략하면timecode
필드에서 큐 포인트가 즉시 삽입됩니다.
작업 장애 조치 강제
장애 조치는 Brightcove Live 시스템에 의해 자동으로 관리되며 사용자의 개입이 필요하지 않습니다. 그러나 어떤 이유로 든 다른 작업으로 장애 조치를 강제하려는 경우 가장 간단한 방법은 단순히 인코더를 중지하는 것입니다. on_air
일.
API를 사용하여 강제로 장애 조치를 수행 할 수도 있습니다. PUT
요청 :
https://api.bcovlive.io/v1/redundantgroups/{redundant_group_id}/switch
요청 본문은 다음과 같습니다.
{
"mode": "manual",
"on_air": "0ae5a4a71dc54b3181af0f98ee407c27"
}
여기, mode
둘 중 하나 일 것이다manual
또는auto
(기본값) 및on_air
다음 중 하나의 값을 갖습니다. 중고등 학년작업 ID.
참고: 일단manual
모드에서 자동 작업 페일오버는 ~ 아니다발생하다. 당신절대로 필요한 것모드를 다시 설정auto
자동 장애 조치가 재개됩니다. 본문에서 모드를 생략하고 강제 쿼리 매개 변수를 추가하여 수동으로 전환하지 않고도 온에어 작업을 변경할 수 있습니다. ?force=true
귀하의 요청에. 이렇게하면 서비스가 작업을 강제로 전환하지만 문제가 감지되면 언제든지 다시 전환 할 수 있습니다.
중복 스트림 종료
중복 스트림을 종료하는 방법에는 두 가지가 있습니다. 설계 상 중복 그룹은 암시 적으로 9 월스트림. 중복 그룹을STANDBY
중복 그룹에서 모든 작업을 제거하여 모드.
이 작업을 수행하려면DELETE
요청 :
https://api.bcovlive.io/v1/redundantgroups/{redundant_group_id}/jobs/{job_id}
제거하려는 각 작업에 대해. 현재 작업을 제거하려면on_air
, 당신은 추가해야합니다?force-true
검색어 매개 변수.
스트림을 종료하는 두 번째 방법은 다음을 전송하여 중복 그룹을 완전히 삭제하는 것입니다. DELETE
요청 :
https://api.bcovlive.io/v1/redundantgroups/{redundant_group_id}
제한 사항
- 라이브 중복은 DRM 보호 라이브 스트림과 함께 사용할 수 없습니다 .