Base64 인코딩

Video Intelligence API에 동영상을 전달할 때 Cloud Storage URI를 전달하거나 요청의 content 필드에 base64로 인코딩되어야 하는 동영상 데이터를 직접 삽입할 수 있습니다.

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 인코딩 데이터가 지정된 대상 파일에 기록됩니다. Video Intelligence API 요청에 content 필드 값으로 데이터를 전달합니다.

{
  "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');

자바

자바에서 이미지 파일을 base64로 인코딩하는 방법은 다음과 같습니다.

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

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