Google Video Intelligence 按 segments 计费吗?
支付老李
结论
使用 VideoContext.segments 指定分析区间后,Google Video Intelligence API 通常只处理这些片段,并按片段的总时长计量,而不是按整个源视频的时长计量。
例如,一个 60 分钟的视频只分析 10:00 至 12:00 和 30:00 至 31:00,参与计量的处理时长通常为:
[ 2\text{ 分钟} + 1\text{ 分钟} = 3\text{ 分钟} ]
最终费用还取决于所选分析功能、计费单位的取整规则、免费额度和当前价格政策。具体金额应以 Google Cloud 控制台账单和最新价格页面为准。
原因
segments 是 VideoContext 的一部分,用于限制 API 实际分析的时间范围。服务只对指定区间执行特征检测,因此通常以这些区间的累计处理时长为计量基础。
不过,费用并非只由时长决定。一次请求可以启用多个 features,例如:
LABEL_DETECTIONSHOT_CHANGE_DETECTIONEXPLICIT_CONTENT_DETECTIONSPEECH_TRANSCRIPTIONOBJECT_TRACKING
不同功能的价格可能不同。即使分析同一段视频,同时启用多个收费功能,也可能分别产生用量。
请求示例
下面的请求只分析两个片段:
00:10:00至00:12:0000:30:00至00:31:00
{
"inputUri": "gs://example-bucket/video.mp4",
"features": [
"LABEL_DETECTION"
],
"videoContext": {
"segments": [
{
"startTimeOffset": "600s",
"endTimeOffset": "720s"
},
{
"startTimeOffset": "1800s",
"endTimeOffset": "1860s"
}
]
}
}
使用 REST API 调用:
curl -X POST \
"https://videointelligence.googleapis.com/v1/videos:annotate" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"inputUri": "gs://example-bucket/video.mp4",
"features": ["LABEL_DETECTION"],
"videoContext": {
"segments": [
{
"startTimeOffset": "600s",
"endTimeOffset": "720s"
},
{
"startTimeOffset": "1800s",
"endTimeOffset": "1860s"
}
]
}
}'
这个示例中的片段总时长为 180 秒,也就是 3 分钟。实际账单用量可能会按照对应 SKU 的计费粒度取整。
如何确认实际计费用量
如需核对生产环境中的费用,可以按以下步骤测试:
- 使用单独的 Google Cloud 项目,或划定明确的测试时间窗口。
- 只启用一个分析功能。
- 为较长的视频指定一个很短的
segment。 - 请求完成后,在 Cloud Billing 报告中按项目、服务和 SKU 查看用量。
- 将账单中的处理时长与指定片段的总时长进行比较。
账单数据通常不会立即显示,需要等待计费记录同步完成。
注意事项
- 未设置
segments时,通常会分析整个视频,并按完整的处理时长计量。 - 多个片段的时长需要累计计算。
- 尽量不要提交重叠片段。不要自行假定系统会合并重叠范围,最好提前去重,以免重复分析或产生额外用量。
- 为同一片段启用多个收费功能时,不能只用”片段总时长 × 单一价格”估算全部费用。
- 时间偏移量使用 protobuf
Duration格式,例如"90s"、"90.500s"。 - 不同功能对片段长度、视频总长度、文件大小和请求数量的限制可能不同。
- Google Cloud 可能调整价格、免费额度和取整规则。正式估算成本前,应查看当前的 Video Intelligence API 价格说明,并通过实际账单核对。
备注:内容仅供参考。
