视频模板代码框架
This commit is contained in:
@@ -113,6 +113,8 @@ public class AudioStatisticsScheduler {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user