이 페이지는 이동했습니다. 3초 후에 새 위치 로 이동합니다. 북마크를 업데이트하세요!

라이브 API: VOD 클립 만들기

이 항목에서는 라이브 스트림에서 주문형 비디오 (VOD) 클립을 만드는 방법을 보여줍니다.

개요

클립은 라이브 스트림에서 추출한 비디오입니다. S3 버킷, FTP 사이트 또는Video Cloud계정. 클립은 MP4 비디오로 생성되며 모든 경우에 대상으로 전송됩니다. 의 경우Video Cloud , MP4는 인제 스트 시스템에 의해 트랜스 코딩되며 비디오에 대해 생성되는 변환 유형은 사용 된 인제 스트 프로파일에 따라 다릅니다.

클립에 대한 정의는/vods끝점.

클립은 여러 가지 방법으로 만들 수 있습니다.

  • stream_start_timecode및 / 또는stream_end_timecode라이브 스트림 이벤트에 대한 SMPTE 타임 코드에 정의 됨- 이를 위해서는 인코더가 타임 코드 정보를 전송해야합니다.
  • start_time및 / 또는end_time시작 시간 ( stream_start_time ) 전체 실시간 스트림 이벤트
  • start_time및 / 또는end_time Epoch (Unix) 시간 (초)으로 정의 됨
  • duration
  • VOD API는 암호화 또는 DRM 보호 작업과 함께 사용할 수 있습니다 . 현재 라이브 모듈은 이를 지원하지 않지만 향후 릴리스에서 지원할 예정입니다.

참고 사항

  1. 클립을 가능한 한 빨리 사용할 수 있도록 먼저 세그먼트에 정확한 클립을 만든 다음 사용 가능한 즉시 프레임에 정확한 클립으로 교체합니다.
  2. 지정하는 경우duration , 결과 클립은 다음과 같습니다.
    • 작업이 활성 상태이고 여전히 활성 상태 인 경우 : (요청 시간-기간) ~ (요청 시간)
    • 작업이 완료된 경우 : ( finished_at -기간) ~ ( finished_at )
  3. 둘 다 지정하는 경우start_timeend_time :
    • 작업이 활성 상태이고 여전히 활성 상태 인 경우 : Epoch 시간 창이 완전히created_at그리고 요청 시간, 클립이 만들어 질 것입니다
    • 작업이 완료된 경우 : Epoch 시간 창이 완전히created_atfinished_at , 클립이 만들어집니다
  4. 다음을 사용하는 라이브 스트림 클립 SSAI광고가 포함되지 않습니다.
  5. 클립은 이벤트 후 최대 7 일까지 생성 할 수 있습니다. 에 대한SEP , 다음 활성화까지 또는 7 일 (둘 중 더 짧은 기간)까지 생성 할 수 있습니다.
  6. VOD API는 스트림에있는 것 이외의 콘텐츠를 추가하지 않습니다. 300 초 길이의 라이브 스트림에 350을 지정하면 출력 길이는 300 초가됩니다.
  7. 라이브 스트림은 방송되는 그대로 저장되고 이벤트 종료 후 7 일 동안 즉시 사용할 수 있으므로 클리핑을 위해 DVR 지원 라이브 스트림을 사용할 필요가 없습니다.
  8. Brightcove Live 클리핑은 최고 해상도 출력과 동일한 해상도의 클립 만 생성합니다. 소스 입력 해상도와 일치하지 않습니다 (최고 해상도 출력과 동일하지 않은 경우).

클립을 여러 대상으로 보낼 수도 있습니다.

  • Video Cloud계정
  • FTP 서버
  • S3 버킷

클립을 지정하면 출력절대로 필요한 것있다어느 한 쪽url목적지또는videocloud비디오 생성 및 클립 수집을 자세히 설명하는 개체Video Cloud .

참고 : 클립라이브 스트림이 실행되는 동안 만들 수 있습니다. . 이렇게하려면 클립의 시작 및 종료 시간을 Epoch 시간으로 정의하거나스타트실시간 스트림 시간.

자격 증명

