Images et API d'ingestion dynamique

Cette rubrique explique comment capturer ou ingérer des images pour une vidéo.

Introduction

Vous pouvez ingérer deux catégories d'images :

  • Affiches et vignettes principales/par défaut, qui sont définies dans le corps de la demande en tant qu' poster thumbnail objets (les détails des champs et de la syntaxe se trouvent ci-dessous)
  • Images variantes multilingues, définies dans un images tableau d'objets (les détails des champs et de la syntaxe se trouvent ci-dessous)

Les images variantes multilingues peuvent être de six types :

affiche
L'image de l'affiche s'affiche dans Brightcove Player avant que l'utilisateur ne lise la vidéo. Il s'agit généralement d'une image capturée à partir de la vidéo, mais ce n'est pas obligatoire.
la vignette
L'image miniature s'affiche dans les listes de lecture, les écrans de fin, etc. Il s'agit généralement d'une image capturée à partir de la vidéo, mais ce n'est pas obligatoire.
portrait
Une image généralement utilisée comme affiche en mode portrait sur les téléphones et autres appareils. Requis pour Balise de Brightcove. Les détails de la spécification sont dans le table au dessous de.
carré
Une image utilisée généralement comme logo de chaîne ou dans les affichages de grille. Requis pour Balise de Brightcove. Les détails de la spécification sont dans le table au dessous de.
large
Une image généralement utilisée comme affiche en mode paysage sur les téléphones et autres appareils. Requis pour Balise de Brightcove. Les détails de la spécification sont dans le table au dessous de.
ultra-large
Une image généralement utilisée comme affiche sur des écrans ultra-larges tels que des téléviseurs. Requis pour Balise de Brightcove. Les détails de la spécification sont dans le table au dessous de.

Caractéristiques

Les tableaux ci-dessous fournissent des spécifications pour les images.

Détails de l'image principale
Type Format Rapport d'aspect (L/H) Largeur minimale (pixels)
Affiche png ou jpg 16:9 ou 4:3 640
La vignette png ou jpg 16:9 ou 4:3 160
Détails de l'image de la variante multilingue
Type Format Rapport d'aspect (L/H) Largeur minimale (pixels)
affiche jpg ou png match vidéo aucun
la vignette jpg ou png match vidéo aucun
portrait jpg ou png 0,6667 (2x3) 500
carré jpg ou png 1,0 (1x1) 500
large jpg ou png 1.7778 (16x9) 2000
ultra-large jpg ou png 2.3333 21x9 2000

Il existe deux manières différentes d'ajouter des affiches principales et des vignettes à vos vidéos à l'aide de l'API Dynamic Ingest :

  • Capturer des images au milieu de la vidéo pendant le transcodage (actuellement cela s'applique à poster et thumbnail images. D'autres types doivent être ingérés). La capture d'images pour l'affiche principale et la vignette peut être utilisée avec les images ingérées pour les variantes multilingues.
  • Ingérez vos propres images, soit en même temps que vous ingérez la vidéo, soit séparément. Notez que si vous ingérez des images après avoir ingéré la vidéo, vous devez attendre la fin du traitement vidéo avant d'ingérer les images.

Configuration

La configuration des requêtes d'ingestion dynamique est la même, que vous ingérez une vidéo, des images, un fichier WebVTT ou tous :

URL de demande
    https://ingest.api.brightcove.com/v1/accounts/{account_id}/videos/{video_id}/ingest-requests
Authentification
L'authentification nécessite un jeton d'accès transmis en tant que Bearer jeton dans un Authorization entête:
    Authorization: Bearer {access_token}

Remarque sur S3

Si vos images seront extraites d'un compartiment S3 protégé, vous devrez définir une stratégie de compartiment pour permettre à Video Cloud d'accéder aux fichiers. Voir Utilisation de l'ingestion dynamique avec S3 pour les détails.

Variantes multilingues

Vous pouvez fournir différentes versions d'images à utiliser pour différentes langues. Ceci est géré par Balise de Brightcove pour les applications Brightcove Beacon. La mise en œuvre générale dans Brightcove Player nécessite actuellement un développement personnalisé.

