Encodage Base64

Pour transmettre une vidéo à l'API Video Intelligence, utilisez un URI Google Cloud Storage ou intégrez les données de la vidéo directement dans le champ content de la requête.

Intégrer la vidéo encodée en base64

Les données vidéo sont des données binaires. Dans une requête gRPC, vous pouvez écrire directement les données binaires. Cependant, une requête REST utilise JSON. JSON est un format de texte qui ne prend pas directement en charge les données binaires. Vous devez donc convertir ces données binaires en texte en utilisant l'encodage base64.

Pour encoder un fichier vidéo en base64, procédez comme suit :

Linux

Utilisez l'outil de ligne de commande "base64" pour encoder le fichier vidéo, en veillant à l'empêcher d'effectuer des renvois automatiques à la ligne avec l'indicateur -w 0 :

    $ base64 source_video_file -w 0 > dest_text_file

Mac OS X

Utilisez l'outil de ligne de commande "base64" pour encoder le fichier vidéo :

    $ base64 source_video_file > dest_text_file

Windows

Utilisez l'outil Base64.exe pour encoder le fichier vidéo :

    C:> Base64.exe -e source_video_file > dest_text_file

Les données encodées en base64 sont écrites dans le fichier de destination spécifié. Transmettez ces données dans une requête à l'API Video Intelligence comme valeur du champ content :

{
  "requests":[
    {
      "image":{
        "content": "ZkxhQwAAACIQABAAAAUJABtAA+gA8AB+W8FZndQvQAyjv..."
      },
      "features": [
        {
          "type":"LABEL_DETECTION",
          "maxResults":1
        }
      ]
    }
  ]
}

Intégrer le contenu vidéo de façon automatisée

La copie manuelle dans vos requêtes des données vidéo encodées n'est pas toujours pratique. Il est plus facile d'intégrer des fichiers encodés en base64 dans le code client. Tous les langages de programmation compatibles intègrent des mécanismes relatifs au contenu encodé en base64 :

Python

En Python, vous pouvez encoder les fichiers vidéo en base64 comme suit :

# Import the base64 encoding library.
import base64

# Pass the video data to an encoding function.
def encode_video(video):
  video_content = video.read()
  return base64.b64encode(video_content)

Node.js

En Node.js, vous pouvez encoder les fichiers vidéo en base64 comme suit :

// Read the file into memory.
var fs = require('fs');
var videoFile = fs.readFileSync('/path/to/file');

// Convert the video data to a Buffer and base64 encode it.
var encoded = new Buffer(videoFile).toString('base64');

Java

En Java, vous pouvez encoder les fichiers image en base64 comme suit :

// Import the Base64 encoding library.
import org.apache.commons.codec.binary.Base64;

// Encode the video.
byte[] videoData = Base64.encodeBase64(videoFile.getBytes());