개요
클립은 라이브 스트림에서 추출한 비디오입니다. S3 버킷, FTP 사이트 또는Video Cloud계정으로 전송할 수 있습니다. 클립은 MP4 비디오로 생성되며 모든 경우에 대상으로 전송됩니다. 의Video Cloud경우 인제스트 시스템에서 MP4를 트랜스코딩하며 비디오에 어떤 종류의 렌디션이 생성되는지는 사용된 인제스트 프로필에 따라 달라집니다.
클립에 대한 정의는/vods
끝점을 사용하여 생성됩니다.
클립은 여러 가지 방법으로 만들 수 있습니다.
- 라이브 스트림 이벤트의 SMPTE 타임코드 포함
stream_start_timecode
및/또는stream_end_timecode
정의됨 - 이를 위해서는 인코더에서 타임코드 정보를 전송해야 한다는점에 유의하십시오. - 와 함께
start_time
및/또는end_time
시작 시간(stream_start_time
) 전체 실시간 스트림 이벤트의 - Epoch (Unix) 시간 포함
start_time
및/또는end_time
정의 시간 (초 단위) - 와 함께
duration
- 라이브 API와 라이브 모듈 모두 암호화 또는 DRM 보호 작업에서 클립 생성을 지원합니다.
참고 사항
- 클립을 가능한 한 빨리 사용할 수 있도록 먼저 세그먼트에 정확한 클립을 만든 다음 사용 가능한 즉시 프레임에 정확한 클립으로 교체합니다.
- 지정한
duration
경우 결과 클립은 다음과 같습니다.- 작업이 활성 상태이고 아직 실행 중인 경우: (요청 시간 - 기간) ~ (요청 시간)
- 작업이 완료된 경우: (
finished_at
- 기간) ~ (finished_at
)
- AND
start_time
를end_time
모두 지정하는 경우- 작업이 활성 상태이고 아직 실행 중인 경우: Epoch 시간 창이 완전히 요청 시간 내에
created_at
있으면 클립이 만들어집니다. - 작업이 완료되면: Epoch 시간 창이 완전히 시간 범위 내에
created_at
있으면 클립이 만들어집니다.finished_at
- 작업이 활성 상태이고 아직 실행 중인 경우: Epoch 시간 창이 완전히 요청 시간 내에
- SSAI를 사용하는 실시간 스트림 클립에는 광고가 포함되지 않습니다.
- 클립은 이벤트 후 최대 7 일까지 생성 할 수 있습니다. 의 경우SEP , 다음 활성화 시점이나 7일 (둘 중 더 짧은 날짜) 까지 등록할 수 있습니다.
- VOD API는 스트림에있는 것 이외의 콘텐츠를 추가하지 않습니다. 300 초 길이의 라이브 스트림에 350을 지정하면 출력 길이는 300 초가됩니다.
- 라이브 스트림은 방송되는 그대로 저장되고 이벤트 종료 후 7 일 동안 즉시 사용할 수 있으므로 클리핑을 위해 DVR 지원 라이브 스트림을 사용할 필요가 없습니다.
- Brightcove Live 클리핑은 최고 해상도 출력과 동일한 해상도의 클립 만 생성합니다. 소스 입력 해상도와 일치하지 않습니다 (최고 해상도 출력과 동일하지 않은 경우).
클립을 여러 대상으로 보낼 수도 있습니다.
- Video Cloud어카운트
- FTP 서버
- S3 버킷
클립을 지정하면 출력 ~ 해야 하다포함하다어느 하나ㅏurl
목적지또는ㅏvideocloud
비디오 생성 및 클립 수집을 자세히 설명하는 객체Video Cloud .
참고: 라이브 스트림이 실행되는 동안 클립을 만들수있습니다. 이렇게 하려면 클립의 시작 및 종료 시간을 Epoch 시간으로 정의하거나 실시간 스트림의시작시간을 기준으로 정의해야 합니다.
자격 증명
클립을 보내는 대상에 액세스하는 데 자격 증명이 필요한 경우 Live API의 자격 증명 작업을 사용하여 이러한 자격 증명을 만들 수 있습니다. 보다라이브 API에 대한 자격 증명 관리상세 사항은.
끝점
클립은 다음 주소로POST
요청을 전송하여 생성됩니다.
https://api.bcovlive.io/v1/vods
요청 본문- Video Cloud
예 1: 스트림 시작을 기준으로 한 시작/종료 시간
요청 본문에는 시작 및 종료 시간과 클립을 보낼 위치에 대한 세부 정보가 포함됩니다. 다음은 스트림의 3분짜리 클립을 만들어Video Cloud계정에 보내는 샘플 요청 본문입니다.
{
"live_job_id":"PUT-LIVE-JOB-ID-HERE",
"outputs":[
{
"label": "60 secs by stream from min 2 to min 3",
"stream_start_time": 120,
"stream_end_time": 180,
"credentials": "USER_VIDEOCLOUD_CREDENTIAL_LABEL",
"videocloud": {
"video": {
"name": "One Minute Clip",
"tags": ["live", "clip"]
},
"ingest": {
"capture-images": true
}
}
}
]
}
이 예시에서는 길이가 1분인 클립을 만들어 로Video Cloud전송합니다. 클립에 이름과 몇 개의 태그를 지정하고ingest profile재트랜스코딩에 사용할 값을 지정하지 않으므로 계정 기본값이 사용되고 트랜스코딩 중에 클립에서 썸네일과 포스터 이미지를Video Cloud캡처하도록 지시합니다.
예 2: Epoch 시간의 시작/종료 시간
요청 본문에는 Epoch 시간의 시작 및 종료 시간과 클립을 보낼 위치에 대한 세부 정보가 포함됩니다. 다음은 스트림의 3분짜리 클립을 만들어Video Cloud계정에 보내는 샘플 요청 본문입니다.
{
"live_job_id":"PUT-LIVE-JOB-ID-HERE",
"outputs":[
{
"label": "60 secs - epoch time",
"start_time": 1516652694,
"end_time": 1516652754,
"credentials": "USER_VIDEOCLOUD_CREDENTIAL_LABEL",
"videocloud": {
"video": {
"name": "One Minute Clip",
"tags": ["live", "clip"]
},
"ingest": {
"capture-images": true
}
}
}
]
}
이 예시에서는 특정 Epoch 시간 (이 예에서는 2018년 1월 22일 08:24:54 GMT) 에 길이가 1분인 클립을 만들고 있습니다.
예 3: 스트리밍 시작을 기준으로 한 시작 시간을 포함한 지속 시간
요청 본문에는 기간 및 stream_start_time, 클립을 보낼 위치에 대한 세부 정보가 포함됩니다. 다음은 스트림의 3분짜리 클립을 만들어Video Cloud계정에 보내는 샘플 요청 본문입니다.
{
"live_job_id":"PUT-LIVE-JOB-ID-HERE",
"outputs":[
{
"label": "60 secs from start time",
"stream_start_time": 300,
"duration": 60,
"credentials": "USER_VIDEOCLOUD_CREDENTIAL_LABEL",
"videocloud": {
"video": {
"name": "One Minute Clip",
"tags": ["live", "clip"]
},
"ingest": {
"capture-images": true,
"profile": "valid-ingest-profile-name"
}
}
}
]
}
이 예시에서는 실시간 스트림이 시작된 지 5분 후부터 시작하여 길이가 1분인 클립을 만들고 있습니다.
예 4: 시작 또는 종료 시간이 없는 기간
요청 본문에는 Epoch 시간의 시작 및 종료 시간과 클립을 보낼 위치에 대한 세부 정보가 포함됩니다. 다음은 스트림의 3분짜리 클립을 만들어Video Cloud계정에 보내는 샘플 요청 본문입니다.
{
"live_job_id":"PUT-LIVE-JOB-ID-HERE",
"outputs":[
{
"label": "60 secs - duration",
"duration": 60,
"credentials": "USER_VIDEOCLOUD_CREDENTIAL_LABEL",
"videocloud": {
"video": {
"name": "One Minute Clip",
"tags": ["live", "clip"]
},
"ingest": {
"capture-images": true
}
},
"notifications": ["https://myserver.com/api/notification_listener?type=jvod"]
}
]
}
이 예시에서는 길이가 1분인 클립을 만들고 있습니다. 시작 또는 종료 시간을 지정하지 않았으므로 클립은 라이브 스트림의 마지막 60 초부터 가져옵니다.
예 5: stream_start_timecode
및 사용stream_end_timecode
요청 본문에는 HH:MM:SS:FF 타임코드의 시작 및 종료 시간/프레임과 클립 전송 위치에 대한 세부 정보가 포함됩니다. 타임 코드를 사용하려면 인코더가 타임 코드를 전송해야합니다. 다음은 50분 분량의 스트리밍 클립을 만들어Video Cloud계정에 전송하는 샘플 요청 본문입니다.
{
"live_job_id":"PUT-LIVE-JOB-ID-HERE",
"outputs":[
{
"label": "Clipping using Timecode from-01:10:18:15 to-01:11:08:15",
"stream_start_timecode": "01:10:18:15",
"stream_end_timecode": "01:11:08:15",
"credentials": "USER_VIDEOCLOUD_CREDENTIAL_LABEL",
"videocloud": {
"video": {
"name": "Fifty Minute Clip",
"tags": ["live", "clip"]
},
"ingest": {
"capture-images": true
}
}
},
"notifications": ["https://myserver.com/api/notification_listener?type=jvod"]
]
}
클립 전송에 대한 일반 정보Video Cloud
video
및ingest
객체에 포함할 수 있는 필드를 보려면 를 참조하십시오Dynamic Ingest API Reference .
요청 본문-S3
요청 본문에는 시작 및 종료 시간과 클립을 보낼 위치에 대한 세부 정보가 포함됩니다. 다음은 스트림의 3분의 1 분량의 클립을 생성하여 S3 버킷으로 전송하는 샘플 요청 본문입니다.
{
"live_job_id":"",
"outputs":[
{
"label": "last_30",
"duration": 30,
"url": "s3://YOUR_BUCKET_NAME/file_name.mp4",
"credentials": "s3-credentials",
"notifications": ["https://myserver.com/api/notification_listener?type=jvod"]
}
],
}
이 예에서는 30 초 길이의 클립을 생성하여 S3 버킷으로 보냅니다. 클립의 파일 이름이 포함된 버킷 URL과 저장된 S3 버킷 자격 증명의 이름인 문자열을 제공합니다.
Live API를 사용하여 자격 증명을 만들고 관리할 수 있습니다. 자세한 내용은 다음을 참조하십시오.
본문 필드 요청
다음은 요청 본문 필드의 전체 표입니다.
필드 | 유형 | 설명 |
---|---|---|
live_job_id |
문자열 |
VOD 클립을 생성 할 라이브 스트림 작업의 ID입니다. |
outputs |
객체 [] |
VOD 출력 배열 |
outputs.label |
문자열 |
출력용 레이블 |
outputs.duration |
번호 |
클립의 길이 (초)입니다. 그만큼 |
outputs.stream_start_time |
번호 |
라이브 스트림의 시작 시간을 기준으로 클립의 시작 시간(초), |
outputs.stream_end_time |
번호 |
라이브 스트림의 시작 시간을 기준으로 클립의 종료 시간(초), |
outputs.start_time |
번호 |
클립의 시작 시간(Epoch(Unix) 시간(초), |
outputs.end_time |
번호 |
클립의 종료 시간(Epoch(Unix) 시간(초), |
outputs.stream_start_timecode |
번호 |
스트림 시작부터 SMPTE 형식(HH:MM:SS:FF) 타임코드의 클립 시작 시간, |
outputs.stream_end_timecode |
번호 |
스트림 끝에서 SMPTE 형식(HH:MM:SS:FF) 타임코드의 클립 종료 시간, |
outputs.url |
문자열 |
클립의 대상 URL, 출력은 ~ 해야 하다포함하다어느 하나이것 |
outputs.credentials |
문자열 |
이 주소에 대해 계정에 구성된 자격 증명의 이름 |
outputs.videocloud |
객체 |
Video Cloud섭취를 위한 입력을 포함하는 객체입니다. |
outputs.videocloud.video |
물체 |
Video Cloud비디오 객체 생성을 위한 입력을 포함하는 객체 - 참조CMS API Reference for creating a video |
outputs.videocloud.ingest |
물체 |
다음에 대한 입력을 포함하는 객체Video Cloud비디오 수집 - 참조Dynamic Ingest Reference - 하다 ~ 아니다포함 |
Video Cloud인제스트용 비디오 필드
참조 CMS API 참조상세 사항은.
필드 | 유형 | 설명 |
---|---|---|
ad_keys |
문자열 | 동영상에 할당된 광고 키/값 쌍을 나타내는 문자열입니다. 키/값 쌍은 키 = 값으로 형식이 지정되며 앰퍼샌드로 구분됩니다. 예를 들면 다음과 같습니다. "adKeys": "category=sports&live=true" |
cue_points |
지도 배열 | 큐 포인트 맵 배열 |
custom_fields |
필드-값 쌍 (문자열) 의지도 | 관습fieldname:value 비디오에 대한 설정 - 수행하는 사용자 정의 필드에 유의하십시오. ~ 아니다이 동영상에 대한 값이 이 지도에 포함되어 있지 않습니다. 사용자 정의 필드 값의 최대 길이는 1024개의 1바이트 문자입니다. |
description |
문자열; 이전 간략한 설명을 대신합니다. | 비디오에 대한 간단한 설명 (최대 길이: 248 싱글 바이트 문자) |
economics |
문자열은 유효한 열거 형 값 중 하나 여야합니다. | “AD_지원” (기본값) 또는 “무료” |
geo |
속성-값 쌍의 맵 | 비디오의 지리적 제한 속성 |
link |
속성-값 쌍의 맵 | 관련 링크 속성 맵 |
long_description |
문자열 | 긴 설명 (최대 5000자) |
name |
문자열 | 비디오 이름 (최대 길이: 248자의 싱글바이트 문자) 이필요합니다. |
offline_enabled |
부울 | 비디오가 오프라인 재생을 사용하도록 설정되었는지 여부 |
projection |
문자열 | 360° 비디오의 매핑 프로젝션 (예: “정방형”) |
reference_id |
문자열 | 동영상을고유하게 식별하는 사용자 지정 ID로 , 150자로 제한됩니다. ReferenceID는 다른 시스템에서 이 비디오를 식별하는 외래 키로 사용할 수 있습니다. 참조 ID는 공백, 쉼표 또는 특수 문자를 포함하지 않아야 합니다. |
schedule |
속성-값 쌍의 맵 | 동영상 가용성을 위한 시작 및 종료 날짜-시간 맵 |
state |
문자열 | 활성, 비활성 |
tags |
태그 배열 (문자열) | 비디오에 할당된 태그 배열 |
text_tracks |
HTML5 스타일 텍스트 트랙의 배열 | 비디오에 할당된 텍스트 트랙 배열 (WebVTT 파일) |
비디오 큐 포인트 필드
아래 표에는 에 대한 필드가 나와video.cuepoints
있습니다.
필드 | 유형 | 설명 |
---|---|---|
id |
문자열 | 큐 포인트의 시스템 ID |
force_stop |
부울 | 큐 포인트에서 비디오를 중지할지 여부 |
metadata |
문자열, 코드 포인트만 | 큐 포인트와 연결된 메타데이터 문자열 |
name |
스트링 | 큐 포인트 이름 |
time |
플로트 | 비디오 시작부터 측정된 큐 포인트의 시간 (초) |
type |
스트링 | 큐 포인트 유형 ( AD 또는DATA ) |
비디오 지역 필드
아래 표에는video.geo
객체 필드가 나와 있습니다.
필드 | 유형 | 설명 |
---|---|---|
countries |
국가 코드 문자열 배열 | 동영상 재생이 허용되거나 허용되지 않는 국가의 ISO 3166 2 자 또는 4 자 코드 목록 (https://www.iso.org/obp/ui/) |
exclude_countries |
부울 | true인 경우 국가 배열이 보기에서 제외된 국가 목록으로 처리됩니다. |
restricted |
부울 | 이 동영상에 대해 지역 필터링이 활성화되었는지 여부 |
비디오 링크 필드
아래 표에는video.link
객체 필드가 나와 있습니다.
필드 | 유형 | 설명 |
---|---|---|
url |
문자열 | 관련 링크 URL |
text |
문자열 | 관련 링크 텍스트 |
비디오 일정 필드
아래 테이블은video.schedule
객체의 필드를 보여줍니다.
필드 | 유형 | 설명 |
---|---|---|
ends_at |
ISO-8601 날짜 형식의 문자열 | 비디오를 볼 수 없게 되는 날짜-시간 |
starts_at |
ISO-8601 날짜 형식의 문자열 | 비디오를 볼 수 있게 되는 날짜-시간 |
Video Cloud인제스트 필드
필드 | 유형 | 설명 |
---|---|---|
audio_tracks 선택적동적 전송만 해당 |
객체 [] |
오디오 트랙 개체의 배열 - 참조 API를 사용하여 여러 오디오 트랙 구현자세한 내용은. |
audio_tracks.merge_with_existing 선택 과목 |
부울 |
기존 오디오 트랙을 교체할지 아니면 새 오디오 트랙을 추가할지 여부 ( 기본값: |
audio_tracks.masters 선택 과목 |
객체 [] |
오디오 트랙 객체 배열 ( 동적 전달 전용) |
audio_tracks.masters.url 선택 과목 |
문자열 |
오디오 파일의 URL 동적 전송만 해당 |
audio_tracks.masters.language 선택 과목 |
문자열 |
https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry 하위 태그의 오디오 트랙에 대한 언어 코드 (Brightcove 지원팀에 문의하여 계정에 기본값을 설정할 수 있음) 동적 전송만 해당 |
audio_tracks.masters.variant 선택 과목 |
문자열 |
오디오 트랙 유형 (기본적으로 브라이트코브 지원에 문의하여 계정에 대해 설정할 수 있음) 동적 전송만 가능 허용되는 값: |
profile 선택 과목 |
스트링 |
트랜스코딩에 사용할 인제스트 프로필의 ID (이름이 아님) 없을 경우 기본 프로필이 사용됩니다(이 필드를 생략하고 기본 프로필을 사용하는 것이 좋습니다). |
text_tracks 선택 과목 |
객체 [] |
|
text_tracks.url |
URL |
웹VTT 파일의 URL |
text_tracks.srclang |
문자열 |
텍스트 트랙에 대한 ISO 639 2글자 (알파-2) 언어 코드 |
text_tracks.kind 선택 과목 |
문자열 |
vtt 파일을 사용하는 방법 기본값: 허용되는 값: |
text_tracks.label 선택 과목 |
문자열 |
사용자가 읽을 수 있는 제목 |
text_tracks.default 선택 과목 |
부울 |
캡션/자막의 기본 언어를 설정합니다. |
capture-images 선택 과목 |
부울 |
트랜스코딩 중에 포스터와 썸네일을 캡처해야 하는지 여부. 프로필에 이미지 변환이 있는 |
poster 선택 과목 |
객체 |
인제스트할 비디오 포스터 - 자세한 내용은이미지 및 동적 인제스트 API를참조하십시오. |
poster.url |
URL |
비디오 포스터 이미지의 URL |
poster.height 선택 과목 |
정수 |
이미지의 픽셀 높이 |
poster.width 선택 과목 |
정수 |
이미지의 픽셀 너비 |
thumbnail 선택 과목 |
객체 |
인제스트할 비디오 썸네일 - 자세한 내용은이미지 및 동적 인제스트 API를참조하십시오. |
thumbnail.url |
URL |
비디오 축소판 이미지의 URL |
thumbnail.height 선택 과목 |
정수 |
이미지의 픽셀 높이 |
thumbnail.width 선택 과목 |
정수 |
이미지의 픽셀 너비 |
callbacks 선택 과목 |
문자열 [] | 알림을보내야 하는 URL 배열
|
API 응답
클립 생성 요청에 대한 응답에는 작업의 ID와 요청 본문에 설정 한 라벨 및 라이브 작업 ID가 포함됩니다.
{
"vod_jobs": [
{
"jvod_id": "9582606c50d84be5ad4bc104f2aa3360",
"label": "last 60 secs of live job"
}
],
"live_job_id": "88ba5d87b61a4ef3a6dddabd0c38d319"
}
응답 필드
필드 | 유형 | 설명 |
---|---|---|
vod_jobs |
객체 |
클립 응답 객체 |
jvod_id |
문자열 |
클립 작업 ID |
label |
문자열 |
클립 레이블 (입력에서) |
live_job_id |
문자열 |
라이브 작업 ID (입력에서) |