Gemini는 동영상에 관한 프롬프트에 응답할 수 있습니다. Gemini 요청에 동영상을 추가하여 포함된 동영상의 콘텐츠를 이해하는 것과 관련된 작업을 수행할 수 있습니다.
동영상 이해는 텍스트와 미디어 파일을 결합하는 Gemini의 멀티모달 입력 중 하나입니다.
Gemini를 사용한 동영상 이해에 관한 자세한 내용과 API 요청 전송에 관한 단계별 안내는 멀티모달 프롬프트 보내기를 참고하세요.
동영상이 포함된 프롬프트 사양
Gemini에 대한 요청에 동영상 파일을 추가할 수 있습니다. 지원되는 최대 동영상 데이터 길이는 동영상에 오디오가 포함되어 있는지에 따라 다릅니다. Gemini는 다음과 같은 최대 동영상 길이를 지원합니다.
- 오디오가 포함된 동영상: 100초
- 오디오가 없는 동영상: 120초
프롬프트 요청에 허용되는 최대 동영상 파일 수는 10개입니다.
동영상은 다음 지원되는 MIME 유형 중 하나여야 합니다.
- AVI:
video/avi - FLV:
video/x-flv - MOV:
video/mov - MPEG:
video/mpeg - MPG:
video/mpg - MP4:
video/mp4 - WEBM:
video/webm - WMV:
video/wmv - 3GP:
video/3gpp
Gemini에는 동영상에 다음과 같은 규칙이 적용됩니다.
- 동영상은 초당 1프레임 (fps)으로 샘플링됩니다. 각 동영상 프레임은 258개의 토큰을 차지합니다.
- 오디오 트랙은 동영상 프레임으로 인코딩되고 1초 트렁크로 분할되며 각 트렁크는 32개의 토큰을 차지합니다. 동영상 프레임과 오디오 토큰은 타임스탬프와 함께 인터리브 처리됩니다. 타임스탬프는 7개의 토큰으로 표시됩니다.
- 프롬프트에 동영상 하나가 포함된 경우 텍스트 프롬프트 앞에 동영상을 배치합니다.
REST API에서 Chat Completions 엔드포인트를 사용하고 HTTP 클라이언트를 사용할 수 있습니다. 동영상을 base64 인코딩 파일로 프롬프트 요청에 인라인 데이터로 제공하거나 프롬프트 요청을 하기 전에 동영상 파일을 스토리지 버킷에 업로드할 수 있습니다.
Google Cloud 문서에서 동영상 권장사항 및 제한사항에 대해 자세히 알아보세요.
OpenAI 및 Gemini가 Google Distributed Cloud (GDC) 에어갭에서 구현하는 Chat Completions 엔드포인트에 대해 자세히 알아보려면 https://platform.openai.com/docs/api-reference/chat을 참고하세요.
프롬프트에서 동영상 이해하기
다음 예는 curl를 사용하여 동영상 입력에서 텍스트를 생성하는 Gemini Chat Completions API 요청을 보여줍니다.
인라인 데이터 요청 보내기
base64로 인코딩된 파일에서 프롬프트 요청에 동영상을 인라인 데이터로 제공합니다.
API 요청에는 base64로 인코딩된 동영상의 input_video 필드가 포함됩니다. 다음 샘플은 base64로 인코딩된 동영상 요청을 보내는 방법을 보여줍니다.
curl \
-X POST "https://ENDPOINT:443/v1/projects/PROJECT/locations/PROJECT/chat/completions" \
-H "Content-Type: application/json; charset=utf-8" \
-H "Authorization: Bearer $(gdcloud auth print-identity-token)" \
-d '{
"model_id": "MODEL_ID",
"messages": [
{
"role": "user",
"content": [
{
"type": "input_video",
"input_video": {
"data": BASE64_DATA,
# Valid formats are avi, flv, mov, mpeg, mpg, mp4, webm, wmv, or 3gpp
"format": "wmv"
}
}
]
}
],
}'
다음을 바꿉니다.
ENDPOINT: 조직에서 사용하는 API 엔드포인트입니다.PROJECT: 프로젝트 ID입니다.MODEL_ID: 대답을 생성하려는 모델의 엔드포인트 ID입니다.BASE64_DATA: 동영상 파일의 base64 인코딩 데이터입니다. Base64로 인코딩된 데이터에는 데이터 URI 스키마(RFC 2397)가 접두사로 붙어야 합니다. 따라서 base64로 인코딩된 데이터의data필드 형식은"data": f"data:video/wmv;base64,{base64_video}"입니다.
요청에 동영상 URL 전송
프롬프트 요청을 하기 전에 스토리지 버킷에 동영상 파일을 업로드합니다. API 요청에는 저장소 버킷의 동영상 파일에 대한 video_url 필드가 포함됩니다. 다음 샘플은 동영상 URL 요청을 보내는 방법을 보여줍니다.
curl \
-X POST "https://ENDPOINT:443/v1/projects/PROJECT/locations/PROJECT/chat/completions" \
-H "Content-Type: application/json; charset=utf-8" \
-H "Authorization: Bearer $(gdcloud auth print-identity-token)" \
-d '{
"model_id": "MODEL_ID",
"messages": [
{
"role": "user",
"content": [
{
"type": "video_url",
"video_url": {
"url": "VIDEO_URL",
}
}
]
}
],
}'
다음을 바꿉니다.
ENDPOINT: 조직에서 사용하는 API 엔드포인트입니다.PROJECT: 프로젝트 ID입니다.MODEL_ID: 대답을 생성하려는 모델의 엔드포인트 ID입니다.VIDEO_URL: 스토리지 버킷의 동영상 URL 경로입니다. 동영상 URL은 GDC 스토리지 버킷에 저장된 동영상 파일을 참조해야 합니다. 자세한 내용은 데이터 저장을 참고하세요.