视频审核系统是基于阿里云内容安全服务构建的一套完整的视频内容审核解决方案。该系统支持视频内容的自动审核,包括暴力、色情、政治敏感等内容的检测,并提供了完整的任务管理、结果存储和异步处理机制。
视频审核系统采用微服务架构,主要包括以下组件:
用户可以通过调用VideoModerationService.submitVideoModerationTask方法提交视频审核任务。
该功能将视频URL提交给阿里云内容安全服务进行审核,并将任务信息存储到数据库中。
@Autowired
private VideoModerationService videoModerationService;
// 提交视频审核任务
String taskId = videoModerationService.submitVideoModerationTask("https://example.com/video.mp4");
dataId标识taskIdSUBMITTED用户可以通过调用VideoModerationService.queryVideoModerationResult方法查询视频审核结果。
该功能直接从阿里云获取指定任务的审核结果,并更新数据库中的任务状态和结果。
@Autowired
private VideoModerationService videoModerationService;
// 查询视频审核结果
VideoModerationTask task = videoModerationService.queryVideoModerationResult("your_task_id");
SUCCESS,并保存审核结果系统通过XXL-JOB定时任务自动拉取审核结果,无需用户手动查询。
定时任务会定期扫描数据库中状态为SUBMITTED或PROCESSING的任务,并拉取其审核结果。
在XXL-JOB管理界面中添加新的任务,配置如下:
videoModerationResultJobHandlerSUBMITTED或PROCESSING的任务(最多100条)SUCCESS,保存结果PROCESSINGFAILEDFAILED系统实现了自动重试机制,以处理网络波动等临时性问题。
当异步拉取审核结果失败时,系统会自动重试,最多重试3次。
FAILED视频审核任务信息存储在video_moderation_task表中,包含以下字段:
id: 主键IDdata_id: 数据IDvideo_url: 视频URLtask_id: 阿里云任务IDrisk_level: 风险级别create_time: 创建时间update_time: 更新时间retry_count: 重试次数任务状态包括:
SUBMITTED: 任务已提交PROCESSING: 任务处理中SUCCESS: 任务处理成功FAILED: 任务处理失败系统提供了示例控制器VideoModerationController,包含以下HTTP接口:
POST /video/moderation/submit?videoUrl={videoUrl}
| 参数名 | 类型 | 必需 | 说明 |
|---|---|---|---|
| videoUrl | string | 是 | 视频URL |
{
"code": 200,
"message": "任务提交成功,任务ID: task_xxxxxx",
"data": null
}
GET /video/moderation/result?taskId={taskId}
| 参数名 | 类型 | 必需 | 说明 |
|---|---|---|---|
| taskId | string | 是 | 任务ID |
{
"code": 200,
"message": "操作成功",
"data": {
"id": 1,
"dataId": "video_xxxxxx",
"videoUrl": "https://example.com/video.mp4",
"taskId": "task_xxxxxx",
"status": "SUCCESS",
"riskLevel": "low",
"result": "{\"riskLevel\":\"low\",\"frameResult\":{}}",
"createTime": "2023-01-01 12:00:00",
"updateTime": "2023-01-01 12:05:00",
"retryCount": 0
}
}
在application.yml或Nacos配置中心中添加以下配置:
ali:
yundun:
accessKeyID: your_access_key_id
secret: your_access_key_secret
imgEndpoint: green-cip.cn-shanghai.aliyuncs.com
regionId: cn-shanghai
确保数据库连接配置正确,并且数据库中已创建video_moderation_task表。
确保XXL-JOB配置正确,并且任务处理器已注册到调度中心。
当提交任务失败时,系统会抛出运行时异常,需要在调用方进行捕获处理。
当查询结果失败时,系统会抛出运行时异常,需要在调用方进行捕获处理。
对于网络异常等临时性错误,系统会自动重试,最多重试3次。
如需支持其他类型的审核(如直播流审核),可以扩展VideoModerationUtil工具类,添加相应的方法。
如需修改审核结果的处理逻辑,可以修改VideoModerationService.processTask方法。
如需调整异步处理策略,可以修改VideoModerationJobHandler类中的处理逻辑。
系统集成了完整的日志记录,可以通过日志监控任务执行情况:
建议通过日志分析工具对这些日志进行集中管理和分析。