Google Cloud VideoIntelligence - есть ли способ вызвать AnnotateVideo только для определенного раздела видео? - PullRequest
1 голос
/ 07 мая 2020

В настоящее время я использую функцию AnnotateVideo для анализа видео. Есть ли способ проанализировать только часть видео, например указать start_time и end_time в качестве аргумента функции?

gs_video_path ='gs://'+bucket_name+'/'+videodata.video.path+videodata.video.name
print(gs_video_path)

video_client = videointelligence.VideoIntelligenceServiceClient()
features = [videointelligence.enums.Feature.OBJECT_TRACKING]
operation = video_client.annotate_video(gs_video_path, features=features)

Ответы [ 2 ]

1 голос
/ 02 июня 2020

Вы можете анализировать только интересующие вас разделы, предоставив VideoContext со списком VideoSegment. Вот пример с одним сегментом 21..42 с:

from google.cloud import videointelligence
from google.cloud.videointelligence import enums, types

video_client = videointelligence.VideoIntelligenceServiceClient()

gs_video_path = f'gs://{bucket_name}/{videodata.video.path}{videodata.video.name}'
features = [enums.Feature.OBJECT_TRACKING]
segment = types.VideoSegment()
segment.start_time_offset.FromSeconds(21)
segment.end_time_offset.FromSeconds(42)
context = types.VideoContext(segments=[segment])

operation = video_client.annotate_video(
    gs_video_path,
    features=features,
    video_context=context)

Если вам нужно больше примеров, я недавно написал этот учебник: https://codelabs.developers.google.com/codelabs/cloud-video-intelligence-python3

1 голос
/ 01 июня 2020

Что вы можете сделать, так это проанализировать полное видео, а затем получить аннотации для указанного времени или кадров, см. Этот код .

Если это не соответствует вашим требованиям, потому что видео слишком длинные, и вы хотите обработать только определенную часть c, я предлагаю вам использовать внешний инструмент, чтобы вырезать видео локально, а затем выполнить аннотацию этого фрагмента. Например, вы можете использовать следующий код, чтобы вырезать видео (есть много других).

from moviepy.video.io.ffmpeg_tools import ffmpeg_extract_subclip
ffmpeg_extract_subclip("video1.mp4", start_time, end_time, targetname="test.mp4")

И тогда вам нужно будет обработать видео из локального файла

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...