지원 지원 문의 | 시스템 상태 시스템 상태
페이지 내용

    동적 인제 스트를위한 소스 파일 업로드 API

    이 항목에서는 비디오를 비디오에 추가하는 방법을 배우게됩니다. Video Cloud Dynamic Ingest 용 소스 파일 업로드 API를 사용하는 계정 소스 파일 업로드 API는 소스 파일을 소스 파일에 업로드 ( "푸시") 할 수있는 기능을 제공합니다. Video Cloud Dynamic Ingest를 통해

    소개

    소스 파일 업로드를 통한 수집을 위해 Brightcove는 비디오 및 자산 파일을 업로드 할 수있는 S3 버킷을 제공하고 Dynamic Ingest는 자체 S3 버킷 또는 URL에서와 동일한 방식으로 S3 버킷에서 비디오를 가져옵니다. 아래 다이어그램은 기본 동적 수집 및 소스 파일 업로드를 통한 수집의 워크 플로우 간의 차이점을 보여줍니다.

    워크 플로우 차이점
    워크 플로우 차이점

    FAQ

    동영상이 일시적으로 저장되는 기간은 언제이며, URL은 언제 유효하지 않게됩니까?
    동영상은 업로드 한 후 24 시간 후에 임시 저장 공간에서 삭제되며 그 이후의 URL은 더 이상 유효하지 않습니다.
    S3 자격 증명은 Dynamic Ingest API 유효한?
    S3 자격 증명은 API가 보낸 24 시간에도 유효합니다.
    3 시간 후에 S24 버킷에서 비디오 파일이 물리적으로 삭제됩니까?
    가능
    동영상이 성공적으로 처리 된 후 S3 버킷에서 동영상이 삭제 되었습니까?
    24 시간이 지나면 모든 비디오는 임시 저장소에서 삭제됩니다.
    임시 저장 공간에있는 동영상에 URL이있는 사람이 공개적으로 액세스 할 수 있습니까?
    아니
    보안 자격 증명없이 임시 저장소에 비디오를 다운로드하거나 볼 수있는 방법이 있습니까?
    아니
    임시 저장소에 액세스하기위한 보안 자격 증명이 다른 Brightcove 고객과 공유됩니까?
    아니요, 임시 저장소를 사용하는 모든 고객에게 고유 한 보안 자격 증명이 제공됩니다.
    다른 Brightcove 고객이 자체 보안 자격 증명을 사용하여 임시 저장소의 비디오에 액세스 할 수있는 방법이 있습니까?
    아니요, 보안 자격 증명은 임시 저장 장치에 푸시 한 비디오에만 액세스 할 수 있습니다.
    파일 업로드를위한 S3 버킷에는 어떤 지역이 있습니까?
    US-EAST-1 (수정되었습니다).

    소스 파일 이름

    동영상 및 애셋에 액세스 할 때 발생하는 문제를 방지하려면 Brightcove Player비디오, 이미지 또는 텍스트 트랙 (WebVTT 파일)과 상관없이 소스 파일 이름에 특수 문자를 사용하지 않아야합니다. 이는 원격 자산에도 적용됩니다. 파일 이름은 다음을 포함해야합니다.

    • 1 바이트 글자 (대문자 또는 소문자)
    • 넘버들
    • 대시 (-)와 밑줄 (_)
    • 공간 URL 인코딩 된 경우

    인증

    Dynamic Ingest에 대한 클라이언트 자격 증명을 얻는 가장 쉬운 방법은 API 인증을위한 Studio 관리 페이지. API 권한의 경우 최소한 다음이 필요합니다.

    • CMS> 비디오 읽기
    • 동적 수집> 만들기
    • Dynamic Ingest> Push Files (새로운 소스 파일 업로드 API)
    API Authetication
    API Authetication

    푸시 기반 수집에 대한 Brightcove API 요청을 인증하려면 다음에 대한 것보다 하나의 추가 권한이 필요합니다. 기타 동적 인게 트 요청:

          video-cloud/upload-urls/read

    소스 파일 업로드에 필요한 모든 권한은 다음과 같습니다.

    • video-cloud / video / create
    • 비디오 클라우드 / 비디오 / 읽기
    • 비디오 클라우드 / 비디오 / 업데이트
    • video-cloud / upload-urls / read

    이러한 사용 권한은에서 사용할 수 있습니다. 스튜디오 렌탈. 또는 소스 파일 업로드 API를 직접 사용할 클라이언트 자격 증명을 얻을 수 있습니다. OAuth API 다음과 같이 POST 요청을 작성하십시오.

    요청 URL

          https://oauth.brightcove.com/v4/client_credentials

    헤더

    • Authorization: BC_TOKEN {YOUR_BC_TOKEN}
    • 콘텐츠 유형 : application / json

    본문 요청

          {
          "type": "credential",
          "maximum_scope": [
          {
            "identity": {
              "type": "video-cloud-account",
              "account-id": {YOUR_ACCOUNT_ID}
            },
            "operations": [
              "video-cloud/upload-urls/read",
              "video-cloud/video/create",
              "video-cloud/video/read",
              "video-cloud/video/update",
              "video-cloud/ingest-profiles/profile/write",
              "video-cloud/ingest-profiles/account/write",
              "video-cloud/ingest-profiles/profile/read",
              "video-cloud/ingest-profiles/account/read"
            ]
          }
          ],
          "name": "Source File Upload Credentials"
          }

    API 요청

    푸시 기반 처리에는 다음 네 가지 API 요청이 있습니다.

    1. CMS API 비디오 객체를 생성하기위한 POST 요청 Video Cloud (당길 기초 섭취와 동일)
    2. Brightcove S3 버킷 URL을 가져 오기위한 동적 입수 GET 요청
    3. 소스 파일을 Brightcove S3 버킷에 업로드하기위한 PUT 요청
    4. 소스 파일을 가져 오는 동적 인제 POST 요청 (끌어 오기 기반 처리와 동일)

    이러한 요청은 다음 섹션에서 자세히 설명합니다.

    CMS API 의뢰

    그리고, CMS API 요청은 새 동영상을 추가하는 모든 동적 인게 트 작업과 동일합니다. 이 요청은 새 동영상을 가져 오는 데 필요합니다. 기존 동영상에 애셋을 교체하거나 애셋을 추가하는 경우이 단계가 필요하지 않으며 대신 다른 요청에서 기존 동영상 ID를 사용합니다.

    요청 구문

    이것은 POST 요청 :

          https://cms.api.brightcove.com/v1/accounts/{ACCOUNT_ID}/videos

    매개 변수

    요청 URL 매개 변수 :

    • {ACCOUNT_ID} - 귀하의 계정 ID

    본문 요청

    요청 본문은 JSON 객체로 구성됩니다. name (필수) 및 기타 동영상 메타 데이터 (선택 사항) :

          {
          "name": "My Video"
          }

    을 참조 API 참조 자세한 내용은.

    헤더

    요청에 포함해야하는 HTTP 헤더는 다음과 같습니다.

    • Authorization: Bearer {ACCESS_TOKEN}
    • Content-Type: application/json

    응답

    응답은 비디오 메타 데이터가 포함 된 JSON 객체입니다. 나머지 동적 인게 트 작업에서 중요한 항목은 id, 당신은 당신을 대신 할 것입니다. {VIDEO_ID} Ingest API에 대한 요청에서

    S3 URL 요청

    수집 API에 대한 첫 번째 요청은 소스 파일을 Brightcove S3 버킷에 넣은 다음 필요한 정보를 수집하는 데 필요한 정보를 검색합니다. Video Cloud.

    요청 구문

    이것은 GET 요청 :

          https://ingest.api.brightcove.com/v1/accounts/{ACCOUNT_ID}/videos/{VIDEO_ID}/upload-urls/{SOURCE_NAME}

    매개 변수

    요청 URL 매개 변수 :

    • {ACCOUNT_ID} - 귀하의 계정 ID
    • {VIDEO_ID} -에서 반환 된 동영상 ID CMS API 의뢰
    • {SOURCE_NAME} - 비디오 소스 파일 이름 - 이름에는 URL 예약 문자 (예 : ?, &, # 또는 공백

    헤더

    요청에 포함해야하는 HTTP 헤더는 다음과 같습니다.

    • Authorization: Bearer {ACCESS_TOKEN}

    응답

    응답은 다음과 비슷한 JSON 객체가됩니다.

          {
          "bucket": "ingestion-upload-production",
          "object_key": "57838016001/4752143002001/ed5a5ba0-1d97-4f95-a8ec-cbb786b04a37/greatblueheron.mp4",
          "access_key_id": "ACCESS_KEY_APPEARS_HERE",
          "secret_access_key": "SECRET_ACCESS_KEY_APPEARS_HERE",
          "session_token": "FQoDYXdzEKf//////////wEaDKR0wDgquq/qvkZgbyKOA7URC/9io6cmRBDkhbvxoHIKkPZlK/9YNvdWcESPkm75/2PvU6FV1Mc+/XENPzY8KgvP86MBJNxYLPdkuP1phgHs2Yh2p1KIDcQSCZJ3i6i9m4S14ewjWIugYLYDQi6CG+3fiFwfzbKT5jes1kh24m9BQQIuvVOiM1GLTldyDzlrdDopJkdYd4IEU7FU36CUT7RL/aeMwR2Usk56nwqyqkkQHPmvqmGyiLdrD3OrIbUU+6+ZP4usS9dbV3eAqOWDIk3HCN+Kuc9f/eUWhY21ftNDXWgasqQqXwPRs3T1i/hoiIKODbzr8F",
          "signed_url": "https://ingestion-upload-production.s3.amazonaws.com/57838016001/4752143002001/ed5a5ba0-1d97-4f95-a8ec-cbb786b04a37/greatblueheron.mp4?AWSAccessKeyId=ACCESS_KEY_HERE&Expires=1475673952&Signature=%2Fsr5cV%2FVOfGCBkodol9xQIKlbu4%3D",
          "api_request_url": "https://ingestion-upload-production.s3.amazonaws.com/57838016001/4752143002001/ed5a5ba0-1d97-4f95-a8ec-cbb786b04a37/greatblueheron.mp4"
          }

    응답 항목은 다음과 같습니다.

    • bucket - S3 버킷 이름
    • object_key - 파일 업로드를위한 객체 키 (다중 부분 업로드를 위해 도착 URL을 구성하는 데 사용됨)
    • access_key_id - 업로드 요청을 인증하는 데 사용되는 액세스 키 (멀티 파트 업로드에 사용됨)
    • secret_access_key - 업로드 요청을 인증하는 데 사용되는 비밀 액세스 키 (멀티 파트 업로드에 사용됨)
    • session_token - 목표 objec에 쓸 수있는 기능을 제공하는 수명이 짧은 AWS 토큰
    • signed_url - 이것은 상대적으로 작은 동영상이 있고 멀티 파트 업로드를 구현하지 않는 경우 소스 파일을 가져올 수있는 속기 S3 URL입니다.
    • api_request_url -이 URL은 image / text_tracks 애셋의 마스터 URL 또는 URL에 대한 Dynamic Ingest POST 요청에 포함 할 URL입니다

    사용중인 언어에 대한 AWS SDK를 사용하여 다중 부분 업로드를 사용하는 것이 좋습니다. SDK는 Java, .NET, Ruby, PHP, Python, JavaScript, Go 및 C ++ 등 다양한 언어로 사용할 수 있습니다. 자세한 내용은 AWS 개발자 블로그 문의주시기 바랍니다.

    멀티 파트 업로드를 구현하는 경우 다음 문서와 샘플 코드가 유용합니다.

    다음은 PHP의 간단한 예제입니다.

          <?php
          // AWS SDK (for push ingests)
          require 'vendor/aws-autoloader.php';
          
          use Aws\S3\S3Client;
          use Aws\S3\MultipartUploader;
          use Aws\Exception\MultipartUploadException;
          
          /**
           * get S3 information as described above in this doc
           * the code below assumes it has been decoded as $s3response
           * and that $filePath is the local path to the asset file
           */
          
          s3 = new S3Client([
              'version' => 'latest',
              'region'  => 'us-east-1',
              'credentials' => array(
                  'key'    => $s3response->access_key_id,
                  'secret' => $s3response->secret_access_key,
                  'token'	 => $s3response->session_token
              )
          ]);
          $params = array(
              'bucket' => $s3response->s3->bucket,
              'key' => $s3response->s3->object_key
          );
          $uploader = new MultipartUploader($this->s3, $filePath, $params);
          try {
              $uploadResponse = $uploader->upload();
          } catch (MultipartUploadException $e) {
              echo $e->getMessage() . "\n";
          }
          ?>

    PUT 소스 파일을 S3에 보내십시오.

    S3 URL을 얻은 후에는 다음을 사용하여 비디오 파일을 업로드하라는 PUT 요청을합니다. signed_url 목적지로.

    다음을 사용할 수 있습니다. 명령을 사용하여 PUT 작업을 테스트합니다.

          curl -X PUT "SIGNED_URL_GOES_HERE" --upload-file FILE_PATH_FOR_LOCAL_ASSET_GOES_HERE 

    단일 대 다중 업로드

    AWS를 사용하면 최대 5 GB 크기의 파일을 한 번에 업로드 할 수 있습니다 (파일 크기에는 다른 제한이 없습니다). 큰 파일의 경우 여러 부분 업로드를 사용해야합니다. 단일 부분 업로드는 설정하는 것이 다소 쉽지만 가능한 경우 여러 부분 업로드를 사용하는 것이 좋습니다. 두 가지의 차이점은 다음과 같습니다.

    • 단일 부분 업로드는 비디오를 모두 하나의 파일로 업로드합니다. 단일 부분 업로드는 5 GB 이하의 파일 크기로 제한됩니다. 어떤 이유로 업로드가 중단되면 다시 시작해야합니다.
    • 멀티 파트 업로드는 파일을 청크로 푸시합니다. 업로드가 여러 연결을 이용할 수 있기 때문에 더 효율적입니다. 또한 업로드가 중단되면 나머지 청크에서 중단되었던 부분부터 다시 시작할 수 있습니다.

    동적 인제 요청

    파일이 Brightcove S3 버킷에 업로드 된 후 일반적인 Dynamic Ingest 요청을 수행하여 S3 위치에서 파일을 수집합니다.

    요청 구문

    이것은 POST 요청 :

          https://ingest.api.brightcove.com/v1/accounts/{ACCOUNT_ID}/videos/{VIDEO_ID}/ingest-requests

    매개 변수

    요청 URL 매개 변수 :

    • {ACCOUNT_ID} - 귀하의 계정 ID
    • {VIDEO_ID} -에서 반환 된 동영상 ID CMS API 의뢰

    본문 요청

    요청 본문은 JSON 객체로 구성됩니다. master (필수) 인제 스트 작업에 대한 세부 정보. 그만큼 url 위한 master 될 것입니다 api_request_url S3 버킷 정보 요청에 의해 반환 됨

          {
          "master": {
              "url": "https://ingestion-upload-prod.s3.amazonaws.com/12345/5678/3712cd37504911ab06a77a26a387ce/source.mp4"
          },
          "profile": "multi-platform-standard-static",
          "capture-images": true
          }

    을 참조 API 참조 자세한 내용은.

    헤더

    요청에 포함해야하는 HTTP 헤더는 다음과 같습니다.

    • Authorization: Bearer {ACCESS_TOKEN}
    • Content-Type: application/json

    응답

    응답에는 job_id 인제 스트 요청에 대해 다음을 통해 상태를 추적 할 수 있습니다. 알림.

    샘플 코드

    푸시 기반 Dynamic Ingest를 시작하는 데 도움이되도록 Java 및 Python으로 샘플 응용 프로그램을 만들었습니다. 당신은 우리의 Github 사이트.


    페이지 최종 업데이트 28 Sep 2020