라이브 API: 정확한 프레임 클립 만들기

이 자습서에서는 Live API를 사용하여 라이브 작업을 만든 다음 여기에서 정확한 프레임 클립을 만드는 방법을 안내합니다.

개요

이 튜토리얼에서는 API 수준에서브라이트코브 라이브에서 라이브 스트리밍 작업을 만든 다음 이를 바탕으로 프레임에 맞는 클립을 만드는 방법을 설명합니다.

정확한 프레임 클리핑을 사용하려면 인코더가 SMPTE 타임 코드를 전송해야합니다.

이 튜토리얼은curl API 요청을 만들 수 있지만 다음에서 쉽게 만들 수 있습니다. Insomnia , Postman또는 다른 REST 클라이언트 대신.

라이브 작업 만들기

먼저, 우리는 라이브 직업을 만들 것입니다. 라이브 API에는API-KEY가 필요합니다. 그렇지 않고 액세스 권한을 얻는 데 관심이 있는 경우 고객 성공 관리자에게 문의하십시오.

  1. 이미 brightcove 계정이 있고 API-KEY가 있다고 가정합니다. bcov-live-api-key
  2. 다음curl명령을 복사하여 텍스트 편집기에 붙여넣습니다.

      curl -X POST \
        https://api.bcovlive.io/v1/jobs \
        -H 'Content-Type: application/json' \
        -H 'x-api-key: ' \
        -d '{
          "live_stream": true,
          "region": "",
          "outputs": [{
            "label": "hls360p",
            "live_stream": true,
            "height": 360,
            "video_bitrate": 365,
            "segment_seconds": 6,
            "keyframe_interval": 60
          },
          {
            "label": "hls432p",
            "live_stream": true,
            "height": 432,
            "video_bitrate": 730,
            "segment_seconds": 6,
            "keyframe_interval": 60
          },
          {
            "label": "hls540p",
            "live_stream": true,
            "height": 540,
            "video_bitrate": 2000,
            "segment_seconds": 6,
            "keyframe_interval": 60
          },
          {
            "label": "hls720p3M",
            "live_stream": true,
            "height": 540,
            "video_bitrate": 2000,
            "segment_seconds": 6,
            "keyframe_interval": 60
          },
          {
            "label": "hls720p4.5M",
            "live_stream": true,
            "height": 540,
            "video_bitrate": 4500,
            "segment_seconds": 6,
            "keyframe_interval": 60
          }]
        }'
      
  3. 바꾸기:

    • 사용 가능한 영역이 엔코더에서 가장 가까운 경우 엔코더에서가장 가까운 사용 가능한 영역을확인할 수 있습니다. 예를 들면 다음과 같습니다. us-west-2
    • 브라이트코브 라이브 API 키와 함께 예를 들면 다음과 같습니다. abcdfeg-this-is-a-fake-api-key-FgJajjasd12hJHsZ
  4. 변경 한 후 코드를 터미널 또는 사용하는 명령 줄 앱에 복사하여 붙여 넣고 실행하십시오.
  5. 응답은 다음과 같아야합니다.

      {
          "id": "3b6871bf2f344acaa6b397d09b476018",
          "outputs": [... removed for simplicity ...],
          "stream_url": "rtmp://ep1-usw2.bcovlive.io:1935/3b6871bf2f344acaa6b397d09b476018",
          "stream_name": "alive",
          "static": false,
          "encryption": {},
          "playback_url": "https://bcovlive-a.akamaihd.net/3b6871bf2f344acaa6b397d09b476018/us-west-2/NA/playlist.m3u8",
          "playback_url_dvr": "https://bcovlive-a.akamaihd.net/3b6871bf2f344acaa6b397d09b476018/us-west-2/NA/playlist_dvr.m3u8"
      }

이 작업은 5개의 변환을 생성합니다. 기반을 둔 ~에애플 추천 .

인코더 구성

여기에 표시된 단계는 이 튜토리얼의 단계를 테스트하는 데 사용된 Elemental 라이브 박스인코더를 가정합니다. 인코더가 다른 경우 설정이 비슷해야합니다.

이 경우 가장 중요한 설정은 다음과 같습니다.

  • 시간 코드 소스를 “시스템 클럭”으로 구성
  • “OnFi 타임코드 빈도”를 1로 설정
  • 비디오 내에서 “시간 코드 삽입”을 확인하십시오.
  • 권장: 프레임 속도 = 소스 따르기

이것은이 실험에 사용 된 설정입니다.

elemental-live-job-config
Elemental 라이브 구성