La langue d'une image est spécifiée dans le language propriété détaillée dans la section suivante.

Ingérer des images

Voici les détails de l'ajout d'images personnalisées pour votre vidéo.

Champs d'image dans le corps de la requête

Comme indiqué ci-dessus, les affiches principales et les images miniatures sont spécifiées en tant qu'objets de niveau supérieur dans le corps de la demande. Les images variantes multilingues dans le corps de la demande d'ingestion sont spécifiées sous la forme d'un tableau d'objets. Les propriétés de l'objet sont détaillées dans les tableaux suivants.

Affiche principale et images miniatures
Propriété Description Type Obligatoire Exemple
url URL publique où l'image peut être récupérée Chaîne https://some.site.com/images/celtic-lullaby-large.png
width Largeur de l'image en pixels Numéro 1920
Height Hauteur de l'image en pixels Numéro 1080
Propriétés de l'objet image multilingue
Propriété Description Type Obligatoire Exemple
url Une URL à partir de laquelle Video Cloud peut récupérer l'image chaîne https://mysite.com/videos/video123/images/poster.png
language Code de langue de l'image à partir des balises secondaires dans https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry (la valeur par défaut peut être définie pour le compte en contactant le support Brightcove) ; si elle n'est pas incluse, la langue par défaut du compte sera utilisée. chaîne
variant Le type de cette image : poster | thumbnail | portrait | square | wide | ultra-wide chaîne wide
height numéro 2160
width numéro 3840

Exemple de corps de requête

L'exemple de corps de demande ci-dessous comprend uniquement les champs d'image. D'autres champs d'ingestion peuvent également être inclus.

{
			"poster": {
				"url": "https://some.site.com/images/celtic-lullaby-large.png",
				"width": 1400,
				"height": 1400
			},
			"thumbnail": {
				"url": "https://some.site.com/images/celtic-lullaby-large.png",
				"width": 160,
				"height": 90
			},
	    "images":[
        {
            "url":"https://apis.support.brightcove.com/assets/images/dynamic-ingest/test-images/poster.jpg",
            "variant": "poster",
            "height": 1080,
            "width": 1920
        },
        {
            "url":"https://apis.support.brightcove.com/assets/images/dynamic-ingest/test-images/thumbnail.jpg",
            "variant": "thumbnail",
            "height": 108,
            "width": 292
        },
        {
            "url":"https://apis.support.brightcove.com/assets/images/dynamic-ingest/test-images/square.jpg",
            "language": "de",
            "variant": "square",
            "height": 570,
            "width": 570
        },
        {
            "url":"https://apis.support.brightcove.com/assets/images/dynamic-ingest/test-images/wide.jpg",
            "language": "fr",
            "variant": "wide",
            "height": 1440,
            "width": 2560
        },
        {
            "url":"https://apis.support.brightcove.com/assets/images/dynamic-ingest/test-images/portrait.jpg",
            "language": "es",
            "variant": "portrait",
            "height": 1200,
            "width": 800
        },
        {
            "url":"https://apis.support.brightcove.com/assets/images/dynamic-ingest/test-images/ultra-wide.jpg",
            "language": "hi",
            "variant": "ultra-wide",
            "height": 1646,
            "width": 3840
        }
      ]
    }
Exemple de réponse

Vous trouverez ci-dessous une réponse à un API CMS Demande d'obtention d'images vidéo. Voir Récupération des données d'image au dessous de.

