嗨,我按照说明here请求视频注释处理。
curl -s -H 'Content-Type: application/json' -H 'Authorization: Bearer ACCESS_TOKEN_PASTED_HERE' 'https://videointelligence.googleapis.com/v1/videos:annotate' -d @request.json
我的json文件包含存储在项目存储桶中的视频文件的公共链接。
{
"inputUri":"https://storage.googleapis.com/PROJECT_URL_HERE/video.mp4",
"features": [
"LABEL_DETECTION"
]
}
我应该得到一个带有操作名称的回复:
Video Intelligence API会创建一个处理您的操作的操作 请求。响应包括操作名称:
{" name":" us-west1.18358601230245040268" }
我得到的实际结果是什么,甚至不是错误。等待一会儿空白命令行。
我的信息中心显示了我的凭据的成功创建,但在视频智能API上没有显示任何活动。
谢谢!
答案 0 :(得分:2)
inputUri
字段必须是gs://BUCKET_NAME/path/to/video
格式的有效GCS路径,如here所述,而不是您正在使用的https://storage.googleapis.com
链接。否则,它应该返回google.rpc.Code.INVALID_ARGUMENT
。如果您没有获得任何输出,则可能是语法错误(请参阅下面的步骤)。就我而言,它写着:
{
"error": {
"code": 400,
"message": "Request contains an invalid argument.",
"status": "INVALID_ARGUMENT"
}
}
相反,如果您在gs://
中使用request.json
格式的公开示例之一:
{
"inputUri":"gs://cloud-ml-sandbox/video/chicago.mp4",
"features": [
"LABEL_DETECTION"
]
}
然后激活服务帐户并通过运行以下命令请求视频注释:
gcloud auth activate-service-account --key-file=/path/to/credentials.json
curl -s -H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://videointelligence.googleapis.com/v1/videos:annotate" \
-d @request.json
您会收到如下回复:
{
"name": "europe-west1.16***************80"
}
获得操作名称后,您可以使用以下方式检查状态:
curl -s -H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://videointelligence.googleapis.com/v1/operations/europe-west1.16***************80" > result.json
验证是否已完成:
cat result.json | grep done
如果完成,则输出:
"done": true,
和result.json
将包含请求的注释:
"annotationResults": [
{
"inputUri": "/cloud-ml-sandbox/video/chicago.mp4",
"segmentLabelAnnotations": [
{
"entity": {
"entityId": "/m/0pg52",
"description": "taxi",
"languageCode": "en-US"
},
...