클립을 보내는 대상에 액세스하는 데 자격 증명이 필요한 경우 Live API의 자격 증명 작업을 사용하여 이러한 자격 증명을 만들 수 있습니다. 보다 Live 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
        }
      }
    }
  ]
}

이 예에서는 라이브 스트림이 시작된 후 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": ["http://myserver.com/api/notification_listener?type=jvod"]
    }
  ]
}

이 예에서는 1 분 길이의 클립을 만듭니다. 시작 또는 종료 시간을 지정하지 않았으므로 클립은 라이브 스트림의 마지막 60 초부터 가져옵니다.

예 5 : 사용stream_start_timecodestream_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": ["http://myserver.com/api/notification_listener?type=jvod"]
  ]
}

클립 보내기에 대한 일반 정보Video Cloud

어떤 필드를 포함 할 수 있는지 확인하려면videoingest개체, 참조Dynamic Ingest API Reference .

요청 본문-S3

요청 본문에는 시작 및 종료 시간과 클립을 보낼 위치에 대한 세부 정보가 포함됩니다. 다음은 스트림의 3 분 클립을 생성하여 S3 버킷으로 보내는 샘플 요청 본문입니다.

{
  "live_job_id":"",
  "outputs":[
    {
      "label": "last_30",
      "duration": 30,
      "url": "s3://YOUR_BUCKET_NAME/file_name.mp4",
      "credentials": "s3-credentials",
      "notifications": ["http://myserver.com/api/notification_listener?type=jvod"]
    }
  ],
}

이 예에서는 30 초 길이의 클립을 생성하여 S3 버킷으로 보냅니다. 클립의 파일 이름이 포함 된 버킷 URL과 저장된 S3 버킷 자격 증명의 이름 인 문자열을 제공합니다. 자격 증명은 Brightcove 지원에서 계정에 대해 설정할 수 있습니다.

본문 필드 요청

다음은 요청 본문 필드의 전체 표입니다.

요청 본문 필드
필드 유형 설명
live_job_id 문자열

VOD 클립을 생성 할 라이브 스트림 작업의 ID입니다.

outputs 객체 []

VOD 출력 배열

outputs.label 문자열

출력용 레이블

outputs.duration 번호

클립의 길이 (초)입니다. 그만큼duration최종적으로 만들 클립을 정의하는 데 단독으로 사용할 수 있습니다. {duration}스트림의 초. duration또한 사용할 수 있습니다중 하나stream_start_time , stream_end_time , start_time , end_time , stream_end_timecode , 또는stream_start_timecode .

outputs.stream_start_time 번호

라이브 스트림의 시작 시간을 기준으로 한 클립의 시작 시간 (초) stream_start_time와 함께 사용해야합니다. 어느 한 쪽stream_end_time또는duration .

outputs.stream_end_time 번호

라이브 스트림의 시작 시간을 기준으로 한 클립의 종료 시간 (초) stream_end_time와 함께 사용해야합니다. 어느 한 쪽stream_start_time또는duration .

outputs.start_time 번호

Epoch (Unix) 시간 (초)의 클립 시작 시간, start_time와 함께 사용해야합니다. 어느 한 쪽end_time또는duration .

outputs.end_time 번호

Epoch (Unix) 시간 (초)의 클립 종료 시간, end_time와 함께 사용해야합니다. 어느 한 쪽start_time또는duration .

outputs.stream_start_timecode 번호

스트림 시작부터 SMPTE 형식 (HH : MM : SS : FF) 타임 코드의 클립 시작 시간, stream_start_timecode와 함께 사용해야합니다. 어느 한 쪽stream_end_timecode또는duration .

outputs.stream_end_timecode 번호

스트림 끝에서 SMPTE 형식 (HH : MM : SS : FF) 타임 코드의 클립 종료 시간, outputs.stream_end_timecode와 함께 사용해야합니다. 어느 한 쪽stream_start_timecode또는duration .

outputs.url 문자열

클립의 대상 URL, 출력은절대로 필요한 것있다어느 한 쪽url또는videocloud비디오 속성 및 수집 옵션을 정의하는 객체Video Cloud .

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 - 하다아니포함master해당 정보는 Live API에서 제공하므로 필드입니다. 수집 프로필이 지정되지 않은 경우 계정 기본 프로필이 사용됩니다.

