Base64 エンコード

動画を Video Intelligence API に渡す場合、Google Cloud Storage URI を渡すか、リクエストの content フィールド内に動画データを直接埋め込みます。

Base64 エンコード動画を埋め込む

動画データはバイナリデータです。gRPC リクエスト内に単純にバイナリデータを書き込むことができますが、REST リクエストを行う際には、JSON が使われます。JSON はバイナリデータを直接サポートしていないテキスト形式であるため、それらのバイナリデータは Base64 エンコードを使用して、テキストに変換する必要があります。

動画ファイルを Base64 でエンコードするには:

Linux

base64 コマンドライン ツールを使用して動画ファイルをエンコードし、-w 0 フラグを使用して行の折り返しを防ぎます。

    $ base64 source_video_file -w 0 > dest_text_file

Mac OSX

base64 コマンドライン ツールを使用して、動画ファイルをエンコードします。

    $ base64 source_video_file > dest_text_file

Windows

Base64.exe ツールを使用して、動画ファイルをエンコードします。

    C:> Base64.exe -e source_video_file > dest_text_file

Base64 でエンコードされたデータは、指定された宛先ファイルに書き込まれます。content フィールドの値としてデータを Video Intelligence API リクエストに渡します。

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

動画コンテンツをプログラムで埋め込む

エンコードされた動画データをリクエストに手動でコピーする方法が適切でないこともあります。この場合、Base64 でエンコードされたファイルをクライアント コードに埋め込みます。サポートされるプログラミング言語には、Base64 エンコード コンテンツを組み込むメカニズムがあります。

Python

Python では、次のように動画ファイルを Base64 エンコードします。

# 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

Node.js では、次のように動画ファイルを Base64 でエンコードします。

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

Java で画像ファイルを base64 エンコードする方法は次のとおりです。

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

// Encode the video.
byte[] videoData = Base64.encodeBase64(videoFile.getBytes());
このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Cloud Video Intelligence API ドキュメント