Como fazer anotações em um vídeo usando a linha de comando
Nesta página, mostramos como fazer uma solicitação da API Video Intelligence com curl para seus projetos.
Você pode seguir as etapas nesta página ou usar este guia de início rápido como um laboratório de treinamento doGoogle Cloud .
Antes de começar
- Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloud, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Video Intelligence API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a gcloud CLI, execute o seguinte comando:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Video Intelligence API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a gcloud CLI, execute o seguinte comando:
gcloud init
Funções exigidas
Para receber as permissões necessárias para anotar um vídeo, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:
-
Consumidor do Service Usage (
roles/serviceusage.serviceUsageConsumer) -
Administrador de armazenamento (
roles/storage.admin)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.
Criar um bucket
No ambiente de desenvolvimento, use o comando
gcloud storage buckets create para criar um bucket.
Antes de executar o comando, substitua os seguintes valores:
BUCKET_LOCATION: a localização geográfica em que você quer armazenar os dados no bucket. Por exemplo,US.
gcloud storage buckets create gs://videointelligence-quickstart-bucket --location=BUCKET_LOCATION
Se a solicitação for bem-sucedida, o comando retornará a seguinte mensagem:
Creating gs://videointelligence-quickstart-bucket/...
Envie um vídeo para o bucket
No seu ambiente de desenvolvimento, use o comando gcloud storage cp para
fazer upload de um vídeo para o bucket que você criou.
Antes de executar o comando, substitua os seguintes valores:
OBJECT_LOCATION: o caminho local para o objeto. Por exemplo,Desktop/dog.mp4.
gcloud storage cp OBJECT_LOCATION gs://videointelligence-quickstart-bucket
Se funcionar, a resposta será parecida com esta:
Completed files 1/1 | 164.3kiB/164.3kiB
Anotar o vídeo
gcloud
Use a CLI gcloud para chamar o comando detect-labels no caminho do vídeo a ser analisado.
Antes de executar o comando, substitua os seguintes valores:
YOUR_OBJECT: o nome do arquivo do vídeo que você enviou. Por exemplo,dog.mp4.
gcloud ml video detect-labels gs://videointelligence-quickstart-bucket/YOUR_OBJECT
Linha de comando
Use curl para fazer uma solicitação POST ao método videos:annotate.
Antes de executar o comando, substitua os seguintes valores:
YOUR_OBJECT: o nome do arquivo do vídeo que você enviou. Por exemplo,dog.mp4.
curl -X POST \ -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ --data '{"inputUri":"gs://videointelligence-quickstart-bucket/YOUR_OBJECT","features":["LABEL_DETECTION"]}'\ "https://videointelligence.googleapis.com/v1/videos:annotate"
A API Video Intelligence cria uma operação para processar a solicitação. A resposta inclui o nome da operação:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID" }
É possível solicitar informações sobre a operação chamando o endpoint v1.operations e substituindo OPERATION_NAME no exemplo abaixo pelo nome retornado na etapa anterior:
curl -X GET \ -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \ https://videointelligence.googleapis.com/v1/OPERATION_NAME
Esse comando retorna informações relacionadas à sua operação. Se a operação tiver sido concluída, um campo done será incluído e definido como true:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.videointelligence.v1.AnnotateVideoProgress", "annotationProgress": [ { "inputUri": "/videointelligence-quickstart-bucket/YOUR_OBJECT", "progressPercent": 100, "startTime": "2020-04-01T22:13:17.978847Z", "updateTime": "2020-04-01T22:13:29.576004Z" } ] }, "done": true, ... }
Depois de aproximadamente um minuto, a solicitação retorna os resultados da anotação. Os resultados serão semelhantes a este:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.videointelligence.v1.AnnotateVideoProgress", "annotationProgress": [ { "inputUri": "videointelligence-quickstart-bucket/YOUR_OBJECT", "progressPercent": 100, "startTime": "2020-04-01T22:13:17.978847Z", "updateTime": "2020-04-01T22:13:29.576004Z" } ] }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.videointelligence.v1.AnnotateVideoResponse", "annotationResults": [ { "inputUri": "/videointelligence-quickstart-bucket/YOUR_OBJECT", "segmentLabelAnnotations": [ { "entity": { "entityId": "/m/07bsy", "description": "transport", "languageCode": "en-US" }, "segments": [ { "segment": { "startTimeOffset": "0s", "endTimeOffset": "38.757872s" }, "confidence": 0.81231534 } ] }, { "entity": { "entityId": "/m/01n32", "description": "city", "languageCode": "en-US" }, "categoryEntities": [ { "entityId": "/m/043rvww", "description": "geographical feature", "languageCode": "en-US" } ], "segments": [ { "segment": { "startTimeOffset": "0s", "endTimeOffset": "38.757872s" }, "confidence": 0.3942462 } ] }, ... { "entity": { "entityId": "/m/06gfj", "description": "road", "languageCode": "en-US" }, "segments": [ { "segment": { "startTimeOffset": "0s", "endTimeOffset": "38.757872s" }, "confidence": 0.86698604 } ] } ] } ] } }
Parabéns! Você enviou sua primeira solicitação para a API Video Intelligence.
Limpar
Para evitar cobranças na conta do Google Cloud pelos recursos usados nesta página, faça o seguinte:
Se você quiser continuar usando o projeto criado, use o comando
gcloud storage rmcom a flag--recursivepara excluir o bucket e tudo o que estiver dentro dele:gcloud storage rm gs://videointelligence-quickstart-bucket --recursive
Se você não precisar do projeto criado para este guia de início rápido, exclua-o.
- No console Google Cloud , acesse a página Gerenciar recursos.
- Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
- Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.
A seguir
- Siga as etapas indicadas em Guias de instruções.
- Siga as etapas indicadas em Amostras e tutoriais.
- Consulte a Referência da API para ver informações completas sobre todas as chamadas de API.