Quando trasmetti un video all'API Video Intelligence, puoi trasmettere un URI Cloud Storage o incorporare i dati video direttamente nel campo content
della richiesta, che deve essere codificato in base64.
Utilizzo della riga di comando
All'interno di una richiesta gRPC, puoi scrivere direttamente i dati binari; tuttavia, JSON viene utilizzato quando si effettua una richiesta REST. JSON è un formato di testo che non supporta direttamente i dati binari, quindi dovrai convertire questi dati binari in testo utilizzando la codifica Base64.
La maggior parte degli ambienti di sviluppo contiene un'utilità base64
nativa per
codificare un file binario in dati di testo ASCII. Per codificare un file:
Linux
Codifica il file utilizzando lo strumento a riga di comando base64
, assicurandoti di
impedire l'interruzione di riga utilizzando il flag -w 0
:
base64 INPUT_FILE -w 0 > OUTPUT_FILE
macOS
Codifica il file utilizzando lo strumento a riga di comando base64
:
base64 -i INPUT_FILE -o OUTPUT_FILE
Windows
Codifica il file utilizzando lo strumento Base64.exe
:
certutil -encodehex SOURCE_VIDEO_FILE > DEST_TEXT_FILE 0x40000001
PowerShell
Codifica il file utilizzando il metodo Convert.ToBase64String
:
[Convert]::ToBase64String([IO.File]::ReadAllBytes("./INPUT_FILE")) > OUTPUT_FILE
Crea un file di richiesta JSON, incorporando i dati con codifica base64:
JSON
{ "requests":[ { "image":{ "content": "ZkxhQwAAACIQABAAAAUJABtAA+gA8AB+W8FZndQvQAyjv..." }, "features": [ { "type":"LABEL_DETECTION", "maxResults":1 } ] } ] }
Utilizzo delle librerie client
L'incorporamento di dati binari nelle richieste tramite editor di testo non è auspicabile né pratico. In pratica, incorporerai file con codifica base64 all'interno del codice client. Tutti i linguaggi di programmazione supportati dispongono di meccanismi integrati per la codifica Base64 dei contenuti.
Python
In Python, codifica i file video in Base64 nel seguente modo:
# 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
In Node.js, codifica in Base64 i file video nel seguente modo:
// 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
In Java, puoi codificare in base64 i file immagine nel seguente modo:
// Import the Base64 encoding library.
import org.apache.commons.codec.binary.Base64;
// Encode the video.
byte[] videoData = Base64.encodeBase64(videoFile.getBytes());