재생 테스트

VideoJS HLS 데모 페이지를 사용하여 재생을테스트할 수 있습니다. 생성 작업 응답에playback_url반환된 값을 붙여넣기만 하면 됩니다.

videojs-hls- 재생
VideoJS HLS 재생 데모 페이지

프레임이 정확한 클립 만들기

이 튜토리얼에서는 클립을 Video Cloud 라이브러리로 전송한다고 가정합니다. 클립을 S3 버킷 또는 다른 위치로 보내는 경우 프로세스는 동일합니다. API 요청에 대한 요청 본문에 약간의 차이가있을뿐입니다.

자격 증명

Live 계정에서 Video Cloud에 대한 자격 증명을 생성하지 않은 경우 여기에있는 단계에 따라 생성 할 수 있습니다. 이것은 일회성 작업입니다.

Video Cloud로 비디오를 동적으로 수집하기위한 클라이언트 자격 증명이 아직없는 경우이를 만들어야합니다. 보다 API 인증 자격 증명 관리 Studio에서 이 작업을 수행하는 방법에 대한 지침을 참조하십시오.

  1. 아래 curl 명령을 텍스트 편집기에 복사하십시오.
    curl -X POST \ https://api.bcovlive.io/v1/credentials \ -H 'Content-Type: application/json' \ -H 'x-api-key: ' \ -d '{ "credential_default_for_type": true, "credential_label": "Video_Cloud_Uploads", "credential_private": "", "credential_public": "", "credential_type": "videocloud" }' 
  2. 바꾸기:

    • 라이브 API 키 사용
    • 고객 비밀로
    • 고객 ID로
  3. 편집 한 명령을 복사하여 터미널 또는 명령 줄 앱에 붙여넣고 실행합니다.
  4. 응답은 다음과 비슷해야 합니다.
      {
        "credential_id": "1e0180330b724dfbbcaf6b28b6c5d517",
        "user_id": "c2691d4d039040be96c190a949d754a7",
        "credential_label": "Video_Cloud_Uploads"
      }

클립 만들기

Video Cloud 자격 증명이 있으면 클립을 만들 준비가 된 것입니다.

  1. 아래 curl 요청을 복사하여 텍스트 편집기에 붙여 넣으십시오.
      curl -X POST \
        https://api.bcovlive.io/v1/vods \
        -H 'Content-Type: application/json' \
        -H 'x-api-key: ' \
        -d '{
          "live_job_id":"",
          "outputs":[{
              "label": "Trim by SMPTE TC 17:33:11:12 to 17:34:00:00",
            "stream_start_timecode": "",
            "stream_end_timecode": "",
              "videocloud":{"ingest":{"capture-images":true},"video":{"name":"test-frame-accurate-clip"}},
              "credentials": ""
          }]
      }'
  2. 바꾸기:

    • 브라이트코브 라이브 API 키와 함께 예를 들면 다음과 같습니다. abcdfeg-this-is-a-fake-api-key-FgJajjasd12hJHsZ
    • 라이브 작업 생성 요청에 대한 응답에 작업 ID와 함께 이 예제에서 이 값은 다음과 같습니다3b6871bf2f344acaa6b397d09b476018 . 여러분의 값은 다를 것입니다.
    • 실시간 스트림에서 의미가 있는 (존재하는) 값이어야 합니다. 이 예에서는 다음을 사용했습니다. 17:33:11:1217:34:00:00
    • 비디오 클라우드 자격 증명 라벨과 함께 아직 가지고 있지 않고 위의 단계를 사용하여 만든 경우 다음과 같습니다. Video_Cloud_Uploads
  3. 편집 한 코드를 복사하여 터미널 또는 명령 줄 앱에 붙여넣고 실행합니다.
  4. 응답은 다음과 비슷해야 합니다.
      {
          "vod_jobs": [
              {
                  "jvod_id": "0b14a4ba326d4dd08f15053ca2a403b7",
                  "label": "Trim by SMPTE Timecodes"
              }
          ],
          "live_job_id": "3b6871bf2f344acaa6b397d09b476018"
      }

실험의 정확도를 테스트했습니다. 클립을 다운로드하고 Adobe Premiere를 사용하여 첫 번째 프레임과 마지막 프레임을 확인했습니다. 타임코드가 오버레이되어 있으므로 간단한 시각적 검사만으로도 입력 및 출력 지점의 정확도를 확인할 수 있습니다.

클립 정확도
시각적 클립 정확도 테스트 -
클립 정확도 아웃
시각적 클립 정확도 테스트