问题 API 的视频限制让人头疼
Google 的 Gemini API 对视频上传有几条硬性规定:
- 文件大小不能超过 100MB
- 视频时长不能超过 1 小时
- 不能上传有版权的内容
前两条是技术限制,第三条是法律红线。如果你手上有个 200MB 的录屏或者 2 小时的会议记录,想让 Gemini 帮你分析,直接上传肯定过不去。
IMPORTANT这些限制适用于 Gemini API 的文件上传功能。如果你用的是 Gemini 的其他接口或者 Google AI Studio,限制可能不一样。
有个简单粗暴的办法:把视频压小。
解决方案 降帧率
FFmpeg 是个命令行工具,专门处理音视频。它能把视频的帧率降到 1fps(每秒 1 帧),把原本流畅的视频变成”幻灯片”模式。
最简单的命令
ffmpeg -i input.mp4 -r 1 output.mp4-r 1 就是把帧率设成 1fps。视频内容还在,只是动作变成了一帧一帧的静态画面。
批量处理多个视频
如果你有一堆视频要处理,可以用 shell 循环:
for f in *.mp4; do ffmpeg -i "$f" -r 1 "1fps_$f"done这会把当前目录下所有 .mp4 文件都转成 1fps 版本,文件名前面加上 1fps_。
在 macOS 上用硬件加速(如果你有 M 系列芯片)
macOS 的 M1/M2/M3/M4 芯片有硬件编码器,能让 FFmpeg 跑得更快。但你得用 Apple 的 VideoToolbox,不能用常见的 libx264。
第一次尝试:复制了网上的命令结果报错
我一开始试了这个:
for f in *.mp4; do ffmpeg -y -i "$f" \ -r 1 \ -an \ -preset medium -crf 28 \ -c:v h264_videotoolbox \ "${f%.mp4}-1fps.mp4"done结果 FFmpeg 直接炸了:
Error setting bitrate property: -12900Error while opening encoder - maybe incorrect parameters问题在哪
VideoToolbox 不认 -preset 和 -crf。这俩是 libx264 的参数,硬件编码器根本不支持。
VideoToolbox 的规则很简单:
- 不支持 CRF(恒定质量因子)
- 不支持 x264 的 preset
- 只能用码率(
-b:v)或者质量模式(-q:v)
正确的命令(用码率控制)
for f in *.mp4; do ffmpeg -y -i "$f" \ -r 1 \ -an \ -c:v h264_videotoolbox \ -b:v 2M \ "${f%.mp4}-1fps.mp4"done-b:v 2M 是设定码率为 2Mbps。你可以根据需要调高或调低。
或者用质量模式
for f in *.mp4; do ffmpeg -y -i "$f" \ -r 1 \ -an \ -c:v h264_videotoolbox \ -q:v 50 \ "${f%.mp4}-1fps.mp4"done-q:v 50 是质量参数,范围大概是 30-60,数字越小质量越好。
如果你还想保留音频
上面的命令都用了 -an,意思是”删掉音频”。如果你想保留音频,去掉 -an 然后加上 AAC 编码:
for f in *.mp4; do ffmpeg -y -i "$f" \ -r 1 \ -c:v h264_videotoolbox -q:v 50 \ -c:a aac -b:a 128k \ "${f%.mp4}-1fps.mp4"done这样视频 1fps,音频正常。
NOTE如果原视频本来就没音频,
-c:a aac不会报错,FFmpeg 会自动跳过。
实际效果
假设你有个 200MB 的录屏,30fps,时长 10 分钟。降到 1fps 之后:
- 文件大小可能降到 20-30MB(取决于码率)
- 时长还是 10 分钟
- 画面变成幻灯片,但信息还在
这样就能上传到 Gemini API 了。
注意事项
- 版权问题 FFmpeg 管不了。如果视频内容本身有版权,压缩后还是不能上传。
- 1fps 会损失动作信息。如果你的视频需要分析动作(比如体育比赛、舞蹈教学),1fps 肯定不够用。
- 音频不受影响。降帧率只影响画面,音频该多长还是多长。
总结
Gemini API 的视频限制确实麻烦,但用 FFmpeg 降帧率是个简单有效的办法。macOS 用户可以用 VideoToolbox 加速,但要注意参数兼容性。
如果你只是想让 Gemini 看看视频内容,不需要分析动作,1fps 够用了。
Works Cited
Google. “Gemini API File Upload Documentation.” Google AI for Developers, Accessed 15 Jan. 2025. https://ai.google.dev/gemini-api/docs/vision
FFmpeg. “FFmpeg Documentation.” FFmpeg Official Website, Accessed 15 Jan. 2025. https://ffmpeg.org/documentation.html