Wiedergabebeschränkungen bei Live-Streams

In diesem Thema erfahren Sie, wie Sie Wiedergabebeschränkungen bei Livestreams verwenden.

Einleitung

Wiedergabebeschränkungen können für einen Live-Auftrag aktiviert werden, um den durch DRM und/oder AES-128-Verschlüsselung gebotenen Schutz zu erweitern:

  • Beschränken der Wiedergabe auf einen bestimmten Benutzeragenten
  • Begrenzung der Anzahl der IP-Adressen
  • Begrenzung der Gesamtzahl der Benutzer

Um umfassende Einschränkungen zu erhalten, können Sie diese mit der Playback Rights API konfigurieren. In diesem Fall würden Sie die playback_rights_id mit einem Video. Einzelheiten finden Sie im Einschränkungen auf Asset-Ebene Abschnitt der Übersicht: Dokument „Brightcove Playback Restrictions“

Für Laufzeitbeschränkungen können Sie die JSON Web Token (JWT)-Ansprüche angeben. Zu diesen Einschränkungen gehören Stream-Parallelität und Gerätebeschränkungen. Einzelheiten finden Sie im Laufzeitbeschränkungen Abschnitt der Übersicht: Dokument „Brightcove Playback Restrictions“

Bei Livestreams können Sie auch die DRM-CRT für einen Benutzer überschreiben. Einzelheiten finden Sie im Lizenzschlüsselschutz Abschnitt der Übersicht: Dokument „Brightcove Playback Restrictions“

Egal für welchen Modus Sie sich entscheiden, die Jobanfrage muss Folgendes enthalten: videocloud.video -Attribut, damit ein Video Cloud-Video erstellt und mit dem Live-Job verknüpft wird. Die playback_rights_id -Attribut kann im Video Cloud-Video aktualisiert werden, um die Wiedergabebeschränkungen über das CMS-API.

Sie müssen auch Erstellen eines JSON-Webtokens (JWT) mit den entsprechenden Ansprüchen. Das JWT muss in alle Lizenzserveranforderungen eingeschlossen werden. Wenn Sie einen eigenen Player implementieren, müssen Sie diesen Wert entweder in a BCOV-Auth Kopfzeile oder bcov_auth Abfrageparameter (zusätzlich zum DRM-Token).

Einen Live-Auftrag mit Studio erstellen

Sie können einen Live-Auftrag erstellen, der die Wiedergabebeschränkungen in Video Cloud Studio nutzt.

  1. Die Einzelheiten zum Erstellen von Live-Streams finden Sie im Dokument Create a Live Stream Using the Brightcove Live API.
  2. Erweitern Sie in Studio beim Erstellen Ihres Live-Events die Erweiterte Optionen Abschnitt.

  3. Wählen Sie für Content Encryption eine der folgenden Optionen:

    • AES-128
    • Verwaltung digitaler Rechte (DRM)
    AES-128 Verschlüsselung
    AES-128 Verschlüsselung

    Einzelheiten finden Sie unter Erweiterte Optionen konfigurieren Abschnitt der Erstellen und Verwalten von Live-Events mit dem Live-Modul dokumentieren.

  4. Um den Wiedergabeschutz zu erweitern, aktivieren Sie das Kästchen Wiedergabebeschränkungen aktivieren.

    Wiedergabebeschränkungen aktivieren
    Wiedergabebeschränkungen aktivieren

    Die Stellenanfrage muss ein videocloud.video Attribut enthalten, damit ein Video Cloud-Video erstellt und mit dem Live-Job verknüpft wird. Die playback_rights_id -Attribut kann im Video Cloud-Video aktualisiert werden, um die Wiedergabebeschränkungen über das CMS-API.

Erstellen eines Live-Auftrags mit der Live-API

Sie können einen Live-Auftrag erstellen, der die Wiedergabebeschränkungen mit der Brightcove Live-API nutzt.

  1. Sehen Sie sich die Details zur Erstellung von Live-Streams im Dokument Erstellen und Verwalten von Live-Events mit dem Live-Modul an.
  2. Überprüfen Sie die neuen Felder, die zum Hinzufügen von Wiedergabebeschränkungen zu einem Live-Auftrag verwendet werden:

    • drm Objekt:

      require_playback_token(boolesch)
      Playback Auth JWT wird benötigt, wenn eine Lizenz angefordert wird.
      check_playback_rights(boolesch)
      Playback Auth JWT wird benötigt, wenn eine Lizenz angefordert wird. Verwendet die mit Video oder JWT verknüpfte Wiedergaberechte-ID, um Einschränkungen durchzusetzen.
    • videocloud.video Objekt:

      playback_rights_id(Zeichenfolge)
      Verknüpft bestimmte Wiedergabebeschränkungen mit einem Video.
  3. Erstellen Sie einen Live-Auftrag mit der Brightcove-Live-API.

    Musteranfrage und -antwort

    Unten sehen Sie ein Beispiel für einen Live-API-Anforderungstext zum Erstellen eines Live-Jobs mit Wiedergabebeschränkungen.

    Beispielanfragetext

    {
      "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
      }
    }

    Beispielantwort

    Die hervorgehobene Zeile enthält das Video id dass du die hinzufügen musst 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
      }
    }

Einschränkungen zum Live-Job hinzufügen

Nachdem Sie den Livestream erstellt haben, können Sie dem Video, das für den Live-Job erstellt wurde, mithilfe der Schaltfläche Wiedergabebeschränkungen hinzufügen CMS-API.

CMS-API-Anfrage

Um dem Video die Wiedergaberechte-ID hinzuzufügen, senden Sie eine Video aktualisieren Anfrage an die CMS-API mit dem folgenden Anfragetext:

{
	"playback_rights_id": "your playback_rights_id"
}

Liefere den Stream

Wenn Sie den Brightcove-Webplayer oder eines der nativen Brightcove-Player-SDKs zum Bereitstellen des Livestreams verwenden, ist die Implementierung für Wiedergabebeschränkungen dieselbe wie für VOD. Siehe Folgendes: