Codificação base64

Ao transmitir um vídeo para a API Video Intelligence, é possível transmitir um URI do Cloud Storage ou incorporar dados de vídeo diretamente no campo content da solicitação, que precisa ser codificado em base64.

Incorporar vídeo codificado em Base64

Dados de vídeo são binários. Em uma solicitação gRPC, você pode simplesmente gravar os dados binários diretamente; no entanto, JSON é usado ao fazer uma solicitação REST. JSON é um formato de texto que não suporta diretamente dados binários, então você precisará converter esses dados binários em texto usando a codificação Base64.

Para codificar um arquivo de vídeo em base64:

Linux

Codifique o arquivo de vídeo usando a ferramenta de linha de comando em base64, evitando a quebra de linha com a sinalização -w 0:

    $ base64 SOURCE_VIDEO_FILE -w 0 > DEST_TEXT_FILE

Mac OSX

Codifique o arquivo de vídeo usando a ferramenta de linha de comando em base64:

    $ base64 SOURCE_VIDEO_FILE > DEST_TEXT_FILE

Windows

Codifique o arquivo de vídeo usando uma ferramenta Base64.exe:

    C:> certutil -encodehex SOURCE_VIDEO_FILE > DEST_TEXT_FILE 0x40000001

Os dados com codificação base64 são gravados no arquivo de destino especificado. Transmita os dados em uma solicitação da API Video Intelligence como o valor do campo content:

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

Incorporar conteúdo de vídeo programaticamente

Nem sempre é prático copiar manualmente dados de vídeo codificados nas solicitações. O método preferencial é incorporar os arquivos codificados em base64 ao código de cliente. Todas as linguagens de programação compatíveis têm mecanismos integrados para o conteúdo de codificação base64:

Python

Em Python, codifique os arquivos de vídeo em base64 da seguinte maneira:

# 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

Em Node.js, codifique os arquivos de vídeo em base64 da seguinte maneira:

// 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

Em Java, codifique os arquivos de imagem em base64 como no exemplo a seguir:

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

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