直播流的播放限制

在本主題中,您將學習如何對直播流使用播放限制。

簡介

可以為實時作業啟用播放限制以擴展 DRM 和/或 AES-128 加密提供的保護,包括:

  • 將播放限制為特定的用戶代理
  • 限制IP地址數量
  • 限制總用戶

對於一組全面的限制,您可以使用播放權限 API 進行配置。在這種情況下,您可以關聯playback_rights_id與視頻。有關詳細信息,請參閱概述的 資產級別限制 部分:Brightcove 播放限製文檔。

對於運行時限制,您可以指定 JSON Web 令牌 (JWT) 聲明。這些限制包括流並發性和設備限制。有關詳細信息,請參閱概述的 運行時限制 部分:Brightcove 播放限製文檔。

對於實時流,您還可以覆蓋用戶的 DRM CRT。有關詳細信息,請參閱概述的 許可證密鑰保護 部分:Brightcove 播放限製文檔。

無論您選擇哪種模式,工作請求都必須包括videocloud.video屬性,以便創建 Video Cloud 視頻並將其鏈接到實時作業。的playback_rights_id可以在“視頻雲”視頻上更新屬性,以通過更改播放限制CMS API

您還需要 創建一個具有適當聲明的 JSON Web 令牌 (JWT) 。JWT將需要包含在任何許可證服務器請求中。如果您要實現自己的播放器,則需要在任一BCOV-Auth標頭或bcov_auth查詢參數(除了DRM令牌)。

使用 Studio 創建實時作業

您可以在 Video Cloud Studio 中創建一個利用播放限制的實時作業。

  1. 使用 Brightcove Live API 文檔創建直播流 中查看有關創建直播流的詳細信息。
  2. 在 Studio 中,當您創建直播活動時,展開 高級選項 部分。

  3. 對於 Content Encryption ,選擇:

    • AES-128
    • 數位版權管理 (DRM)
    AES-128 加密
    AES-128 加密

    有關詳細信息,請參閱配置高級選項的部分使用直播模塊創建和管理直播活動文檔。

  4. 要擴展播放保護,請選中 啟用播放限制複選框。

    啟用播放限制
    啟用播放限制

    工作請求必須包括videocloud.video屬性,以便創建 Video Cloud 視頻並將其鏈接到實時作業。的playback_rights_id可以在“視頻雲”視頻上更新屬性,以通過更改播放限制CMS API

使用 Live API 創建 Live 作業

