Support Kontakt Support | Systemstatus Systemstatus

Überblick: Dynamic Ingest API

In diesem Thema lernen Sie, wie Sie das Dynamic Ingest API Videos aufnehmen, damit sie über Dynamic Delivery bereitgestellt werden können. Beachten Sie, dass diese Anleitung für die meisten ist Video Cloud Konten, die sich auf dem Dynamic Delivery-Aufnahmesystem befinden. Personen mit älteren Konten, die sich noch im Legacy-Ingest-System befinden, sollten zu gehen Dynamic Ingest API Vermächtnis stattdessen.

Einführung

Brightcove's Dynamic Ingest API basiert auf Funktionen, bei denen Videoquelldateien vom Speicherort des Kunden heruntergeladen werden und bestimmte Wiedergabeversionen der Quelldateien erstellt werden. (Es gibt auch eine Option zu Lade deine Quelldateien hoch zu einem temporären Standort, an dem Dynamic Ingest auf sie zugreifen kann.) Die Plattform ist Cloud-zentriert, global verteilt und basiert auf modernen Verfahren, um bestmögliche Konsistenz und Geschwindigkeit zu gewährleisten.

Siehe auch die API-Referenz.

Workflow-Übersicht

Bei der gesamten Transkodierung und Speicherung von Medien werden eine Reihe von Systemen / Technologien verwendet. Sie sind:

  • CMS API: Erstellt ein Videoobjekt zur Verwendung in der DI-API
  • Zencoder: Transcodiert das Video und erstellt mehrere Wiedergabeversionen
  • Amazon S3: Verschiebt den Master und die Wiedergabe basierend auf den Profileinstellungen in den Speicher
  • Alle Produkte: Speichert erforderliche Informationen zu dem Video

Nach der ersten Transkodierung haben Sie folgende Aktionen, die Sie auf dem Medium ausführen können:

Geschäftstätigkeit

Wenn Sie die DI-API verwenden, führen Sie verschiedene Vorgänge durch, z. B. das Lesen eines Aufnahmeprofils und das Schreiben von Informationen zum Einlesen in Ihr Konto. Im Folgenden finden Sie eine vollständige Liste der für DI-Aufgaben erforderlichen Vorgänge:

    • 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

Verwenden Sie Studio, um Client-Anmeldeinformationen zu erhalten Admin-Tools oder sehen Sie eines der folgenden Dokumente:

Best Practices

[VORLÄUFIGE VOLLAUTOMATISCHE TEXTÜBERSETZUNG - muss noch überarbeitet werden. Wir bitten um Ihr Verständnis.] Für eine detailliertere Anleitung gehen Sie bitte auf: Dynamic Ingest API: Best Practices.

Gültige Quellspeicherorte

Pull-basierte Einnahme

Dynamic Ingest kann Quellvideodateien von folgenden Quellen abrufen: HTTP / HTTPS, S3 und FTP - mit oder ohne Authentifizierung

Beispiele:

  • http://example.com/path/to/input.avi
  • https://dl.dropboxusercontent.com/u/3641457/Bird_Titmouse.mp4
  • s3: //mein-bucket/video.mp4
  • ftp://server/file.mp4

Hinweise zu S3

Wenn sich deine Videos in einem geschützten S3-Bucket befinden, siehe Verwenden von Dynamic Ingest mit S3 Weitere Informationen zum Einrichten von Berechtigungen für Dynamic Ingest zum Zugriff auf Ihre Dateien

Hinweise zu FTP

Wenn sich Ihre Videos auf einem geschützten FTP-Server befinden, verwenden Sie die Standardmethode zum Übergeben des Benutzernamens und des Kennworts für die URL wie folgt:

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

Upload der Quelldatei

Sie können Ihre Dateien auch an einen sicheren, temporären Speicherort hochladen, von dem Dynamic Ingest sie abrufen kann. Für Details, siehe Quelldatei hochladen.

Spezielle Charaktere

Wenn Sie eine URL für angeben Video Cloud um Ihre Videos abzurufen, und Sie senden Anmeldeinformationen als Teil der URL, Sie brauchen, um Prozent-Kodierung bestimmte reservierte Sonderzeichen:

