要将AWS视频识别的结果发布到SNS主题,可以使用以下代码示例:
import boto3
def start_video_analysis(bucket, video):
# 创建AWS视频识别客户端
rekognition = boto3.client('rekognition')
# 启动视频分析任务
response = rekognition.start_label_detection(
Video={
'S3Object': {
'Bucket': bucket,
'Name': video
}
},
NotificationChannel={
'SNSTopicArn': 'SNS主题ARN',
'RoleArn': 'IAM角色ARN'
}
)
# 返回分析任务的唯一ID
return response['JobId']
def process_video_analysis(job_id):
# 创建AWS视频识别客户端
rekognition = boto3.client('rekognition')
# 获取分析任务的状态
response = rekognition.get_label_detection(JobId=job_id)
# 检查分析任务的状态,直到任务完成
while response['JobStatus'] == 'IN_PROGRESS':
response = rekognition.get_label_detection(JobId=job_id)
# 分析任务完成后,将结果发布到SNS主题
if response['JobStatus'] == 'SUCCEEDED':
sns = boto3.client('sns')
sns.publish(
TopicArn='SNS主题ARN',
Message=response['JobStatus'],
Subject='视频分析结果'
)
else:
print('分析任务失败')
# 示例用法
bucket = '视频存储桶名称'
video = '视频文件名称'
job_id = start_video_analysis(bucket, video)
process_video_analysis(job_id)
请将代码中的SNS主题ARN
和IAM角色ARN
替换为您自己的ARN。此示例中的代码启动了一个视频分析任务,并轮询任务状态,直到任务完成。任务完成后,将结果发布到指定的SNS主题。