您可以使用 Brightcove Live API 創建一個利用播放限制的實時作業。

  1. 使用實時模塊文檔創建和管理實時事件 中查看有關創建實時流的詳細信息。
  2. 查看用於向實時作業添加播放限制的新字段:

    • drm目的:

      require_playback_token(布爾值)
      請求授權時,需要播放驗證 JWT。
      check_playback_rights(布爾值)
      請求授權時,需要播放驗證 JWT。使用與視頻或JWT關聯的播放權限ID來實施限制。
    • videocloud.video目的:

      playback_rights_id(串)
      將指定的播放限制與視頻相關聯。
  3. 使用 Brightcove Live API創建實時作業。

    樣品要求和回應

    下面是一個示例實時 API 請求正文,用於創建具有播放限制的實時作業。

    請求主體範例

    {
      "live_stream": true,
      "region": "us-west-2",
      "reconnect_time": 300,
      "ad_insertion": false,
      "static": false,
      "drm": {
        "modes":["all"],
        "require_playback_token": true,
        "check_playback_rights": true
      },
      "encryption": {
        "check_playback_rights": true,
        "method": "aes-128",
        "type": "internal",
        "key": "24432646294A404E635266556A586E32"
      },
      "live_dvr_sliding_window_duration": 300,
      "videocloud": {
        "live_to_vod": true,
        "video": {
            "name": "Test EPA",
            "description": "",
            "long_description": "",
            "tags": [],
            "reference_id": "",
            "link": {
                "url": "",
                "text": ""
            },
            "custom_fields": {}
          }
      },  
      "outputs": [{
          "label": "hls720p",
          "live_stream": true,
          "height": 720,
          "video_bitrate": 2000,
          "segment_seconds": 6,
          "keyframe_interval": 60
      },
      {
          "label": "hls480p",
          "live_stream": true,
          "height": 480,
          "video_bitrate": 1000,
          "segment_seconds": 6,
          "keyframe_interval": 60
      }
    }

    範例回應

    高亮行包含視頻id您需要添加playback_rights_id

    {
      "id": "f47487cf81f84764b280fbfaefed524a",
      "outputs": [
          {
              "id": "0-f47487cf81f84764b280fbfaefed524a",
              "label": "hls720p"
          },
          {
              "id": "1-f47487cf81f84764b280fbfaefed524a",
              "label": "hls480p"
          },
          {
              "id": "2-f47487cf81f84764b280fbfaefed524a",
              "playlist_type": "defaultS3",
              "type": "playlist",
              "drm": {
                  "token": "eyJh...axy8",
                  "modes": [
                      {
                          "type": "fairplay",
                          "key_system": "com.apple.fps.1_0",
                          "license_url": "https://license-proxy-qa.alive.us-west-2.qa.deploys.brightcove.com/lic/fp?token=eyJh...axy8",
                          "certificate_url": "https://license-proxy-qa.alive.us-west-2.qa.deploys.brightcove.com/cert/fp?token=eyJh...axy8",
                          "filename": "playlist_fp.m3u8",
                          "dvr_filename": "playlist_fp_dvr.m3u8",
                          "playback_url": "https://playback-qa.a-live.io/f47487cf81f84764b280fbfaefed524a/us-west-2/NA/playlist_fp.m3u8",
                          "playback_url_dvr": "https://playback-qa.a-live.io/f47487cf81f84764b280fbfaefed524a/us-west-2/NA/playlist_fp_dvr.m3u8",
                          "playback_added_cdns": []
                      },
                      {
                          "type": "widevine",
                          "key_system": "com.widevine.alpha",
                          "license_url": "https://license-proxy-qa.alive.us-west-2.qa.deploys.brightcove.com/lic/wv?token=eyJh...axy8",
                          "filename": "playlist_wv.m3u8",
                          "dvr_filename": "playlist_wv_dvr.m3u8",
                          "playback_url": "https://playback-qa.a-live.io/f47487cf81f84764b280fbfaefed524a/us-west-2/NA/playlist_wv.m3u8",
                          "playback_url_dvr": "https://playback-qa.a-live.io/f47487cf81f84764b280fbfaefed524a/us-west-2/NA/playlist_wv_dvr.m3u8",
                          "playback_added_cdns": []
                      },
                      {
                          "type": "playready",
                          "key_system": "com.microsoft.playready",
                          "license_url": "https://license-proxy-qa.alive.us-west-2.qa.deploys.brightcove.com/lic/pr?token=eyJh...axy8",
                          "filename": "playlist.mpd",
                          "dvr_filename": "playlist_dvr.mpd",
                          "playback_url": "https://playback-qa.a-live.io/f47487cf81f84764b280fbfaefed524a/us-west-2/NA/playlist.mpd",
                          "playback_url_dvr": "https://playback-qa.a-live.io/f47487cf81f84764b280fbfaefed524a/us-west-2/NA/playlist_dvr.mpd",
                          "playback_added_cdns": []
                      }
                  ],
                  "token_expires_in": 43200,
                  "require_playback_token": true,
                  "check_playback_rights": true
              }
          }
      ],
      "stream_url": "rtmp://ep8-usw2.a-live.io:1935/f47487cf81f84764b280fbfaefed524a",
      "stream_name": "alive",
      "static": false,
      "event_length": 93600,
      "job_videocloud_asset_id": "70701312966202",
      "encryption": {},
      "drm_enabled": true,
      "drm": {
        "token": "eyJh...axy8",
        "modes": [
          {
            "type": "fairplay",
            "key_system": "com.apple.fps.1_0",
            "license_url": "https://license-proxy-qa.alive.us-west-2.qa.deploys.brightcove.com/lic/fp?token=eyJhb...axy8",
            "certificate_url": "https://license-proxy-qa.alive.us-west-2.qa.deploys.brightcove.com/cert/fp?token=eyJhb...axy8",
            "filename": "playlist_fp.m3u8",
            "dvr_filename": "playlist_fp_dvr.m3u8",
            "playback_url": "https://playback-qa.a-live.io/f47487cf81f84764b280fbfaefed524a/us-west-2/NA/playlist_fp.m3u8",
            "playback_url_dvr": "https://playback-qa.a-live.io/f47487cf81f84764b280fbfaefed524a/us-west-2/NA/playlist_fp_dvr.m3u8",
            "playback_added_cdns": []
          },
          {
            "type": "widevine",
            "key_system": "com.widevine.alpha",
            "license_url": "https://license-proxy-qa.alive.us-west-2.qa.deploys.brightcove.com/lic/wv?token=eyJhb...axy8",
            "filename": "playlist_wv.m3u8",
            "dvr_filename": "playlist_wv_dvr.m3u8",
            "playback_url": "https://playback-qa.a-live.io/f47487cf81f84764b280fbfaefed524a/us-west-2/NA/playlist_wv.m3u8",
            "playback_url_dvr": "https://playback-qa.a-live.io/f47487cf81f84764b280fbfaefed524a/us-west-2/NA/playlist_wv_dvr.m3u8",
            "playback_added_cdns": []
          },
          {
            "type": "playready",
            "key_system": "com.microsoft.playready",
            "license_url": "https://license-proxy-qa.alive.us-west-2.qa.deploys.brightcove.com/lic/pr?token=eyJh...axy8",
            "filename": "playlist.mpd",
            "dvr_filename": "playlist_dvr.mpd",
            "playback_url": "https://playback-qa.a-live.io/f47487cf81f84764b280fbfaefed524a/us-west-2/NA/playlist.mpd",
            "playback_url_dvr": "https://playback-qa.a-live.io/f47487cf81f84764b280fbfaefed524a/us-west-2/NA/playlist_dvr.mpd",
            "playback_added_cdns": []
          }
        ],
        "token_expires_in": 43200,
        "require_playback_token": true,
        "check_playback_rights": true
      }
    }

為實時作業添加限制

創建直播流後,您可以使用 CMS API添加為直播作業創建的視頻的播放限制。

CMS 應用程式介面請求

要將播放權限ID添加到視頻,請發送更新影片帶有以下請求正文的CMS API請求:

{
	"playback_rights_id": "your playback_rights_id"
}

傳送流

如果您使用 Brightcove 網絡播放器或 Brightcove 本機播放器 SDK 之一來傳送實時流,播放限制的實施與 VOD 相同。請參閱以下內容: