概述:動態攝取 API

在本主題中,您將學習如何使用Dynamic Ingest API攝取視頻,以便可以通過 Dynamic Delivery 進行傳送。

簡介

Brightcove的Dynamic Ingest API基於從客戶的存儲位置下載視頻源文件並創建源文件的指定再現的功能。(也可以選擇上傳你的源文件到 Dynamic Ingest 可以訪問它們的臨時位置。)該平台以雲端為中心,全球分佈,並以現代化實務為基礎,以提供同級最佳的一致性和速度。

另見API參考 .

工作流程概述

一些系統/技術用於媒體的整體轉碼和存儲。它們是:

  • CMS API:建立要在 DI API 中使用的視訊物件
  • 禪編碼器:將視訊轉碼建立多個轉譯
  • 亞馬遜 S3 :根據設定檔設定,將主節目和轉譯移至儲存裝置
  • 目錄:儲存與視訊相關聯的必要資訊

初始轉碼後,您可以在媒體上執行下列動作:

作業

當您使用 DI API 時,您將執行不同的操作,例如讀取內嵌設定檔和寫入資訊到您的帳戶。以下是 DI 工作所需的完整作業清單:

  • video-cloud/video/create
  • video-cloud/video/read
  • video-cloud/video/update
  • video-cloud/ingest-profiles/profile/read
  • video-cloud/ingest-profiles/account/read
  • video-cloud/ingest-profiles/account/write
  • video-cloud/ingest-profiles/profile/write
  • video-cloud/upload-urls/read

若要取得用戶端認證,請使用 Studio 系統管理員工具,或查看下列其中一個文件:

最佳實務

動態攝取 API:最佳實踐

有效的來源位置

基於拉取

動態內嵌可以從下列位置提取來源視訊檔案:HTTP / HTTPS,S3和FTP-帶有或不帶有身份驗證

範例:

  • https://example.com/path/to/input.avi
  • https://dl.dropboxusercontent.com/u/3641457/Bird_Titmouse.mp4
  • s3://my-bucket/video.mp4
  • ftp://服務器/file.mp4

關於 S3 的注意事項

如果您的視頻位於受保護的 S3 存儲桶中,請參閱將動態攝取與 S3 結合使用有關如何設置 Dynamic Ingest 訪問文件的權限的詳細信息。

FTP注意事項

如果您的視頻位於受保護的FTP服務器中,請使用標準方法在URL上傳遞用戶名和密碼,如下所示:

    ftp://username:password@server/file.mp4

來源檔案上傳

您還可以將文件上傳到安全的臨時位置,Dynamic Ingest可以從該位置將其提取。有關詳細信息,請參閱源文件上傳 .

特殊字元

如果您正在為 Video Cloud 提供 URL 以獲取您的視頻,並且您正在將憑據作為 URL 的一部分發送, 你需要百分比編碼某些保留的特殊字符:

特殊字元
字元 百分比編碼
] %5B
[ %5D
? %3F
/ %2F
< %3C
~ %7E
# %23
` %6D
%21
@ %40
$ %24
% %25
^ %5E
& %26
* %2A
( %28
) %29
+ %2B
= %3D
} %7D
| %7C
%3A
%22
; %3B
' %27
%2C
> %3E
{ %7B
空間 %20

例如:

/* unencoded */
ftp://user@example.com:pass!word@example.com/path/to/input.mp3

/* encoded */
ftp://user%40example.com:pass%21word@example.com/path/to/input.mp3

雙 URL 編碼

任何時候 URL 在處理之前將被解碼一次,您應該在提交攝取作業之前對輸入 URL 進行兩次 URL 編碼。

例如:

一個 master.url

https://some.file.storage.com/path/to/video.mp4?Signature=some%2Bcool%2B%25sig

在處理之前將轉換為以下內容:

https://some.file.storage.com/path/to/video.mp4?Signature=some+cool+%sig

您應該像這樣對其進行雙重編碼:

https://some.file.storage.com/path/to/video.mp4?Signature=some%252Bcool%252B%2525sig

要對 URL 進行編碼,請參閱 字符串編碼器 文檔。

來源檔案名稱

所有輸入的 url 必鬚根據RFC 3986當被送到 Brightcove 時。這意味著任何保留字符在 url 的路徑中找到的是百分比編碼(空格被編碼為%20 ),並且在 url 的查詢中找到的任何保留字符都經過百分比編碼(空格被編碼為+或者%20, 和+被編碼為%2B ).

A 預先簽署 S3 ( v2包含簽名 , 過期AWSAccessKeyId, 和v4包含X-Amz-算法 , X-Amz-憑證 , X-Amz-日期 , X-Amz-過期 , X-Amz-SignedHeaders, 和X-Amz-簽名) 或者全球控制系統(包含簽名 , 過期, 和GoogleAccessId ) url 應該已經正確編碼並且可以按原樣使用 .

資產範例

Brightcove 學習服務提供一些範例資產,您可以用來實驗開始使用動態擷取。這些資產包括多種語言的短片、影像和 WebVTT 字幕:

內嵌設定檔

創建動態投放視頻需要特殊的攝取配置文件。你會發現一些標準攝取配置文件在啟用動態交付時在您的帳戶中,建議使用這些。

您還可以在 Studio 的“管理”部分中將自定義動態交付配置文件添加到您的攝取配置文件中 - 請參閱為動態交付創建攝取配置文件了解詳情。

樣本動態投放資料

以下是一個示例動態交付配置文件,可用於入門。您需要做的就是更換YOUR_ACCOUNT_ID 使用您的帳戶 ID,然後您可以將配置文件複製並粘貼到攝取配置文件編輯器中。

    {
      "name": "DynamicDeliveryIngestProfile",
      "description": "Dynamic Delivery ingest profile.",
      "account_id": "YOUR_ACCOUNT_ID",
      "digital_master": {
        "rendition": "passthrough",
        "distribute": false
      },
      "dynamic_origin": {
        "renditions": [
          "default/audio64",
          "default/audio96",
          "default/audio128",
          "default/video450",
          "default/video700",
          "default/video900",
          "default/video1200",
          "default/video1700",
          "default/video2000"
        ],
        "images": [
          {
            "label": "poster",
            "height": 720,
            "width": 1280
          },
          {
            "label": "thumbnail",
            "height": 90,
            "width": 160
          }
        ]
      }
    }
    

有關標準動態交付配置文件和再現的詳細信息,請參閱用於動態交付的標準攝取配置文件

擷取視訊

攝取視頻需要兩個API請求:

  1. 打電話給CMS API在視頻雲系統中創建一個視頻對象並獲取它的id
  2. 打電話給Dynamic Ingest API提供視頻源文件的 URL 並根據需要指定用於攝取的其他文件和設置

基本要求的範例集如下所示:

CMS 應用程式介面請求

HTTP 方法
開機自檢
請求網址
https://cms.api.brightcove.com/v1/accounts/{account_id}/videos
要求主體
    {
    "name": "My First Dynamic Delivery Video"
    }
    
    

響應數據將包括視頻id ,在下一個請求中使用。

內嵌 API 請求

HTTP 方法
開機自檢
請求網址
https://ingest.api.brightcove.com/v1/accounts/{account_id}/videos/{video_id}/ingest-requests
要求主體
    {
      "master": {
        "url": "https://host/master.mp4"
      },
      "profile": "DynamicDeliverIngestProfile",
      "callbacks": [
        "https://mydomain.com/di-callbacks.php"
      ]
    }
    

注意事項

  • 如果您不包括profile 字段,將使用該帳戶的默認配置文件。我們建議您使用默認帳戶,除非您需要為不同類型的視頻使用不同的配置文件。確保將帳戶默認設置為您(最常使用)的配置文件。
  • callbacks 字段是可選的,但我們強烈建議您將其用作跟踪攝取作業進度的最佳方式。看以下有關通知的更多信息。

查看渲染

您可以通過轉到Studio 中的媒體模塊 .

要查看再現的完整屬性,您可以使用CMS API 請求詳述如下 .

要檢索用於播放的 URL,您可以使用Playback API 請求詳情如下 .

取代視訊

要用新版本或一組新的再現替換視頻,Dynamic Ingest API調用與它的調用完全相同攝取新視頻 - 唯一的區別是您不需要事先致電CMS API在 Video Cloud 系統中創建視頻對象並為其獲取 ID。如果指定URL上的源視頻文件與最初提取的源視頻文件相同,則您將僅獲得一組新的再現。如果源文件是新文件,則將替換現有視頻。在重新轉碼完成之前,所有視訊都可以在現有的轉譯中繼續播放。

工作樣本在這裡 .

重新轉換影片

如果你選擇存檔大師當您通過Dynamic Ingest API或 Studio 上傳模塊,那麼您還可以重新轉碼來自母版的視頻。同樣,內嵌請求的 URL 將是相同的,但請求主體將具有以下內容:

    // request
    POST /v1/accounts/{account_id}/videos/{video_id}/ingest-requests
    // request body
    {
      "master": { "use_archived_master": true },
      "profile": "multi-platform-extended-static"
    }
    
    

圖像攝取

您可以在提取請求中包含自己的圖像,也可以稍後在單獨的請求中添加它們,而不必在轉碼過程中捕獲海報和縮略圖圖像。

請求主體範例

    {
      "profile": "multi-platform-extended-static",
      "poster": {
        "url": "https://bcls@solutions.brightcove.com/bcls/assets/images/great-blue-heron-poster.png",
        "width": 1280,
        "height": 720
      },
      "thumbnail": {
        "url": "https://bcls@solutions.brightcove.com/bcls/assets/images/great-blue-heron-thumbnail.png",
        "width": 160,
        "height": 90
      },
      "callbacks": [
        "https://solutions.brightcove.com/bcls/di-api/di-callbacks.php"
      ]
    }
    

圖像資產提取通知

以下是您專門為圖像提取而獲得的通知示例。

    {
        "entity": "thumbnail",
        "entityType": "ASSET",
        "version": "1",
        "action": "CREATE",
        "jobId": "0c2767c1-19ea-479d-b371-a0f5f3d154f5",
        "videoId": "5209530177001",
        "accountId": "57838016001",
        "status": "SUCCESS"
      }
      {
        "entity": "poster",
        "entityType": "ASSET",
        "version": "1",
        "action": "CREATE",
        "jobId": "0c2767c1-19ea-479d-b371-a0f5f3d154f5",
        "videoId": "5209530177001",
        "accountId": "57838016001",
        "status": "SUCCESS"
    }
    
    

字幕攝取

可以將WebVTT格式的字幕與初始攝取請求或以後的請求一起添加到視頻中。

請求主體範例

    {
      "text_tracks": [
        {
          "url": "https://solutions.brightcove.com/bcls/assets/vtt/sample.vtt",
          "srclang": "en",
          "kind": "captions",
          "label": "EN",
          "default": true
        },
        {
          "url": "https://solutions.brightcove.com/bcls/assets/vtt/sample-es.vtt",
          "srclang": "es",
          "kind": "captions",
          "label": "ES",
          "default": false
        }
      ],
      "callbacks": [
        "https://solutions.brightcove.com/bcls/di-api/di-callbacks.php"
      ]
    }
    

與非動態投放視頻一樣,Sidecar文本軌道將顯示在CMS或播放響應中:

    "text_tracks": [
        {
        "id": null,
        "src": "https://bcbolt446c5271-a.akamaihd.net/media/v1/text/vtt/clear/57838016001/3de8c552-74e8-4c53-aa11-2a4375edf658/bce0d3dc-11d9-4ca4-ae1b-a39cb7b88a1c/text.vtt?akamai_token=exp=1479236791~acl=/media/v1/text/vtt/clear/57838016001/3de8c552-74e8-4c53-aa11-2a4375edf658/bce0d3dc-11d9-4ca4-ae1b-a39cb7b88a1c/text.vtt*~hmac=df5b4ba1ef2549a7572346dd36a761534ffafe4b8cfbdf92d89013ec2f95699c",
        "srclang": "en",
        "label": "EN",
        "kind": "captions",
        "mime_type": "text/webvtt",
        "asset_id": null,
        "sources": [
          {
          "src": "https://bcbolt446c5271-a.akamaihd.net/media/v1/text/vtt/clear/57838016001/3de8c552-74e8-4c53-aa11-2a4375edf658/bce0d3dc-11d9-4ca4-ae1b-a39cb7b88a1c/text.vtt?akamai_token=exp=1479236791~acl=/media/v1/text/vtt/clear/57838016001/3de8c552-74e8-4c53-aa11-2a4375edf658/bce0d3dc-11d9-4ca4-ae1b-a39cb7b88a1c/text.vtt*~hmac=df5b4ba1ef2549a7572346dd36a761534ffafe4b8cfbdf92d89013ec2f95699c"
          }
        ],
        "in_band_metadata_track_dispatch_type": "",
        "default": false
      ]
    }
    

文本軌道還將顯示在HLS和DASH清單中:

HLS

    #EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subtitles-0",NAME="Captions",DEFAULT=NO,AUTOSELECT=YES,LANGUAGE="es",URI="https://manifest.prod.boltdns.net/manifest/v1/hls/v5/clear/57838016001/1bd49b7b-df40-414f-bb05-8840624663e1/de8144f4-b7d7-46ca-848f-dd2f7fa453d7/rendition.m3u8?fastly_token=NTg0ZjA5MWZfMzU1N2VhY2Y2MDA3NzkzYWM0ZjU2ZWQwNWE2NTYzMmI4MzMzMmJkZWM5Y2JmNzQ1MjRjM2QxYjI0NTYzODA5Zg%3D%3D"
    #EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subtitles-0",NAME="Captions",DEFAULT=NO,AUTOSELECT=YES,LANGUAGE="en",URI="https://manifest.prod.boltdns.net/manifest/v1/hls/v5/clear/57838016001/1bd49b7b-df40-414f-bb05-8840624663e1/6399fcf2-cd27-4d97-ad30-e443f13563bd/rendition.m3u8?fastly_token=NTg0ZjA5MWZfYWMxYjllNDlkYzVlOTJkZWQ3ODk2YjE3MGI5NDlhYTlkOGQ1YzI5ZmI4ZjRlOWMzMzU5YmM1YzZkNTA4MTFmNQ%3D%3D"
    
    

破折號

    <AdaptationSet mimeType="text/vtt" lang="en">
      <Representation bandwidth="256" id="2f4bb3fb-1a7d-4f4c-bf44-00ef0e611131">
      <BaseURL>https://bcbolt446c5271-a.akamaihd.net/media/v1/dash/live/clear/57838016001/785d5ddf-6672-4ece-9191-d105445b2557/2f4bb3fb-1a7d-4f4c-bf44-00ef0e611131.vtt?akamai_token=exp=1484784452~acl=/media/v1/dash/live/clear/57838016001/785d5ddf-6672-4ece-9191-d105445b2557*~hmac=ae568ea5294280968de0a2766afd82922ea9aa83fe23a81b3379a46b8ef13284</BaseURL>
      </Representation>
      </AdaptationSet>
      <AdaptationSet mimeType="text/vtt" lang="hi">
      <Representation bandwidth="256" id="f5875617-40f4-4991-bc5b-7152c6e2a93a">
      <BaseURL>https://bcbolt446c5271-a.akamaihd.net/media/v1/dash/live/clear/57838016001/785d5ddf-6672-4ece-9191-d105445b2557/f5875617-40f4-4991-bc5b-7152c6e2a93a.vtt?akamai_token=exp=1484784452~acl=/media/v1/dash/live/clear/57838016001/785d5ddf-6672-4ece-9191-d105445b2557*~hmac=ae568ea5294280968de0a2766afd82922ea9aa83fe23a81b3379a46b8ef13284</BaseURL>
      </Representation>
    </AdaptationSet>
    
    

文本跟踪資產的通知

以下是特定於文本軌道提取的通知示例。

    {
      "entity": "en-captions-EN",
      "entityType": "ASSET",
      "version": "1",
      "action": "CREATE",
      "jobId": "ed429284-77c9-4905-a700-4c8edb77be3e",
      "videoId": "5209530177001",
      "accountId": "57838016001",
      "status": "SUCCESS"
    }
    {
      "entity": "es-captions-ES",
      "entityType": "ASSET",
      "version": "1",
      "action": "CREATE",
      "jobId": "ed429284-77c9-4905-a700-4c8edb77be3e",
      "videoId": "5209530177001",
      "accountId": "57838016001",
      "status": "SUCCESS"
    }
    
    

具有文本軌道的示例播放器(英語和西班牙語)

動態投放視頻播放器

iOS 應用中的 Sidecar 字幕

動態傳遞邊車字幕
動態傳遞邊車字幕

檢索動態演繹

若要擷取視訊動態轉譯的相關資訊,請將 GET 請求提交至:

    https://cms.api.brightcove.com/v1/accounts/account_id/videos/video_id/assets/dynamic_renditions
    
    

範例回應

    [
      {
        "rendition_id": "default/audio128",
        "frame_height": null,
        "frame_width": null,
        "media_type": "audio",
        "size": 506818,
        "created_at": "2016-11-14T15:05:56.209214859Z",
        "updated_at": "2016-11-14T15:05:56.209214859Z",
        "encoding_rate": 125,
        "duration": 31488,
        "audio_configuration": "L_R",
        "language": "en"
      },
      {
        "rendition_id": "default/audio64",
        "frame_height": null,
        "frame_width": null,
        "media_type": "audio",
        "size": 261129,
        "created_at": "2016-11-14T15:05:53.926747456Z",
        "updated_at": "2016-11-14T15:05:53.926747456Z",
        "encoding_rate": 62,
        "duration": 31488,
        "audio_configuration": "L_R",
        "language": "en"
      },
      {
        "rendition_id": "default/audio96",
        "frame_height": null,
        "frame_width": null,
        "media_type": "audio",
        "size": 384568,
        "created_at": "2016-11-14T15:05:59.023381448Z",
        "updated_at": "2016-11-14T15:05:59.023381448Z",
        "encoding_rate": 94,
        "duration": 31488,
        "audio_configuration": "L_R",
        "language": "en"
      },
      {
        "rendition_id": "default/video1200",
        "frame_height": 540,
        "frame_width": 960,
        "media_type": "video",
        "size": 4761241,
        "created_at": "2016-11-14T15:06:10.410020728Z",
        "updated_at": "2016-11-14T15:06:10.410020728Z",
        "encoding_rate": 1206,
        "duration": 31465
      },
      {
        "rendition_id": "default/video1700",
        "frame_height": 540,
        "frame_width": 960,
        "media_type": "video",
        "size": 6712422,
        "created_at": "2016-11-14T15:06:15.593063021Z",
        "updated_at": "2016-11-14T15:06:15.593063021Z",
        "encoding_rate": 1703,
        "duration": 31465
      },
      {
        "rendition_id": "default/video2500",
        "frame_height": 720,
        "frame_width": 1280,
        "media_type": "video",
        "size": 9795721,
        "created_at": "2016-11-14T15:06:12.148783841Z",
        "updated_at": "2016-11-14T15:06:12.148783841Z",
        "encoding_rate": 2486,
        "duration": 31465
      },
      {
        "rendition_id": "default/video4000",
        "frame_height": 1080,
        "frame_width": 1920,
        "media_type": "video",
        "size": 15718943,
        "created_at": "2016-11-14T15:06:15.463012005Z",
        "updated_at": "2016-11-14T15:06:15.463012005Z",
        "encoding_rate": 3992,
        "duration": 31465
      },
      {
        "rendition_id": "default/video450",
        "frame_height": 270,
        "frame_width": 480,
        "media_type": "video",
        "size": 1784858,
        "created_at": "2016-11-14T15:06:20.719400854Z",
        "updated_at": "2016-11-14T15:06:20.719400854Z",
        "encoding_rate": 451,
        "duration": 31465
      },
      {
        "rendition_id": "default/video700",
        "frame_height": 360,
        "frame_width": 640,
        "media_type": "video",
        "size": 2746520,
        "created_at": "2016-11-14T15:06:10.918331816Z",
        "updated_at": "2016-11-14T15:06:10.918331816Z",
        "encoding_rate": 695,
        "duration": 31465
      },
      {
        "rendition_id": "default/video900",
        "frame_height": 360,
        "frame_width": 640,
        "media_type": "video",
        "size": 3561912,
        "created_at": "2016-11-14T15:06:17.295871425Z",
        "updated_at": "2016-11-14T15:06:17.295871425Z",
        "encoding_rate": 902,
        "duration": 31465
      }
    ]
    

檢索要播放的URL

若要擷取視訊動態轉譯的相關資訊,請將 GET 請求提交至:

    https://edge.api.brightcove.com/playback/v1/accounts/account_id/videos/video_id
    
    

範例回應

    {
      "description": null,
      "poster_sources": [
      {
        "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/jit/57838016001/853641cb-d66b-4f08-bb02-8489b5fba897/main/1280x720/24s816ms/match/image.jpg"
      }
      ],
      "tags": [
        "dd-static"
      ],
      "cue_points": [],
      "custom_fields": {},
      "account_id": "57838016001",
      "sources": [
        {
          "ext_x_version": "4",
          "type": "application/x-mpegURL",
          "src": "https://manifest.prod.boltdns.net/manifest/v1/hls/v4/clear/57838016001/853641cb-d66b-4f08-bb02-8489b5fba897/10s/master.m3u8?fastly_token=NTk1YmE0ZmZfOGU5Njg0NGU1OWQ3NjI3ZDhmY2FhZTVmNGE0YzI1MWM1NjMyNTZkNzMzZmExMzRkN2ZmYzU0YWU5NzUyZTM2YQ%3D%3D"
        },
        {
          "ext_x_version": "5",
          "type": "application/x-mpegURL",
          "src": "https://manifest.prod.boltdns.net/manifest/v1/hls/v5/clear/57838016001/853641cb-d66b-4f08-bb02-8489b5fba897/10s/master.m3u8?fastly_token=NTk1YmE0ZmZfOTBkOThhYmQ5MWM0MmQwYmQwYTM4MGEzMjAzZTgyNDVlMDYzYzNhMzQ1ZWQ3MTMyMzVmM2Q1YjM2N2VlMjM0Yg%3D%3D"
        },
        {
          "type": "application/dash+xml",
          "src": "https://manifest.prod.boltdns.net/manifest/v1/dash/live-baseurl/clear/57838016001/853641cb-d66b-4f08-bb02-8489b5fba897/2s/manifest.mpd?fastly_token=NTk1YmE0ZmZfYzQyOWJiOTEzMGJmNGIyMjM1NmMwMzZmNGZkZjlkYjEzMzNmNzFlYmQxODg0Y2YzZDk3ZTljNzVhODg1YzRjMQ%3D%3D",
          "profiles": "urn:mpeg:dash:profile:isoff-live:2011"
        },
        {
          "avg_bitrate": 2129000,
          "width": 1280,
          "src": "https://bcbolt446c5271-a.akamaihd.net/media/v1/pmp4/static/clear/57838016001/853641cb-d66b-4f08-bb02-8489b5fba897/high.mp4?akamai_token=exp=1499178239~acl=/media/v1/pmp4/static/clear/57838016001/853641cb-d66b-4f08-bb02-8489b5fba897/high.mp4*~hmac=5880698556297bbe2f2f43ac8904c659c61fb9510db1a9bb106037eaea393339",
          "size": 13242064,
          "height": 720,
          "duration": 49690,
          "container": "MP4",
          "codec": "H264"
        },
        {
          "avg_bitrate": 574000,
          "width": 480,
          "src": "https://bcbolt446c5271-a.akamaihd.net/media/v1/pmp4/static/clear/57838016001/853641cb-d66b-4f08-bb02-8489b5fba897/mid.mp4?akamai_token=exp=1499178239~acl=/media/v1/pmp4/static/clear/57838016001/853641cb-d66b-4f08-bb02-8489b5fba897/mid.mp4*~hmac=75e51439623a41b93d2a234c25683e76d43656f97a9dfb8efe61a5342d5ff2da",
          "size": 3586929,
          "height": 270,
          "duration": 49690,
          "container": "MP4",
          "codec": "H264"
        }
      ],
      "name": "Canada_Geese_Family",
      "reference_id": null,
      "long_description": null,
      "duration": 49633,
      "economics": "AD_SUPPORTED",
      "published_at": "2017-06-05T11:20:52.412Z",
      "text_tracks": [],
      "updated_at": "2017-06-05T12:06:55.121Z",
      "thumbnail": "https://cf-images.us-east-1.prod.boltdns.net/v1/jit/57838016001/853641cb-d66b-4f08-bb02-8489b5fba897/main/160x90/24s816ms/match/image.jpg",
      "poster": "https://cf-images.us-east-1.prod.boltdns.net/v1/jit/57838016001/853641cb-d66b-4f08-bb02-8489b5fba897/main/1280x720/24s816ms/match/image.jpg",
      "offline_enabled": false,
      "link": null,
      "id": "5459968909001",
      "ad_keys": null,
      "thumbnail_sources": [
        {
          "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/jit/57838016001/853641cb-d66b-4f08-bb02-8489b5fba897/main/160x90/24s816ms/match/image.jpg"
        }
      ],
      "created_at": "2017-06-05T11:20:52.412Z"
    }
    
    

DRM

支持DRM,但與普通視頻攝取不同。你做不是需要在攝取配置文件中指定包裝。而是根據您帳戶的DRM設置自動打包。聯繫 Brightcove 支持為視頻的 DRM 打包設置默認值。

有關詳細信息,請參閱使用 DRM 攝取內容 .

帶水印的副本

帶水印的演繹得到支持。如果您希望在部分或全部視頻中添加水印,請聯繫Brightcove支持。

請注意,可以為靜態動態交付配置文件添加帶水印的再現,但是不是用於上下文感知編碼 (CAE) 配置文件。

攝取狀態

通過訂閱回調和/或查詢Status API以獲取作業的狀態,可以接收有關Dynamic Delivery提取處理的信息。

回呼

在提取請求中,您可以指定一個或多個回調URL,以接收有關提取過程結果的通知。您指定的 URL 應該適用於應用程序,而不是可以接受 POST 請求。通知將以 JSON 格式發送。

接收和解釋通知的詳細信息可以在通知

狀態API

您還可以使用Status API獲取提取作業的當前狀態。狀態消息僅適用於過去7天內提交的提取作業。

端點

視頻的所有狀態消息
    https://cms.api.brightcove.com/v1/accounts/:account_id/videos/:video_id/ingest_jobs
    
    
範例
    https://cms.api.brightcove.com/v1/accounts/57838016001/videos/5128433746001/ingest_jobs
    
    
特定作業的狀態消息
    https://cms.api.brightcove.com/v1/accounts/:account_id/videos/:video_id/ingest_jobs/:job_id
    
    
範例

回應

以下是當前正在處理的作業的示例響應。

    {
    "id": "7a196557-56ba-4218-ada5-e107ed554555",
    "state": "processing",
    "account_id": "57838016001",
    "video_id": "5128433746001",
    "error_code": null,
    "error_message": null,
    "updated_at": "2016-09-16T16:51:46.313Z",
    "started_at": "2016-09-16T16:51:22.258Z"
    }
    
    

這裡最重要的項目是:

  • state : 工作狀態 ( processing | publishing | finished | failed - 當這項工作完成並且視頻可以播放時,state finished )
  • error_code error_message : 為了成功的工作,這些將是null ;對於失敗的作業,您將收到一個錯誤代碼和一條解釋性消息

這是一個失敗的作業的狀態消息的示例,用於比較:

    {
    "id": "bc9dfb58-d502-43d5-97e4-41f3dcd44265",
    "state": "failed",
    "account_id": "57838016001",
    "video_id": "5128710227001",
    "error_code": "NoMediaError",
    "error_message": "Audio-only output was requested on a file that only contains video.",
    "updated_at": "2016-09-16T20:30:58.016Z",
    "started_at": "2016-09-16T20:29:14.139Z"
    }
    
    

上下文感知編碼

上下文感知編碼(CAE)是Brightcove開發的一項技術,用於在轉碼過程中分析源視頻,並根據視頻的複雜性和所提供的一組邊界參數(最小再現次數,最大比特率)生成最佳的再現和比特率集。等)。

要了解如何使用 CAE 配置文件,請參閱上下文感知編碼 .

多個音軌

可以啟用為動態投放設置的帳戶,以允許視頻有多個音軌。

若要將多個音軌與單一標題建立關聯,在以下幾個關鍵案例中很有用:

  • 以不同語言播放相同的影片,讓全球範圍更廣 
  • 為視障人士提供口述影像

有關使用此功能的詳細信息,請參閱多個音軌 .

樣例代碼

學習服務提供了幾個示例應用程序,這些應用程序提供了一個網絡界面並發送Dynamic Ingest API通過 PHP 代理請求。查看示例應用

此外,以下 GitHub 存儲庫包含 Java、Python 和 C# 的示例代碼 - 請注意,此示例代碼是不支持通過 Brightcove:

限制

  • 對於分段視頻類型(HLS和DASH),某些播放器無法處理音頻和視頻流長度相差超過分段持續時間的情況。如果您遇到這種情況,請嘗試使用較短的區段長度。