Sonderzeichen
Charakter Prozentkodiert
] % 5B
[ % 5D
? 3F%
/ 2F%
< 3C%
~ % 7E
# % 23
` % 6D
! % 21
@ % 40
$ % 24
% % 25
^ % 5E
machen auf % 26
* % 2A
( % 28
) % 29
+ % 2B
= % 3D
} % 7D
| 7C%
: % 3A
" % 22
; % 3B
' % 27
, 2C%
> % 3E
{ % 7B
Raum % 20

Beispielsweise:

    
        /* 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
      

Quelldateinamen

Alle Eingabe-URLs müssen ordnungsgemäß entsprechend codiert sein RFC 3986 wenn an Brightcove gesendet. Dies bedeutet, dass keine reservierte Charaktere gefunden im Pfad der URL sind Prozent codiert (Räume, zu denen codiert wird %20), und alle reservierten Zeichen, die in der Abfrage der URL gefunden werden, sind in Prozent kodiert (Räume, zu denen kodiert wird) + or %20, und + codiert werden %2B).

A vor-signiert S3 (v2 enthält Unterschrift, Läuft ab und AWSAccessKeyId, und v4 enthält X-Amz-Algorithmus, X-Amz-Anmeldeinformation, X-Amz-Datum, X-Amz-läuft ab, X-Amz-signierte Header, und X-Amz-Signatur) oder GCS (enthält Unterschrift, Läuft ab, und GoogleAccessId) url sollte schon richtig codiert sein und kann wie es ist verwendet werden.

Beispiel-Assets

Brightcove Learning Services bietet einige Beispielelemente, mit denen Sie experimentieren können, um mit Dynamic Ingest zu beginnen. Diese Elemente umfassen kurze Videos, Bilder und WebVTT-Untertitel in mehreren Sprachen:

Profil einlesen

Spezielle Ingest-Profile sind erforderlich, um dynamische Liefervideos zu erstellen. Sie werden ein paar finden Standard-Aufnahmeprofile in Ihrem Konto, wenn die dynamische Zustellung aktiviert ist, und diese werden empfohlen.

Sie können auch ein benutzerdefiniertes Dynamic Delivery-Profil zu Ihren Aufnahmeprofilen im Admin-Bereich von Studio hinzufügen - siehe Ingest-Profile für dynamische Lieferung erstellen für weitere Einzelheiten.

Beispiel für ein Dynamic Delivery-Profil

Im Folgenden finden Sie ein Beispiel für ein Dynamic Delivery-Profil, mit dem Sie beginnen können. Alles, was Sie tun müssen, ist zu ersetzen YOUR_ACCOUNT_ID mit Ihrer Konto-ID, und dann können Sie das Profil kopieren und in den Aufnahmeprofileditor einfügen.

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

Details zu den Standard-Dynamic Delivery-Profilen und -Darstellungen finden Sie unter Standard-Ingest-Profile für dynamische Lieferung

Videos aufnehmen

Für die Aufnahme von Videos sind zwei API-Anforderungen erforderlich:

  1. Ruf den CMS API um ein Videoobjekt in der Video Cloud System und erhalte seine ID
  2. Ruf den Dynamic Ingest API Geben Sie die URL für die Videoquelldatei an und geben Sie bei Bedarf weitere Dateien und Einstellungen für die Aufnahme an

Ein Beispielsatz für grundlegende Anforderungen würde wie folgt aussehen:

CMS API Anforderung

HTTP-Methode
POST
URL anfragen
https://cms.api.brightcove.com/v1/accounts/{account_id}/videos
Anfrage Körper
    {
    "name": "My First Dynamic Delivery Video"
    }
    
    

Die Antwortdaten enthalten das Video id , die in der nächsten Anfrage verwendet wird.

API-Anfrage einlesen

HTTP-Methode
POST
URL anfragen
https://ingest.api.brightcove.com/v1/accounts/{account_id}/videos/{video_id}/ingest-requests
Anfrage Körper
    {
      "master": {
        "url": "http://host/master.mp4"
      },
      "profile": "DynamicDeliverIngestProfile",
      "callbacks": [
        "http://mydomain.com/di-callbacks.php"
      ]
    }
    

Wichtige Informationen

  • Wenn Sie das nicht einschließen profile In diesem Feld wird das Standardprofil dieses Kontos verwendet. Wir empfehlen, die Konto-Standardeinstellung zu verwenden, es sei denn, Sie müssen für verschiedene Arten von Videos unterschiedliche Profile verwenden. Stellen Sie sicher, dass der Kontostandard auf das Profil festgelegt ist, das Sie (am häufigsten) verwenden möchten.
  • Unser callbacks Das Feld ist optional, aber wir empfehlen dringend, es als den besten Weg zu verwenden, um den Fortschritt von Aufnahme-Aufträgen zu verfolgen. Sehen unten Weitere Informationen zu Benachrichtigungen

Wiedergabeversionen anzeigen

Sie können die Wiedergabeversionen für Ihr Video anzeigen, indem Sie auf die Schaltfläche klicken Medienmodul im Studio.

Um die vollständigen Eigenschaften der Wiedergabeversionen anzuzeigen, können Sie die CMS API Anfrage siehe unten.

Um URLs für die Wiedergabe abzurufen, können Sie die Playback API Anfrage siehe unten.

Ersetzen Sie ein Video

Um ein Video durch eine neue Version oder einen neuen Satz von Wiedergabeversionen zu ersetzen, muss der Dynamic Ingest API Anruf ist genau das gleiche wie es wäre neue Videos aufnehmen - Der einzige Unterschied besteht darin, dass Sie keinen vorherigen Anruf bei der CMS API um das Videoobjekt in der Video Cloud System und bekomme eine ID dafür. Wenn die Quellvideodatei unter der angegebenen URL dieselbe ist, die ursprünglich aufgenommen wurde, erhalten Sie einfach einen neuen Satz von Wiedergabeversionen. Wenn die Quelldatei neu ist, ersetzen Sie das vorhandene Video. Alle Videos bleiben mit den vorhandenen Wiedergabeversionen spielbar, bis die erneute Transkodierung abgeschlossen ist.

Siehe die Arbeitsprobe hier.

Video erneut umcodieren

Wenn Sie gewählt haben Archiviere einen Master wenn du das Video durch die aufgenommen hast Dynamic Ingest API oder das Studio-Upload-Modul, dann können Sie das Video auch vom Master neu übertragen. Auch hier ist die URL für die Ingest-Anfrage gleich, aber der Anfragetext enthält Folgendes:

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

Bild aufnehmen

Statt Poster- und Thumbnail-Bilder während der Transkodierung aufzunehmen, können Sie Ihre eigenen Bilder mit der Aufnahmeanforderung aufnehmen oder später in einer separaten Anfrage hinzufügen.

Beispiel für einen Anfragetext

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

Benachrichtigungen für die Aufnahme von Bild-Assets

Im Folgenden finden Sie Beispiele für die Benachrichtigungen, die Sie speziell für Bildaufnahmen erhalten.

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

Untertitel aufnehmen

Untertitel im WebVTT-Format können Ihrem Video mit der ersten Aufnahme oder einer späteren Anfrage hinzugefügt werden.

Beispiel für einen Anfragetext

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

Sidecar-Text-Tracks werden in CMS- oder Playback-Antworten genauso angezeigt wie bei nicht-dynamischen Delivery-Videos:

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

Text-Tracks werden auch in HLS- und DASH-Manifesten angezeigt:

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"
    
    

DASH

    <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>
    
    

Benachrichtigungen für Text-Track-Assets

Im Folgenden finden Sie Beispiele für Benachrichtigungen, die sich auf die Aufnahme von Textdateien beziehen.

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

Beispielplayer mit Textspuren (Englisch und Spanisch)

Dynamisches Liefervideo Player

Sidecar-Untertitel in einer iOS-App

Dynamic Delivery Sidecar-Beschriftungen
Dynamic Delivery Sidecar-Beschriftungen

Dynamic Delivery Renditionen abrufen

Wenn Sie Informationen zu den dynamischen Wiedergabeversionen für ein Video abrufen möchten, senden Sie eine GET-Anforderung an Folgendes:

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

Beispielantwort

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

Abrufen von URLs für die Wiedergabe

Wenn Sie Informationen zu den dynamischen Wiedergabeversionen für ein Video abrufen möchten, senden Sie eine GET-Anforderung an Folgendes:

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

Beispielantwort

    {
      "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 wird unterstützt, funktioniert aber anders als beim normalen Video-Ingest. Sie machen nicht müssen die Verpackung im Aufnahmeprofil angeben. Stattdessen basiert die Verpackung automatisch auf den DRM-Einstellungen für Ihr Konto. Wenden Sie sich an den Brightcove-Support Festlegen der Standardeinstellungen für das DRM-Packen Ihrer Videos

Für weitere Einzelheiten siehe Inhalt mit DRM aufnehmen.

Mit Wasserzeichen versehene Darstellungen

Mit Wasserzeichen versehene Darstellungen sind unterstützt. Wenn Sie einigen oder allen Ihrer Videos Wasserzeichen hinzufügen möchten, wenden Sie sich an den Brightcove-Support.

Beachten Sie, dass mit Wasserzeichen versehene Wiedergaben für statische Dynamic Delivery-Profile hinzugefügt werden können nicht für CAE-Profile (Context Aware Encoding).

Status einlesen

Sie können Informationen zu Ihrer Dynamic Delivery-Verarbeitung empfangen, indem Sie Rückrufe abonnieren und / oder eine Status-API abfragen, um den Status des Jobs abzurufen.

Rückrufe

In Ihrer Ingest-Anforderung können Sie eine oder mehrere Callback-URLs angeben, um Benachrichtigungen über die Ergebnisse des Ingest-Prozesses zu erhalten. Die von Ihnen angegebenen URLs sollten für Apps gelten, die POST-Anfragen akzeptieren können. Benachrichtigungen werden im JSON-Format gesendet.

Details zum Empfangen und Dolmetschen von Benachrichtigungen finden Sie in Benachrichtigungen

Status-API

Sie können den aktuellen Status von Ingest-Jobs auch mithilfe der Status-API abrufen. Statusmeldungen sind nur für Ingest-Jobs verfügbar, die innerhalb der letzten 7-Tage gesendet wurden.

Endpunkte

Alle Statusmeldungen für ein Video
    https://cms.api.brightcove.com/v1/accounts/:account_id/videos/:video_id/ingest_jobs
    
    
Beispiel
    https://cms.api.brightcove.com/v1/accounts/57838016001/videos/5128433746001/ingest_jobs
    
    
Statusmeldung für einen bestimmten Job
    https://cms.api.brightcove.com/v1/accounts/:account_id/videos/:video_id/ingest_jobs/:job_id
    
    
Beispiel

Antworten

Im Folgenden finden Sie eine Beispielantwort für einen Job, der gerade verarbeitet wird.

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

Die wichtigsten Punkte hier sind:

  • state : der Status des Jobs ( processing | publishing | finished | failed - Wenn dieser Job abgeschlossen und das Video spielbereit ist, state wird sein finished )
  • error_code und error_message Für einen erfolgreichen Job werden das sein null ; Bei fehlgeschlagenen Jobs erhalten Sie einen Fehlercode und eine erklärende Nachricht

Hier ist ein Beispiel für eine Statusmeldung für einen fehlgeschlagenen Job zum Vergleich:

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

Context Aware Encoding

Context Aware Encoding (CAE) ist eine von Brightcove entwickelte Technologie zur Analyse des Quellvideos während der Transcodierung und zur Erzeugung eines optimalen Satzes von Wiedergaben und Bitraten basierend auf der Komplexität des Videos und einer Reihe von bereitgestellten Begrenzungsparametern (minimale Anzahl von Wiedergaben, maximale Bitrate) , usw.).

Informationen zum Verwenden von CAE-Profilen finden Sie unter Context Aware Encoding.

Mehrere Audiospuren

Für Dynamic Delivery eingerichtete Konten können aktiviert werden, um mehrere Audiotracks für Videos zuzulassen.

Die Möglichkeit, mehrere Audiotracks mit einem einzelnen Titel zu verknüpfen, kann in einigen wichtigen Szenarien nützlich sein:

  • Wiedergabe des gleichen Videos in verschiedenen Sprachen für eine größere Reichweite weltweit
  • Bereitstellung von Audio mit Beschreibungen für Sehbehinderte

Einzelheiten zur Verwendung dieser Funktion finden Sie unter Mehrere Audiospuren.

Beispielcode

Lerndienste bieten mehrere Beispiel-Apps, die eine Webschnittstelle bereitstellen und senden Dynamic Ingest API Anfragen über einen PHP-Proxy. Sehen Sie sich die Beispiel-Apps an.

Darüber hinaus enthalten die folgenden GitHub-Repositorys Beispielcode in Java, Python und C #. Beachten Sie, dass dieser Beispielcode dies ist nicht unterstützt von Brightcove:

Einschränkungen

  • Für segmentierte Videotypen (HLS und DASH) einige players behandeln nicht den Fall, in dem sich die Audio- und Videostreamlängen um mehr als die Dauer eines Segments unterscheiden. Versuchen Sie in diesem Fall, eine kürzere Segmentlänge zu verwenden.

Seite zuletzt aktualisiert am 12. Juni 2020