{
  "thumbnail.en": {
    "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/static/3676484086001/4fb9012e-7b20-4744-9fff-512634d7b2a5/5b593403-01a7-4a18-978e-cad13647cf99/292x108/match/image.jpg",
    "sources": [
      {
        "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/static/3676484086001/4fb9012e-7b20-4744-9fff-512634d7b2a5/5b593403-01a7-4a18-978e-cad13647cf99/292x108/match/image.jpg",
        "height": 108,
        "width": 292
      }
    ]
  },
  "ultra-wide.en": {
    "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/static/3676484086001/4fb9012e-7b20-4744-9fff-512634d7b2a5/48900952-8e0e-4fc6-bd4f-116809195ab7/2000x857/match/image.jpg",
    "sources": [
      {
        "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/static/3676484086001/4fb9012e-7b20-4744-9fff-512634d7b2a5/48900952-8e0e-4fc6-bd4f-116809195ab7/2000x857/match/image.jpg",
        "height": 857,
        "width": 2000
      }
    ]
  },
  "wide.en": {
    "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/static/3676484086001/4fb9012e-7b20-4744-9fff-512634d7b2a5/111fafb1-d754-49a9-9fc7-04a5637bb3d0/2000x1125/match/image.jpg",
    "sources": [
      {
        "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/static/3676484086001/4fb9012e-7b20-4744-9fff-512634d7b2a5/111fafb1-d754-49a9-9fc7-04a5637bb3d0/2000x1125/match/image.jpg",
        "height": 1125,
        "width": 2000
      }
    ]
  },
  "portrait.en": {
    "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/static/3676484086001/4fb9012e-7b20-4744-9fff-512634d7b2a5/d6c605ed-11db-45a1-a7a9-beeb7b4ead1d/500x750/match/image.jpg",
    "sources": [
      {
        "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/static/3676484086001/4fb9012e-7b20-4744-9fff-512634d7b2a5/d6c605ed-11db-45a1-a7a9-beeb7b4ead1d/500x750/match/image.jpg",
        "height": 750,
        "width": 500
      }
    ]
  },
  "poster.en": {
    "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/static/3676484086001/4fb9012e-7b20-4744-9fff-512634d7b2a5/35d3f294-b62e-46e5-874e-c0c85846d80a/1920x1080/match/image.jpg",
    "sources": [
      {
        "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/static/3676484086001/4fb9012e-7b20-4744-9fff-512634d7b2a5/35d3f294-b62e-46e5-874e-c0c85846d80a/1920x1080/match/image.jpg",
        "height": 1080,
        "width": 1920
      }
    ]
  },
  "square.en": {
    "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/static/3676484086001/4fb9012e-7b20-4744-9fff-512634d7b2a5/1f719d8b-ebe9-4f6a-b5f1-8906b220554f/500x500/match/image.jpg",
    "sources": [
      {
        "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/static/3676484086001/4fb9012e-7b20-4744-9fff-512634d7b2a5/1f719d8b-ebe9-4f6a-b5f1-8906b220554f/500x500/match/image.jpg",
        "height": 500,
        "width": 500
      }
    ]
  },
  "poster": {
    "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/static/3676484086001/4fb9012e-7b20-4744-9fff-512634d7b2a5/6c9b5fc6-3368-47c5-98a5-a5878224fe5b/1400x1400/match/image.jpg",
    "sources": [
      {
        "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/static/3676484086001/4fb9012e-7b20-4744-9fff-512634d7b2a5/6c9b5fc6-3368-47c5-98a5-a5878224fe5b/1400x1400/match/image.jpg",
        "height": 1400,
        "width": 1400
      }
    ]
  },
  "thumbnail": {
    "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/static/3676484086001/4fb9012e-7b20-4744-9fff-512634d7b2a5/b56eee50-f593-4d0d-be15-42d5c5c147af/160x90/match/image.jpg",
    "sources": [
      {
        "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/static/3676484086001/4fb9012e-7b20-4744-9fff-512634d7b2a5/b56eee50-f593-4d0d-be15-42d5c5c147af/160x90/match/image.jpg",
        "height": 90,
        "width": 160
      }
    ]
  },
  "ultra-wide.hi": {
    "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/static/3676484086001/4fb9012e-7b20-4744-9fff-512634d7b2a5/48b1cfee-8579-4d48-9824-93ea2e1cce22/3840x1646/match/image.jpg",
    "sources": [
      {
        "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/static/3676484086001/4fb9012e-7b20-4744-9fff-512634d7b2a5/48b1cfee-8579-4d48-9824-93ea2e1cce22/3840x1646/match/image.jpg",
        "height": 1646,
        "width": 3840
      }
    ]
  },
  "wide.fr": {
    "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/static/3676484086001/4fb9012e-7b20-4744-9fff-512634d7b2a5/45bf1048-d3fa-4ad3-89f1-1df362b60264/2560x1440/match/image.jpg",
    "sources": [
      {
        "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/static/3676484086001/4fb9012e-7b20-4744-9fff-512634d7b2a5/45bf1048-d3fa-4ad3-89f1-1df362b60264/2560x1440/match/image.jpg",
        "height": 1440,
        "width": 2560
      }
    ]
  },
  "portrait.es": {
    "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/static/3676484086001/4fb9012e-7b20-4744-9fff-512634d7b2a5/89581e27-38b7-4b1b-85c6-fc624331a72b/800x1200/match/image.jpg",
    "sources": [
      {
        "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/static/3676484086001/4fb9012e-7b20-4744-9fff-512634d7b2a5/89581e27-38b7-4b1b-85c6-fc624331a72b/800x1200/match/image.jpg",
        "height": 1200,
        "width": 800
      }
    ]
  },
  "square.de": {
    "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/static/3676484086001/4fb9012e-7b20-4744-9fff-512634d7b2a5/12819ec8-4da6-42ae-a67f-aed0424b8d51/570x570/match/image.jpg",
    "sources": [
      {
        "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/static/3676484086001/4fb9012e-7b20-4744-9fff-512634d7b2a5/12819ec8-4da6-42ae-a67f-aed0424b8d51/570x570/match/image.jpg",
        "height": 570,
        "width": 570
      }
    ]
  }
}

