Codificación Base64

Cuando pasas un video a la API de Video Intelligence, puedes pasar un URI de Cloud Storage o incorporar datos de video directamente en el campo content de la solicitud, que debe estar codificado en base64.

Inserta video codificado en Base64

Los datos de video son binarios. Dentro de una solicitud gRPC, puedes escribir los datos binarios directamente. Sin embargo, para realizar una solicitud REST, se usa JSON. Este es un formato de texto que no admite datos binarios de forma directa, por lo que deberás convertir estos datos binarios en texto mediante la codificación en Base64.

Para codificar un archivo de video en Base64:

Linux

Codifica el archivo de video con la herramienta de línea de comandos de Base64 y asegúrate de evitar la unión de líneas con la marca -w 0:

    $ base64 source_video_file -w 0 > dest_text_file

macOS

Codifica el archivo de video con la herramienta de línea de comandos de Base64:

    $ base64 source_video_file > dest_text_file

Windows

Codifica el archivo de video con la herramienta Base64.exe:

    C:> Base64.exe -e source_video_file > dest_text_file

Los datos codificados en Base64 se escriben en el archivo de destino especificado. Pasa los datos en una solicitud a la API de Video Intelligence como el valor del campo content:

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

Incorpora contenido de video de manera programática

Copiar datos de video codificados de manera manual en tus solicitudes no siempre es práctico. El método preferido es incorporar archivos codificados en base64 en el código del cliente. Todos los lenguajes de programación compatibles tienen mecanismos integrados para el contenido con codificación en Base64:

Python

En Python, codifica los archivos de video en Base64 de la siguiente manera:

# 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, puedes codificar archivos de video en Base64 de la siguiente manera:

// 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, puedes codificar archivos de imagen en base64 de la siguiente manera:

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

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