Cuando envías un vídeo a la API Video Intelligence, puedes enviar un URI de Cloud Storage o insertar datos de vídeo directamente en el campo content
de la solicitud, que debe estar codificado en base64.
Usar la línea de comandos
En una solicitud gRPC, puedes escribir datos binarios directamente. Sin embargo, se usa JSON al hacer una solicitud REST. JSON es un formato de texto que no admite directamente datos binarios, por lo que tendrás que convertir esos datos en texto mediante la codificación Base64.
La mayoría de los entornos de desarrollo contienen una utilidad base64
nativa para codificar un archivo binario en datos de texto ASCII. Para codificar un archivo, sigue estos pasos:
Linux
Codifica el archivo con la herramienta de línea de comandos base64
. Asegúrate de evitar el salto de línea con la marca -w 0
:
base64 INPUT_FILE -w 0 > OUTPUT_FILE
macOS
Codifica el archivo con la herramienta de línea de comandos base64
:
base64 -i INPUT_FILE -o OUTPUT_FILE
Windows
Codifica el archivo con la herramienta Base64.exe
:
certutil -encodehex SOURCE_VIDEO_FILE > DEST_TEXT_FILE 0x40000001
PowerShell
Codifica el archivo con el método Convert.ToBase64String
:
[Convert]::ToBase64String([IO.File]::ReadAllBytes("./INPUT_FILE")) > OUTPUT_FILE
Crea un archivo de solicitud JSON insertando los datos codificados en base64:
JSON
{ "requests":[ { "image":{ "content": "ZkxhQwAAACIQABAAAAUJABtAA+gA8AB+W8FZndQvQAyjv..." }, "features": [ { "type":"LABEL_DETECTION", "maxResults":1 } ] } ] }
Usar bibliotecas de cliente
No es recomendable ni práctico insertar datos binarios en solicitudes a través de editores de texto. En la práctica, insertarás archivos codificados en base64 en el código del cliente. Todos los lenguajes de programación admitidos tienen mecanismos integrados para codificar contenido en Base64.
Python
En Python, codifica los archivos de vídeo 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, codifica los archivos de vídeo 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());