即時 API:建立精確影格的剪輯

本教程將向您介紹如何使用Live API創建實時作業,然後從中創建幀精確的剪輯。

概覽

本教程在API級別說明瞭如何在中創建實時流作業Brightcove直播然後從中創建精確到幀的剪輯。

請注意,精確到幀的限幅要求編碼器發送SMPTE時間碼。

本教程將使curl用 API 請求,但您可以輕鬆地將它們放在InsomniaPostman或其他 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"
      }

此工作將根據 Apple 建議建立 5 個轉譯。

設定您的編碼器

這裡顯示的步驟將假設元素活盒編碼器,這是在測試本教程的步驟中使用。如果您有不同的編碼器,設定應該是相似的。

這種情況下最重要的設定是:

  • 將時間碼來源設定為「系統時鐘」
  • 將「OnFi 時間碼頻率」設定為 1
  • 檢查視頻中的「時間代碼插入」
  • 強烈建議:畫面播放速率 = 追蹤來源

這是我們用於這個實驗的配置:

元素即時工作配置
元素即時配置

測試播放

您可以使用此 VideoJS HLS 演示頁面來測試播放,只需在創建作業響應中粘貼playback_url返回的值即可:

視訊-小時播放
視頻 HLS 播放演示頁面

創建精確到幀的剪輯

在本教程中,我們將假定您將剪輯發送到您的Video Cloud庫。如果將剪輯發送到S3存儲桶或其他某個位置,則過程是相同的-API請求的請求正文中僅存在一些細微差異。

身份證明

如果您尚未在Live帳戶中創建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. 取代:

    • 用您的Live API密鑰
    • 與客戶的秘密
    • 使用您的客戶ID
  3. 將編輯後的命令複製並粘貼到Terminal或您的命令行應用程序中,然後運行它。
  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. 將編輯後的代碼複製並粘貼到Terminal或您的命令行應用程序中,然後運行它。
  4. 響應看起來應該類似於這樣:
      {
          "vod_jobs": [
              {
                  "jvod_id": "0b14a4ba326d4dd08f15053ca2a403b7",
                  "label": "Trim by SMPTE Timecodes"
              }
          ],
          "live_job_id": "3b6871bf2f344acaa6b397d09b476018"
      }

我們測試了實驗的準確性,我們下載了片段並使用Adobe首映可以檢查第一幀和最後一幀,因為時間碼被覆蓋了,因此簡單的視覺檢查就足以確認輸入和輸出點的準確性:

剪輯精確度
視覺剪輯精度測試-在
裁剪精度輸出
視覺剪輯精度測試-出