개요
게시자는 종종 기술 및 비즈니스 이유로 미디어 매니페스트의 콘텐츠 특성을 수정해야 합니다. 이러한 요구 사항을 충족하기 위해 브라이트코브는 Dynamic Delivery 에서 반환된 매니페스트의 내용을 수정하는 규칙을 적용할 수 있는 프레임워크를 만들었습니다.
배달 규칙은 조건과 작업으로 구성됩니다.
- 정황 -특정 작업을 트리거하는 "If"조건
- 행위 -매니페스트 수정 방법을 정의하는 "Then"매개 변수
배달 규칙에 대한 자세한 내용은 다음을 참조하십시오.
계정 설정
가격 책정에 대해 알아보고 계정에 이 기능을 활성화하려면 고객 성공 관리자에게 문의하십시오.
규칙 적용
다음 흐름도는 배달 규칙이 적용되는 방법을 보여줍니다.
정황
첫 번째 단계에서 지원되는 "if"조건은 다음과 같습니다.
-
명시 적 요청 -구성 ID는 생성 한 작업의 ID입니다. 이 ID를 사용하여 런타임에 Playback API에 전달합니다. 이 ID는 기본 서비스가 적절한 응답 데이터를 반환하기 위해 Playback API에서 활용하는 결정을 내릴 수 있도록하는 구성 값에 매핑됩니다.
-
장치 그룹 -사용자 에이전트 구문 분석에 의해 감지 된 장치 유형. 현재 지원되는 그룹은 다음과 같습니다.
- 안드로이드
- 애플TV
- 크롬캐스트
- ipad
- iphone
- 데스크탑 크롬
- 데스크탑 파이어 폭스
- 데스크탑 사파리
- 페치TV
- 이오스 기타
- 로쿠 7/8
- 스마트폰 제네릭
- 태블릿 (안드로이드)
- 태블릿 킨들
- 알려지지 않음
-
지리 - 요청 장치의 물리적 위치:
- 대륙
- 국가
작업
첫 번째 단계에서 지원되는 작업 또는 "then"매개 변수는 다음과 같습니다.
-
미디어 전달 CDN -주어진 Dynamic Delivery 계정 내에서 사용하도록 구성된 CDN에서 미디어 세그먼트 전송에 사용할 CDN.
-
변환 특성 - 기본 미디어 변환의 특성을 기준으로 필터링합니다. 주요 수치는 다음과 같습니다.
- 최소 비디오 비트 전송률
- 최대 비디오 비트 전송률
- 최소 비디오 해상도
- 최대 비디오 해상도
- 최대 오디오 변환 수
- 최대 비디오 변환 수
- 첫 번째 비디오 비트 전송률
- 분류: 불연속
스코프
작업은 두 가지 수준에서 적용 할 수 있습니다.
- 계정 -특정 고객의 계정에 대한 모든 요청에 적용되는 작업
- 특정 요청 -특정 요청에 대해 호출되는 작업
작업은 위에 나열된 순서대로 적용됩니다. 이후 작업은 이전 작업보다 우선합니다.
규칙 정의
배달 규칙 API를 사용하여 미디어 배달을 사용자 지정합니다.
배달 규칙 API
전송 규칙 API를사용하면 미디어 전송을 제어하기 위한 조건 및 작업을 정의할 수 있습니다.
그만큼응답 Delivery Rules API의conditions
정렬. 이 배열을 사용하면 여러 개를 만들 수 있습니다. if
/ then
각각의 조건then
하나 이상을 가리킨다작업 ID .
추가하거나 삭제할conditions
방법이 없더라도conditions
배열을 업데이트하여 이 작업을 수행할 수 있습니다.
기본 URL
API의 기본 URL은 다음과 같습니다.
https://delivery-rules.api.brightcove.com
계정 경로
모든 경우에 특정 Video Cloud 계정에 대한 요청이 이루어집니다. 따라서 항상 기본 URL에 계정이라는 용어와 계정 ID를 추가합니다.
https://delivery-rules.api.brightcove.com/accounts/{accountID}
권한
요청에 대한 액세스 토큰이 필요하며 권한 부여 헤더에 있어야합니다.
Authorization: Bearer {access_token}
액세스 토큰은 Brightcove OAuth 서비스에서 얻어야하는 임시 OAuth2 액세스 토큰입니다. 클라이언트 자격 증명을 얻고 이를 사용하여 액세스 토큰을 검색하는 방법에 대한 자세한 내용은 Brightcove OAuth 개요를 참조하십시오 .
사용 권한
Playback Rights API에 대한 요청은 다음에서 이루어져야 합니다. 클라이언트 자격 증명다음 권한으로:
-
video-cloud/delivery-rules/read
-
video-cloud/delivery-rules/all
규칙 관리
Delivery Rules API는 다음 요청을 지원합니다. API 세부 정보는전송 규칙 API 참조를 참조하십시오 .
배달 규칙 받기
다음 GET 요청을 사용하여 계정에 대한 최신 버전의 배달 규칙을 가져옵니다.
GET /accounts/{accountID}
API 응답
다음은 응답 본문입니다. 전달 규칙에는 일련의 조건과 일련의 작업이 포함되어 있습니다.
{
"conditions": [
{
"name": "MyCondition1",
"if": {
"device_group": [
"ipad"
],
"request_country": [
"string"
],
"request_continent": [
"AF"
]
},
"then": [
"{action_id}"
]
}
],
"actions": [
{
"id": "44c91a1d-71f1-40b4-b9cf-3abcd12345",
"properties": {
"min_video_bitrate": 0,
"max_video_bitrate": 0,
"first_video_bitrate": 0,
"min_video_resolution": "string",
"max_video_resolution": "string",
"max_video_renditions": 0,
"max_audio_renditions": 0,
"preferred_cdn_provider": "string",
"preferred_cdn_domain": "string",
"video_codecs": [
"string"
],
"audio_codecs": [
"string"
]
}
}
]
}
조건 얻기
다음 GET 요청을 사용하여 계정에 대한 조건을 가져옵니다.
GET /accounts/{accountID}/conditions
API 응답
다음은 응답 본문입니다.
[
{
"name": "MyCondition1",
"if": {
"device_group": [
"ipad"
],
"request_country": [
"string"
],
"request_continent": [
"AF"
]
},
"then": [
"44c91a1d-71f1-40b4-b9cf-3abcd12345"
]
}
]
업데이트 조건
다음 PUT 요청을 사용하여 계정 조건을 업데이트하십시오.
PUT /accounts/{accountID}/conditions
Content-Type: application/json
Authorization: Bearer {access_token}
Body: {conditions object}
조건 요청 본문
다음은 조건에 대한 요청 본문입니다. 이것은 조건 개체의 배열입니다.
[
{
"name": "MyCondition1",
"if": {
"device_group": [
"ipad"
],
"request_country": [
"string"
],
"request_continent": [
"AF"
]
},
"then": [
"44c91a1d-71f1-40b4-b9cf-3abcd12345"
]
}
]
조건에 대한 필드 세부 정보는 다음과 같습니다.
필드 | 유형 | 설명 |
---|---|---|
name |
문자열 | 조건에 대한 고유 식별자 |
device_group |
문자열 | 사용자 에이전트 구문 분석에 의해 감지 된 장치 유형 배열 |
request_country |
문자열 | 두 글자 국가 코드의 배열 |
request_continent |
문자열 | 두 글자의 대륙 코드 배열 |
then |
문자열 | 연관된 작업의 고유 식별자 |
액션 만들기
다음 POST 요청을 사용하여 계정에 대한 작업을 만듭니다.
POST /accounts/{accountID}/actions
Content-Type: application/json
Authorization: Bearer {access_token}
Body: {actions object}
작업 요청 본문
다음은 작업에 대한 요청 본문입니다.
{
"properties": {
"min_video_bitrate": 0,
"max_video_bitrate": 0,
"first_video_bitrate": 0,
"min_video_resolution": "string",
"max_video_resolution": "string",
"max_video_renditions": 0,
"max_audio_renditions": 0,
"preferred_cdn_provider": "string",
"preferred_cdn_domain": "string",
"video_codecs": [
"string"
],
"audio_codecs": [
"string"
]
}
}
작업에 대한 필드 세부 정보는 다음과 같습니다.
필드 | 유형 | 설명 |
---|---|---|
properties |
객체 | 특정 작업에 대해 정의 된 속성의 개체 |
min_video_bitrate , max_video_bitrate |
정수 | 최소 또는 최대 허용 동영상 비트 전송률(kbps) 설정 |
first_video_bitrate |
정수 | 첫 번째 동영상의 비트 전송률(kbps) 설정 |
min_video_resolution , max_video_resolution |
스트링 | 허용되는 최소 또는 최대 비디오 해상도(WxH) 설정 |
max_video_renditions |
정수 | 최대 비디오 변환 수 설정 |
max_audio_renditions |
정수 | 최대 오디오 변환 수 설정 |
preferred_cdn_provider |
문자열 | 선호하는 CDN 공급자 설정 |
preferred_cdn_domain |
문자열 | 선호하는 CDN 도메인 설정 |
video_codecs |
문자열 | 비디오 코덱 배열 |
audio_codecs |
문자열 | 오디오 코덱 배열 |
작업에 대한 API 응답
다음은 작업에 대한 샘플 응답 본문입니다.
{
"id": "44c91a1d-71f1-40b4-b9cf-3abcd12345",
"properties": {
"min_video_bitrate": 0,
"max_video_bitrate": 0,
"first_video_bitrate": 0,
"min_video_resolution": "string",
"max_video_resolution": "string",
"max_video_renditions": 0,
"max_audio_renditions": 0,
"preferred_cdn_provider": "string",
"preferred_cdn_domain": "string",
"video_codecs": [
"string"
],
"audio_codecs": [
"string"
]
}
}
요청의 작업 필드 외에도 API 응답에는 다음 생성 필드가 포함됩니다.
필드 | 유형 | 설명 |
---|---|---|
id |
문자열 | 작업에 대해 시스템이 생성 한 고유 식별자입니다. 이는 업데이트 및 삭제 메서드에서actionID 사용됩니다. |
액션 얻기
다음 GET 요청을 사용하여 계정에 대한 작업을 가져옵니다.
GET /accounts/{accountID}/actions
API 응답
작업에 대한 API 응답을 참조하십시오 .
액션 얻기
다음 GET 요청을 사용하여 계정에 대한 특정 작업을 가져옵니다.
GET /accounts/{accountID}/actions/{actionID}
API 응답
작업에 대한 API 응답을 참조하십시오 .
액션 업데이트
다음 PUT 요청을 사용하여 계정에 대한 작업을 업데이트합니다.
PUT /accounts/{accountID}/actions/{actionID}
Content-Type: application/json
Authorization: Bearer {access_token}
Body: {actions object}
API 요청
다음은 조치를 업데이트하기 위한 샘플 요청 본문입니다.
{
"id": "44c91a1d-71f1-40b4-b9cf-3edb94645943",
"properties": {
"custom_properties": {
"generate_thumbnails": false,
"hls_iframes": true
}
}
}
API 응답
다음은 업데이트된 작업에 대한 샘플 응답입니다.
{
"id": "44c91a1d-71f1-40b4-b9cf-3edb94645943",
"properties": {
"custom_properties": {
"generate_thumbnails": false,
"hls_iframes": true
}
}
}
액션 삭제
다음 DELETE 요청을 사용하여 계정에 대한 작업을 제거합니다.
DELETE /accounts/{accountID}/actions/{actionID}
제한 사항
배달 규칙을 사용할 때는 다음과 같은 몇 가지 알려진 제한 사항이 있습니다.
- 미디어 콘텐츠 - 동영상 또는 PMP4 동영상에서는 전송 규칙이 작동하지 않습니다.
- 미디어 콘텐츠 - 게재 규칙은 라이브 비디오에서 작동하지 않습니다.
- 오디오만 해당 - 서버 측 광고 (SSAI를) 사용하도록 설정된 배달 규칙에는 비디오 및 오디오 콘텐츠가 모두 필요합니다. 이는 SSAI의 제한입니다.