Redimensionnement automatique

Lorsque vous ajoutez des affiches personnalisées et/ou des images miniatures via Studio ou l'API Dynamic Ingest, par défaut, Video Cloud les redimensionnera pour qu'elles correspondent aux tailles d'image définies dans le profil d'ingestion par défaut du compte.

Notez que le redimensionnement et le remplissage sont les seules modifications Video Cloud ou Balise de Brightcove. Les images ne sont jamais recadrées.

Capturer des images

Pendant le transcodage, Video Cloud peut capturer un instantané de la vidéo à mi-parcours et l'enregistrer sous forme d'affiches et de vignettes.

Pour les profils d'acquisition personnalisés, la capture d'images nécessite l'ajout de deux rendus spéciaux au profil d'acquisition que vous utilisez. Voir Images dans les profils d'ingestion au dessous de.

Vous devez également définir l' capture-images indicateur dans les données de votre requête sur true si vous souhaitez que l'affiche et la miniature soient capturés à partir de la vidéo pendant le transcodage, mais il s'agit de la valeur par défaut si le paramètre le profil sélectionné inclut les formats associés d'image. (S'il n'y a pas de rendus d'image dans le profil, la valeur par défaut pour capture-images est false.)

Exemple de données de demande :

      {
        "master": { "url": "https://some.site.com/videos/mp4/Bird_Titmouse.mp4" },
        "profile": "multi-platform-standard-static",
        "capture-images": true
      }

Images dans les profils d'ingestion

Pour poster et thumbnail images uniquement, vous devez inclure des rendus d'images dans le profil d'acquisition. C'est pour la capture automatique, que vous l'utilisiez lorsque vous ingérez la vidéo ou que vous décidiez de le faire plus tard lors du transcodage. Les rendus d'images sont inclus dans tous les profils d'acquisition standard, cette section s'applique donc uniquement aux profils d'acquisition personnalisés.

Voici des détails sur la façon dont les rendus d'images sont spécifiés dans les profils d'acquisition.

Propriété Montant
media_type "image"
label "poster" ou "vignette" (vous avez besoin d'un rendu pour chacun)
format "png" ou "jpg"
width nombre (pixels)
height nombre (pixels)

Voici des exemples de données pour les rendus :

"images": [
	{
		"label": "square",
		"height": 500,
		"width": 500
	},
	{
		"label": "ultra-wide",
		"height": 1714,
		"width": 4000
	},
	{
		"label": "wide",
		"height": 2250,
		"width": 4000
	},
	{
		"label": "portrait",
		"height": 3000,
		"width": 2000
	},
	{
		"label": "thumbnail",
		"height": 90,
		"width": 160
	},
	{
		"label": "poster",
		"height": 1080,
		"width": 1920
	}
]

Récupération des données d'image

Vous pouvez récupérer des données d'image à l'aide du API CMS.

Le CMS API retournera les données d'image dans une GET requête https://cms.api.brightcove.com/v1/accounts/{account_id}/videos/{video_id} ou, si vous voulez uniquement les données d'image, à https://cms.api.brightcove.com/v1/accounts/{account_id}/videos/{video_id}/images

Dans les deux cas, les données d'image dans la réponse ressembleront à ceci :

{
  "thumbnail": {
    "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/jit/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/main/160x90/20s629ms/match/image.jpg",
    "sources": [
      {
        "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/jit/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/main/160x90/20s629ms/match/image.jpg",
        "height": 90,
        "width": 160
      }
    ]
  },
  "poster": {
    "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/jit/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/main/1280x720/20s629ms/match/image.jpg",
    "sources": [
      {
        "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/jit/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/main/1280x720/20s629ms/match/image.jpg",
        "height": 720,
        "width": 1280
      }
    ]
  },
  "portrait.es": {
    "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/static/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/bac8717a-43db-4fa8-a6f0-189c80ee4c4e/800x1200/match/image.jpg",
    "sources": [
      {
        "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/static/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/bac8717a-43db-4fa8-a6f0-189c80ee4c4e/800x1200/match/image.jpg",
        "height": 1200,
        "width": 800
      }
    ]
  },
  "thumbnail.en": {
    "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/static/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/0ce2da4d-ca36-469b-9024-0273d79feeeb/292x108/match/image.jpg",
    "sources": [
      {
        "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/static/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/0ce2da4d-ca36-469b-9024-0273d79feeeb/292x108/match/image.jpg",
        "height": 108,
        "width": 292
      }
    ]
  },
  "poster.en": {
    "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/static/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/a7cb150d-c84a-48e0-9469-5b4ce80fba53/1920x1080/match/image.jpg",
    "sources": [
      {
        "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/static/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/a7cb150d-c84a-48e0-9469-5b4ce80fba53/1920x1080/match/image.jpg",
        "height": 1080,
        "width": 1920
      }
    ]
  },
  "square.de": {
    "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/static/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/22209955-e136-4f17-914c-e19ec4c58886/570x570/match/image.jpg",
    "sources": [
      {
        "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/static/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/22209955-e136-4f17-914c-e19ec4c58886/570x570/match/image.jpg",
        "height": 570,
        "width": 570
      }
    ]
  },
  "ultra-wide.hi": {
    "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/static/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/72fd489f-d978-44ba-8d04-1e33c7c36cef/3840x1646/match/image.jpg",
    "sources": [
      {
        "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/static/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/72fd489f-d978-44ba-8d04-1e33c7c36cef/3840x1646/match/image.jpg",
        "height": 1646,
        "width": 3840
      }
    ]
  },
  "wide.fr": {
    "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/static/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/4405a5d5-8b9e-4c2b-be71-cf4e2c153e87/2560x1440/match/image.jpg",
    "sources": [
      {
        "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/static/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/4405a5d5-8b9e-4c2b-be71-cf4e2c153e87/2560x1440/match/image.jpg",
        "height": 1440,
        "width": 2560
      }
    ]
  }
}

Contraintes

  • Le système d'ingestion n'autorise pas les tâches simultanées sur la même vidéo.
  • Actuellement, les données d'image pour les variantes large, carrée, portrait et ultra-large sont renvoyées uniquement par l'API CMS, et non par les requêtes vidéo de l'API de lecture.