视频模板代码框架

This commit is contained in:
spllzh
2025-10-09 16:15:39 +08:00
parent 6dff49fcc1
commit b047a3be90
38 changed files with 971 additions and 116 deletions

View File

@@ -113,6 +113,8 @@ public class AudioStatisticsScheduler {

View File

@@ -159,7 +159,7 @@ public class VideoSynthesisStatusScheduler {
log.info("任务成功完成原始视频URL: {}", originalVideoUrl);
// 从阿里云OSS下载视频并上传到MinIO
String minioVideoUrl = downloadAndUploadToMinIO(originalVideoUrl, task.getTaskId());
String minioVideoUrl = downloadAndUploadToMinIO(originalVideoUrl, task);
if (minioVideoUrl != null) {
task.setVideoUrl(minioVideoUrl);
log.info("视频已成功转存到MinIO: {}", minioVideoUrl);
@@ -173,13 +173,8 @@ public class VideoSynthesisStatusScheduler {
task.setResponseTime(LocalDateTime.now());
// 更新临时访问URL使用MinIO的预签名URL
try {
String tempUrl = generateTempVideoUrl("video_synthesis/"+task.getVideoName(), task.getRequestId());
task.setVideoTempUrl(tempUrl);
log.info("更新临时访问URL: {}", tempUrl);
} catch (Exception e) {
log.warn("更新临时访问URL失败: {}", e.getMessage());
}
log.info("临时访问URL: {}", task.getVideoTempUrl());
}
} else if ("FAILED".equals(taskStatus)) {
task.setSuccess(false);
@@ -198,12 +193,12 @@ public class VideoSynthesisStatusScheduler {
}
}
// 解析人脸区域坐标
// 解析图像区域坐标
if (output.containsKey("face_bbox")) {
String faceBbox = output.getString("face_bbox");
if (faceBbox != null && !faceBbox.trim().isEmpty()) {
task.setFaceBbox(faceBbox);
log.info("更新人脸区域坐标: {}", faceBbox);
log.info("更新图像区域坐标: {}", faceBbox);
}
}
@@ -233,14 +228,14 @@ public class VideoSynthesisStatusScheduler {
}
}
/**
* 从阿里云OSS下载视频并上传到MinIO
*
* @param ossVideoUrl 阿里云OSS视频URL
* @param taskId 任务ID用于生成文件名
* @return MinIO中的视频URL失败时返回null
*/
private String downloadAndUploadToMinIO(String ossVideoUrl, String taskId) {
private String downloadAndUploadToMinIO(String ossVideoUrl, VideoSynthesisLog videoSynthesisLog) {
try {
log.info("开始从阿里云OSS下载视频: {}", ossVideoUrl);
@@ -254,16 +249,19 @@ public class VideoSynthesisStatusScheduler {
log.info("视频下载成功,大小: {} bytes", videoData.length);
// 生成MinIO文件名
String fileName = "video_synthesis/" + taskId + ".mp4";
String fileName = "video_synthesis/" + videoSynthesisLog.getVideoName()+videoSynthesisLog.getTaskId() + ".mp4";
// 上传到MinIO
String minioUrl = minIOService.uploadFile(
new ByteArrayInputStream(videoData),
fileName,
"video/mp4"
);
String tempUrl = urlGenerator.generateTempUrl(fileName,7, TimeUnit.DAYS).getUrl();
videoSynthesisLog.setVideoTempUrl(tempUrl);
videoSynthesisLog.setVideoUrl(minioUrl);
log.info("视频已成功上传到MinIO: {}", minioUrl);
return minioUrl;
} catch (Exception e) {
@@ -389,20 +387,5 @@ public class VideoSynthesisStatusScheduler {
}
/**
* 生成临时视频访问URL
*
* @param videoName 视频名称
* @param requestId 请求ID
* @return 临时访问URL
*/
private String generateTempVideoUrl(String videoName, String requestId) {
try {
return urlGenerator.generateTempUrl(videoName,7, TimeUnit.DAYS).getUrl();
} catch (Exception e) {
log.error("生成临时视频URL失败: {}", e.getMessage(), e);
return null;
}
}
}