Encodage Base64

Lorsque vous transmettez une vidéo à l'API Video Intelligence, vous pouvez transmettre un URI Cloud Storage ou intégrer des données vidéo directement dans le champ content de la requête, qui doit être encodé en base64.

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 n'est pas directement compatible avec 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

Encodez le fichier vidéo à l'aide de l'outil de ligne de commande base64, en veillant à empêcher tout retour à la ligne grâce à l'indicateur -w 0 :

    $ base64 source_video_file -w 0 > dest_text_file

macOS

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());