Google은 AI 기술을 사용하여 콘텐츠를 사용자의 기본 언어로 번역합니다. AI 번역에는 오류가 있을 수 있습니다.
동영상 라벨 분석
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
Video Intelligence API는 LABEL_DETECTION 기능을 사용하여 동영상에 표시되는 항목을 식별할 수 있습니다. 이 기능은 객체, 위치, 활동, 동물 종, 제품 등을 식별합니다.
분석을 다음과 같이 구획화할 수 있습니다.
- 프레임 수준:
각 프레임 내에서 항목이 식별되고 라벨로 지정됩니다
(초당 1프레임 샘플링).
- 장면 수준:
모든 세그먼트(또는 동영상) 내에서 장면이 자동으로 감지됩니다. 그런 후 항목이 식별되고 각 장면 내에서 라벨로 지정됩니다.
- 세그먼트 수준:
주석 목적에 따라 시작 및 종료 타임스탬프를 규정하여 사용자가 선택한 동영상 세그먼트를 분석하도록 지정할 수 있습니다(VideoSegment 참조).
그런 후 항목이 식별되고 각 세그먼트 내에서 라벨로 지정됩니다. 세그먼트를 지정하지 않으면 전체 동영상이 하나의 세그먼트로 취급됩니다.
을 참조하세요.
로컬 파일에 주석 추가
다음은 로컬 파일에서 동영상 라벨 분석을 수행하는 예입니다.
자세한 정보를 알고 싶다면 자세한 Python 가이드를 참조하세요.
REST
프로세스 요청 전송
다음은 videos:annotate 메서드에 POST 요청을 보내는 방법을 보여줍니다. LabelDetectionMode를 장면 수준 또는 프레임 수준 주석으로 구성할 수 있습니다. SHOT_AND_FRAME_MODE를 사용하는 것이 좋습니다. 이 예시에서는 Google Cloud CLI를 사용하는 프로젝트의 서비스 계정을 설정하기 위해 액세스 토큰을 사용합니다. Google Cloud CLI 설치, 서비스 계정으로 프로젝트 설정, 액세스 토큰 획득 방법은 Video Intelligence 빠른 시작을 참조하세요.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
HTTP 메서드 및 URL:
POST https://videointelligence.googleapis.com/v1/videos:annotate
JSON 요청 본문:
{
"inputContent": "BASE64_ENCODED_CONTENT",
"features": ["LABEL_DETECTION"],
}
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
cURL(Linux, macOS, Cloud Shell)
요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: PROJECT_NUMBER" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://videointelligence.googleapis.com/v1/videos:annotate"
PowerShell(Windows)
요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "PROJECT_NUMBER" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://videointelligence.googleapis.com/v1/videos:annotate" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID"
}
요청이 성공하면 Video Intelligence가 작업의 이름을 반환합니다.
결과 가져오기
요청 결과를 가져오려면 projects.locations.operations 리소스에 GET 요청을 보내야 합니다. 다음은 이러한 요청을 전송하는 방법을 보여줍니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- OPERATION_NAME: Video Intelligence API로 반환되는 작업의 이름입니다. 작업 이름은
projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID 형식입니다.
- PROJECT_NUMBER: 프로젝트의 숫자 식별자 Google Cloud
HTTP 메서드 및 URL:
GET https://videointelligence.googleapis.com/v1/OPERATION_NAME
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
cURL(Linux, macOS, Cloud Shell)
다음 명령어를 실행합니다.
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: PROJECT_NUMBER" \
"https://videointelligence.googleapis.com/v1/OPERATION_NAME"
PowerShell(Windows)
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "PROJECT_NUMBER" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://videointelligence.googleapis.com/v1/OPERATION_NAME" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
응답
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.videointelligence.v1.AnnotateVideoProgress",
"annotationProgress": [
{
"progressPercent": 100,
"startTime": "2019-03-12T19:36:09.110351Z",
"updateTime": "2019-03-12T19:36:17.519069Z"
}
]
},
"done": true,
"response": {
"@type": "type.googleapis.com/google.cloud.videointelligence.v1.AnnotateVideoResponse",
"annotationResults": [
{
"segmentLabelAnnotations": [
{
"entity": {
"entityId": "/m/01prls",
"description": "land vehicle",
"languageCode": "en-US"
},
"categoryEntities": [
{
"entityId": "/m/07yv9",
"description": "vehicle",
"languageCode": "en-US"
}
],
"segments": [
{
"segment": {
"startTimeOffset": "0s",
"endTimeOffset": "38.757872s"
},
"confidence": 0.6614419
}
]
},
{
"entity": {
"entityId": "/m/039jbq",
"description": "urban area",
"languageCode": "en-US"
},
"categoryEntities": [
{
"entityId": "/m/01n32",
"description": "city",
"languageCode": "en-US"
}
],
"segments": [
{
"segment": {
"startTimeOffset": "0s",
"endTimeOffset": "38.757872s"
},
"confidence": 0.92337775
}
]
},
...
Cloud Storage의 파일에 주석 추가
다음은 Cloud Storage에 있는 파일에서 라벨에 대해 동영상 분석을 수행하는 예시입니다.
REST
Python용 Video Intelligence API 클라이언트 라이브러리 설치 및 사용에 대한 자세한 내용은 Video Intelligence API 클라이언트 라이브러리를 참조하세요.
프로세스 요청 전송
다음은 annotate 메서드에 POST 요청을 보내는 방법을 보여줍니다. 이 예시에서는 Google Cloud CLI를 사용하는 프로젝트의 서비스 계정을 설정하기 위해 액세스 토큰을 사용합니다. Google Cloud CLI 설치, 서비스 계정으로 프로젝트 설정, 액세스 토큰 획득 방법은 Video Intelligence 빠른 시작을 참조하세요.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- INPUT_URI: 파일 이름을 포함하여 주석을 추가하고자 하는 파일을 포함한 Cloud Storage 버킷입니다.
는
gs://로 시작해야 합니다.
- PROJECT_NUMBER: 프로젝트의 숫자 식별자 Google Cloud
HTTP 메서드 및 URL:
POST https://videointelligence.googleapis.com/v1/videos:annotate
JSON 요청 본문:
{
"inputUri": "INPUT_URI",
"features": ["LABEL_DETECTION"],
}
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
cURL(Linux, macOS, Cloud Shell)
요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: PROJECT_NUMBER" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://videointelligence.googleapis.com/v1/videos:annotate"
PowerShell(Windows)
요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "PROJECT_NUMBER" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://videointelligence.googleapis.com/v1/videos:annotate" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID"
}
요청이 성공하면 Video Intelligence가 작업 이름을 반환합니다.
결과 가져오기
요청 결과를 가져오려면 projects.locations.operations 리소스에 GET 요청을 보내야 합니다. 다음은 이러한 요청을 전송하는 방법을 보여줍니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- OPERATION_NAME: Video Intelligence API로 반환되는 작업의 이름입니다. 작업 이름은
projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID 형식입니다.
- PROJECT_NUMBER: 프로젝트의 숫자 식별자 Google Cloud
HTTP 메서드 및 URL:
GET https://videointelligence.googleapis.com/v1/OPERATION_NAME
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
cURL(Linux, macOS, Cloud Shell)
다음 명령어를 실행합니다.
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: PROJECT_NUMBER" \
"https://videointelligence.googleapis.com/v1/OPERATION_NAME"
PowerShell(Windows)
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "PROJECT_NUMBER" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://videointelligence.googleapis.com/v1/OPERATION_NAME" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
응답
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.videointelligence.v1.AnnotateVideoProgress",
"annotationProgress": [
{
"inputUri": "INPUT_URI",
"progressPercent": 100,
"startTime": "2019-11-13T19:25:56.206335Z",
"updateTime": "2019-11-13T19:26:16.215615Z"
}
]
},
"done": true,
"response": {
"@type": "type.googleapis.com/google.cloud.videointelligence.v1.AnnotateVideoResponse",
"annotationResults": [
{
"inputUri": "INPUT_URI",
"segmentLabelAnnotations": [
{
"entity": {
"entityId": "/m/01vkl",
"description": "circle",
"languageCode": "en-US"
},
"categoryEntities": [
{
"entityId": "/m/016nqd",
"description": "shape",
"languageCode": "en-US"
}
],
"segments": [
{
"segment": {
"startTimeOffset": "0s",
"endTimeOffset": "16.416666s"
},
"confidence": 0.36535457
}
]
},
...
]
}
]
}
}
주석 결과 다운로드
소스에서 대상 버킷으로 주석을 복사합니다(파일 및 객체 복사 참조).
gcloud storage cp gcs_uri gs://my-bucket
참고: 사용자가 출력 gcs uri를 제공하면 주석이 해당 gcs uri에 저장됩니다.
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2026-09-15(UTC)
[null,null,["최종 업데이트: 2026-09-15(UTC)"],[],[]]