Gemini 视频上传分析示例
·
1概述
通过 Gemini API 的 generateContent 接口,可以将视频文件以 base64 编码的方式内联传递,让模型分析视频内容。
2前置条件
-
有效的 API Key
-
视频文件(支持 mp4、avi、mov 等格式)
-
支持 base64 编码的终端环境(Linux/macOS/Git Bash)
3完整操作步骤
第一步:将视频文件转为 base64 并生成 JSON 请求体
# 将视频文件转为 base64(-w 0 表示不换行,输出为一整行)
VIDEO_B64=$(base64 -w 0 /path/to/your/video.mp4)
# 用 base64 数据构造 JSON 请求体,保存到临时文件
cat > /tmp/gemini_video_req.json << JSONEOF
{
"contents": [
{
"role": "user",
"parts": [
{
"inline_data": {
"mime_type": "video/mp4",
"data": "$VIDEO_B64"
}
},
{
"text": "请详细分析这个视频的内容,描述你看到的画面、角色、场景和整体风格。"
}
]
}
]
}
JSONEOF
第二步:发送请求
curl -X POST "https://www.moyu.info/v1beta/models/gemini-3-pro-preview:generateContent" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d @/tmp/gemini_video_req.json
第三步:查看返回结果
成功响应示例(已简化):
{
"candidates": [
{
"content": {
"parts": [
{
"text": "这段视频展现了一个充满田园诗意和治愈感的动画场景..."
}
],
"role": "model"
},
"finishReason": "STOP"
}
],
"usageMetadata": {
"promptTokenCount": 911,
"candidatesTokenCount": 634,
"totalTokenCount": 2682,
"promptTokensDetails": [
{ "modality": "VIDEO", "tokenCount": 640 },
{ "modality": "AUDIO", "tokenCount": 252 },
{ "modality": "TEXT", "tokenCount": 19 }
]
}
}
4参数说明
|
参数 |
说明 |
|
|
文件 MIME 类型,视频用 |
|
|
文件的 base64 编码字符串(不换行) |
|
|
发送给模型的提示词,描述你希望模型做什么 |
5支持的视频格式
|
格式 |
MIME 类型 |
|
MP4 |
|
|
AVI |
|
|
MOV |
|
|
WebM |
|
|
MKV |
|
|
FLV |
|
6注意事项
1. 文件大小:base64 编码后体积约为原文件的 1.33 倍,例如 12.6MB 的视频编码后 JSON 约 17MB
2. 超时设置:视频文件较大时,请求耗时较长,建议 curl 加上 `--max-time 300` 参数
3. Token 消耗:视频会被拆分为视频帧和音频两部分计算 token,一段短视频通常消耗数百到数千 token
4. 模型选择:需要使用支持多模态的 Gemini 模型(如 `gemini-3-pro-preview`)
更多推荐
所有评论(0)