비디오 필드Video Cloud음식물 섭취

참조 CMS API 참조상세 사항은.

동영상 필드
필드 유형 설명
ad_keys 문자열 동영상에 할당된 광고 키/값 쌍을 나타내는 문자열입니다. 키/값 쌍은 키 = 값으로 형식이 지정되며 앰퍼샌드로 구분됩니다. 예를 들면 다음과 같습니다. "adKeys": "category=sports&live=true"
cue_points 지도 배열 큐 포인트 맵 배열
custom_fields 필드-값 쌍 (문자열) 의지도 커스텀fieldname:value비디오 세트-사용자 정의 필드가아니이 비디오에 대한 값이이 맵에 포함되어 있지 않습니다. 사용자 정의 필드 값의 최대 길이는 1 바이트 1024 자입니다.
description 문자열; 이전 간략한 설명을 대신합니다. 비디오에 대한 간단한 설명 (최대 길이: 248 싱글 바이트 문자)
economics 문자열은 유효한 열거 형 값 중 하나 여야합니다. “AD_지원” (기본값) 또는 “무료”
geo 속성-값 쌍의 맵 비디오의 지리적 제한 속성
link 속성-값 쌍의 맵 관련 링크 속성 맵
long_description 문자열 긴 설명 (최대 5000자)
name 문자열 동영상 이름 (최대 길이 : 1 바이트 문자 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목적

video.schedule 필드
필드 유형 설명
ends_at ISO-8601 날짜 형식의 문자열 비디오를 볼 수 없게 되는 날짜-시간
starts_at ISO-8601 날짜 형식의 문자열 비디오를 볼 수 있게 되는 날짜-시간

Video Cloud수집 필드

Video Cloud수집 필드
필드 유형 설명
audio_tracks선택적동적 전송 전용 객체 []

오디오 트랙 객체 배열-참조 API를 사용하여 여러 오디오 트랙 구현자세한 내용은.

audio_tracks.merge_with_existing선택 사항 부울

기존 오디오 트랙을 교체할지 새 트랙을 추가할지 여부 (현재false지원됨) 동적 전달 만

기본값: false

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선택 사항 문자열

오디오 트랙 유형 (기본적으로 브라이트코브 지원에 문의하여 계정에 대해 설정할 수 있음) 동적 전송만 가능

허용되는 값 : "main" , "alternate" , "commentary" , "dub" , "descriptive"

profile선택 사항 문자열

트랜스코딩에 사용할 인제스트 프로파일. 없는 경우 기본 프로파일이 사용됩니다.

text_tracks선택 사항 객체 []

의 배열text_tracks개체-참조 WebVTT 파일 수집 (텍스트 트랙)

text_tracks.url URL

웹VTT 파일의 URL

text_tracks.srclang 문자열

텍스트 트랙에 대한 ISO 639 2글자 (알파-2) 언어 코드

text_tracks.kind선택 사항 문자열

vtt 파일을 사용하는 방법

기본값: captions

허용되는 값: "captions" , "subtitles" , "chapters" , "metadata"

text_tracks.label선택 사항 문자열

사용자가 읽을 수 있는 제목

text_tracks.default선택 사항 부울

캡션/자막의 기본 언어를 설정합니다.

capture-images선택 사항 부울

트랜스 코딩 중에 포스터 및 미리보기 이미지를 캡처해야하는지 여부 기본값은true프로필에 이미지 변환이있는 경우false그렇지 않은 경우-참조이미지 및 Dynamic Ingest API자세한 내용은

poster선택 사항 객체

수집 할 비디오 포스터-참조이미지 및 Dynamic Ingest API자세한 내용은

poster.url URL

비디오 포스터 이미지의 URL

poster.height선택 사항 정수

이미지의 픽셀 높이

poster.width선택 사항 정수

이미지의 픽셀 너비

thumbnail선택 사항 객체

수집 할 동영상 미리보기 이미지-참조이미지 및 Dynamic Ingest 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 (입력에서)