diff --git a/suimangCApi/src/main/java/com/iformall/controller/PhotoSpeakVideoController.java b/suimangCApi/src/main/java/com/iformall/controller/PhotoSpeakVideoController.java index c84bcd2..0e335ea 100644 --- a/suimangCApi/src/main/java/com/iformall/controller/PhotoSpeakVideoController.java +++ b/suimangCApi/src/main/java/com/iformall/controller/PhotoSpeakVideoController.java @@ -424,6 +424,7 @@ public class PhotoSpeakVideoController extends BaseController { return new ResultData(); } + @AuthIgnore @ApiOperation("视频超分") @GetMapping("/videoHy") @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true) @@ -439,26 +440,22 @@ public class PhotoSpeakVideoController extends BaseController { if (StringUtils.isEmpty(speakVideo.getSaveDir())){ return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"save_dir为空"); } - if(!speakVideo.getUserId().equals(getMemberId())){ - return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"未找到用户数据"); - } - - if(!EnumVideoStatus.upload_success.getCode().equals(speakVideo.getVideoStatus())){ - return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"原始视频生成未完成"); - } +// if(!speakVideo.getUserId().equals(getMemberId())){ +// return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"未找到用户数据"); +// } - if(EnumVideoStatus.ing.getCode().equals(speakVideo.getVideoHyStatus()) - || EnumVideoStatus.success.getCode().equals(speakVideo.getVideoHyStatus()) - || EnumVideoStatus.upload_ing.getCode().equals(speakVideo.getVideoHyStatus()) - || EnumVideoStatus.upload_fail.getCode().equals(speakVideo.getVideoHyStatus())){ + if(EnumVideoStatus.hy_ing.getCode().equals(speakVideo.getVideoStatus()) + || EnumVideoStatus.hy_success.getCode().equals(speakVideo.getVideoStatus()) + || EnumVideoStatus.hy_upload_ing.getCode().equals(speakVideo.getVideoStatus()) + || EnumVideoStatus.hy_upload_fail.getCode().equals(speakVideo.getVideoStatus())){ return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"高清晰度视频生成中"); } - if(EnumVideoStatus.upload_success.getCode().equals(speakVideo.getVideoHyStatus())){ + if(EnumVideoStatus.hy_upload_success.getCode().equals(speakVideo.getVideoStatus())){ //上传阿里云状态 生成成功 return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"高清晰度视频已生成完成"); } - speakVideo.setVideoHyStatus(EnumVideoStatus.ing.getCode()); + speakVideo.setVideoStatus(EnumVideoStatus.hy_ing.getCode()); speakVideo.setVideoMsg(""); speakVideo.setIsHy(EnumYesOrNo.YES.getCode()); speakVideo.setUpdateDate(new Date()); diff --git a/suimangCApi/src/main/java/com/iformall/controller/VideoCallbackController.java b/suimangCApi/src/main/java/com/iformall/controller/VideoCallbackController.java index e2962e6..bb63e05 100644 --- a/suimangCApi/src/main/java/com/iformall/controller/VideoCallbackController.java +++ b/suimangCApi/src/main/java/com/iformall/controller/VideoCallbackController.java @@ -85,7 +85,7 @@ public class VideoCallbackController extends BaseController { if (Integer.parseInt(code) != 4000){ String returnMsg; if (sr){ - photoSpeakVideo.setVideoHyStatus(EnumVideoStatus.fail.getCode()); + photoSpeakVideo.setVideoStatus(EnumVideoStatus.hy_fail.getCode()); returnMsg = "超分视频生成失败"; }else { photoSpeakVideo.setVideoStatus(EnumVideoStatus.fail.getCode()); @@ -106,7 +106,7 @@ public class VideoCallbackController extends BaseController { } if (sr){ - photoSpeakVideo.setVideoHyStatus(EnumVideoStatus.success.getCode()); + photoSpeakVideo.setVideoStatus(EnumVideoStatus.hy_success.getCode()); }else { photoSpeakVideo.setVideoStatus(EnumVideoStatus.success.getCode()); } diff --git a/suimangCApi/src/main/java/com/iformall/utils/BaiduImageCheckUtil.java b/suimangCApi/src/main/java/com/iformall/utils/BaiduImageCheckUtil.java index e6a22ae..2b4842f 100644 --- a/suimangCApi/src/main/java/com/iformall/utils/BaiduImageCheckUtil.java +++ b/suimangCApi/src/main/java/com/iformall/utils/BaiduImageCheckUtil.java @@ -24,9 +24,10 @@ public class BaiduImageCheckUtil { // 获取token private final static String auth_url = "https://aip.baidubce.com/oauth/2.0/token?"; // 百度API Key - private final static String apiKey = "Your API Key"; + private final static String apiKey = "qnx99HW0HY9xoOEEVRuvtnQ4"; + // 百度Secret Key - private final static String secretKey = "Your Secret Key"; + private final static String secretKey = "RY5YCqGejrc32xT5kIxDj0mqP9QRiKfD"; //写死的 access_token private final static String access_token = "24.c1c7992795301773c60c8cf01abfe759.2592000.1689236723.282335-33618414"; @@ -111,4 +112,8 @@ public class BaiduImageCheckUtil { System.out.println(response.body().string()); return response.body().string(); } + + public static void main(String[] args) throws IOException { + System.out.println(getAuth()); + } } \ No newline at end of file diff --git a/suimangSchedule/src/main/java/com/iformall/schedule/PhotoSpeakSchedule.java b/suimangSchedule/src/main/java/com/iformall/schedule/PhotoSpeakSchedule.java index 1651eb0..a5866bf 100644 --- a/suimangSchedule/src/main/java/com/iformall/schedule/PhotoSpeakSchedule.java +++ b/suimangSchedule/src/main/java/com/iformall/schedule/PhotoSpeakSchedule.java @@ -143,7 +143,7 @@ public class PhotoSpeakSchedule { video.setVideoPlayUrl(videoDetail.getVideoUrl()); video.setVideoTime(videoDetail.getDuration()); video.setVideoSize(videoDetail.getSize()); - video.setVideoHyStatus(EnumVideoStatus.upload_success.getCode()); + video.setVideoStatus(EnumVideoStatus.hy_upload_success.getCode()); photoSpeakVideoService.updateById(video); } } catch (Exception e) { @@ -160,7 +160,7 @@ public class PhotoSpeakSchedule { public void photoSpeakCreateHySchedule() { PhotoSpeakVideo videoUpd = new PhotoSpeakVideo(); videoUpd.setVideoStartDate(DateUtils.getHourDateBefore(2,new Date())); - videoUpd.setVideoHyStatus(EnumVideoStatus.fail.getCode()); + videoUpd.setVideoStatus(EnumVideoStatus.hy_fail.getCode()); List list = photoSpeakVideoService.findList(videoUpd); if (list != null && list.size() > 0) { for (PhotoSpeakVideo video : list) { diff --git a/suimangService/src/main/java/com/iformall/domain/po/sm/PhotoSpeakVideo.java b/suimangService/src/main/java/com/iformall/domain/po/sm/PhotoSpeakVideo.java index dc9d92e..132c18c 100644 --- a/suimangService/src/main/java/com/iformall/domain/po/sm/PhotoSpeakVideo.java +++ b/suimangService/src/main/java/com/iformall/domain/po/sm/PhotoSpeakVideo.java @@ -157,7 +157,7 @@ public class PhotoSpeakVideo extends TenantEntity { private String saveDir; - private Integer videoHyStatus; +// private Integer videoHyStatus; private Integer isHy;//是否超分(1、是,0、否) diff --git a/suimangService/src/main/java/com/iformall/enums/EnumVideoStatus.java b/suimangService/src/main/java/com/iformall/enums/EnumVideoStatus.java index 1a603dd..0318658 100644 --- a/suimangService/src/main/java/com/iformall/enums/EnumVideoStatus.java +++ b/suimangService/src/main/java/com/iformall/enums/EnumVideoStatus.java @@ -15,7 +15,15 @@ public enum EnumVideoStatus { fail(3, "生成视频失败"), upload_ing(4,"上传视频中"), upload_success(5,"上传视频成功"), - upload_fail(6,"上传视频失败") + upload_fail(6,"上传视频失败"), + +// 超分视频状态 + hy_ing(7, "超分视频生成中"), + hy_success(8,"超分视频生成成功"), + hy_fail(9, "超分视频生成失败"), + hy_upload_ing(10,"超分视频上传中"), + hy_upload_success(11,"超分视频上传成功"), + hy_upload_fail(12,"超分视频上传失败"), ; public static EnumVideoStatus getEnum(Integer code) { diff --git a/suimangService/src/main/java/com/iformall/service/sm/impl/PhotoSpeakVideoServiceImpl.java b/suimangService/src/main/java/com/iformall/service/sm/impl/PhotoSpeakVideoServiceImpl.java index 1705434..a489607 100644 --- a/suimangService/src/main/java/com/iformall/service/sm/impl/PhotoSpeakVideoServiceImpl.java +++ b/suimangService/src/main/java/com/iformall/service/sm/impl/PhotoSpeakVideoServiceImpl.java @@ -358,44 +358,47 @@ public class PhotoSpeakVideoServiceImpl implements PhotoSpeakVideoService { try { AiVideoHqResult result = AiVideoHelper.videoHq(param); if (result.isSuccess()) { - speakVideo.setVideoHyStatus(EnumVideoStatus.success.getCode()); + speakVideo.setVideoStatus(EnumVideoStatus.hy_success.getCode()); speakVideo.setVideoMsg("超分视频生成成功"); speakVideo.setVideoPath(result.getUrl()); this.updateById(speakVideo); return new ResultData(); } - speakVideo.setVideoHyStatus(EnumVideoStatus.draft.getCode()); + speakVideo.setVideoStatus(EnumVideoStatus.hy_fail.getCode()); speakVideo.setVideoMsg("Mata视频超分失败"); + speakVideo.setIsHy(EnumYesOrNo.NO.getCode()); this.updateById(speakVideo); return new ResultData(result.getCode(), result.getMsgInfo(result.getCode(),result.getMsg())); }catch (Exception e){ e.printStackTrace(); - speakVideo.setVideoHyStatus(EnumVideoStatus.draft.getCode()); + speakVideo.setVideoStatus(EnumVideoStatus.hy_fail.getCode()); speakVideo.setVideoMsg("Mata视频超分失败"); + speakVideo.setIsHy(EnumYesOrNo.NO.getCode()); this.updateById(speakVideo); return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"Meta接口请求异常"); } } catch (Exception e) { e.printStackTrace(); - speakVideo.setVideoHyStatus(EnumVideoStatus.draft.getCode()); - speakVideo.setVideoMsg("接口请求异常"); + speakVideo.setVideoStatus(EnumVideoStatus.hy_fail.getCode()); + speakVideo.setVideoMsg("超分视频接口请求异常"); + speakVideo.setIsHy(EnumYesOrNo.NO.getCode()); this.updateById(speakVideo); - return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "接口请求异常"); + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "超分视频接口请求异常"); } } @Async @Override public void uploadHyVideo(PhotoSpeakVideo mouldVideo){ - if(EnumVideoStatus.success.getCode().equals(mouldVideo.getVideoHyStatus()) - || EnumVideoStatus.upload_fail.getCode().equals(mouldVideo.getVideoHyStatus())){ + if(EnumVideoStatus.hy_success.getCode().equals(mouldVideo.getVideoStatus()) + || EnumVideoStatus.hy_upload_fail.getCode().equals(mouldVideo.getVideoStatus())){ String url = hy_url + mouldVideo.getVideoPath(); VideUploadResult result = videoFactory.getExcutor(videoType).uploadVideoPath(mouldVideo.getTitle(), url); if(result.isSuccess()){ PhotoSpeakVideo videoUpd = new PhotoSpeakVideo(); videoUpd.setId(mouldVideo.getId()); videoUpd.setVideoId(result.getVideoId()); - videoUpd.setVideoHyStatus(EnumVideoStatus.upload_ing.getCode()); + videoUpd.setVideoStatus(EnumVideoStatus.hy_upload_ing.getCode()); this.saveOrUpdate(videoUpd); AtomicInteger integer = new AtomicInteger(30); @@ -412,22 +415,23 @@ public class PhotoSpeakVideoServiceImpl implements PhotoSpeakVideoService { mouldVideo.setVideoPlayUrl(videoDetail.getVideoUrl()); mouldVideo.setVideoTime(videoDetail.getDuration()); mouldVideo.setVideoSize(videoDetail.getSize()); - mouldVideo.setIsHy(2);//超分视频生成成功了状态为2 - mouldVideo.setVideoHyStatus(EnumVideoStatus.upload_success.getCode()); + mouldVideo.setVideoStatus(EnumVideoStatus.hy_upload_success.getCode()); this.updateById(mouldVideo); break; } } if (integer.getAndDecrement() <= 0){ - mouldVideo.setVideoHyStatus(EnumVideoStatus.fail.getCode()); + mouldVideo.setVideoStatus(EnumVideoStatus.hy_fail.getCode()); + mouldVideo.setIsHy(EnumYesOrNo.NO.getCode()); mouldVideo.setVideoMsg("视频上传失败,点击“编辑”重试"); this.updateById(mouldVideo); break; } } catch (InterruptedException e) { e.printStackTrace(); - mouldVideo.setVideoHyStatus(EnumVideoStatus.fail.getCode()); + mouldVideo.setVideoStatus(EnumVideoStatus.hy_fail.getCode()); + mouldVideo.setIsHy(EnumYesOrNo.NO.getCode()); mouldVideo.setVideoMsg("视频上传失败,点击“编辑”重试"); this.updateById(mouldVideo); } @@ -439,7 +443,7 @@ public class PhotoSpeakVideoServiceImpl implements PhotoSpeakVideoService { @Override public List getUpLoadHyIngList() { PhotoSpeakVideo umVideoQ = new PhotoSpeakVideo(); - umVideoQ.setVideoHyStatus(EnumVideoStatus.upload_ing.getCode()); + umVideoQ.setVideoStatus(EnumVideoStatus.hy_upload_ing.getCode()); return photoSpeakVideoMapper.getSortList(umVideoQ); } @@ -447,8 +451,8 @@ public class PhotoSpeakVideoServiceImpl implements PhotoSpeakVideoService { public List getNotHyUploadList() { PhotoSpeakVideo umVideoQ = new PhotoSpeakVideo(); List videoStatuss = new ArrayList<>(); - videoStatuss.add(EnumVideoStatus.success.getCode()); - videoStatuss.add(EnumVideoStatus.upload_fail.getCode()); + videoStatuss.add(EnumVideoStatus.hy_success.getCode()); + videoStatuss.add(EnumVideoStatus.hy_upload_fail.getCode()); umVideoQ.setVideoStatuss(videoStatuss); return photoSpeakVideoMapper.getSortList(umVideoQ); } diff --git a/suimangService/src/main/java/com/iformall/sm/AiVideoHelper.java b/suimangService/src/main/java/com/iformall/sm/AiVideoHelper.java index 8fe0baf..d9e25b9 100644 --- a/suimangService/src/main/java/com/iformall/sm/AiVideoHelper.java +++ b/suimangService/src/main/java/com/iformall/sm/AiVideoHelper.java @@ -20,6 +20,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; +import sun.net.www.content.audio.wav; import java.nio.charset.StandardCharsets; import java.security.MessageDigest; @@ -48,15 +49,13 @@ public class AiVideoHelper { } private static String hy_url; @Value("${photo.hy_url}") - - public void setHyUrl(String url){ - this.hy_url = url; + public void setHyUrl(String hyUrl){ + this.hy_url = hyUrl; } private static String talk_url; @Value("${photo.talk}") - - public void setTalkUrl(String url){ - this.talk_url = url; + public void setTalkUrl(String talkUrl){ + this.talk_url = talkUrl; } public static String photo_speak_suffix = "/img_talking"; public static String image_quality_suffix = "/image_qualit"; @@ -248,9 +247,11 @@ public class AiVideoHelper { } public static AiVideoHqResult videoHq(AiVideoHqParam param) { - String response = doPost(hy_url + video_hq, JSONObject.toJSONString(param)); +// String response = doPost(hy_url + video_hq, JSONObject.toJSONString(param)); + String response = doPost("http://111.198.0.15:22288" + video_hq, JSONObject.toJSONString(param)); log.info("视频超分 end response:" + response); - log.info("视频超分 IP:" + hy_url + video_hq); +// log.info("视频超分 IP:" + hy_url + video_hq); + log.info("视频超分 IP:" + "http://111.198.0.15:22288" + video_hq); AiVideoHqResult result = new AiVideoHqResult(); if (StringUtils.isBlank(response)) { @@ -273,7 +274,7 @@ public class AiVideoHelper { result.setMsg("(MetaService)视频超分异常,请稍后重试"); return result; } - if (code.intValue() == 3000) { + if (code.intValue() == 5000) { result.setCode(200); result.setSuccess(true); result.setUrl(url + strURL); @@ -319,16 +320,16 @@ public class AiVideoHelper { // param.setUrl("None"); // AiPhotoSpeakResult video = AiVideoHelper.createPhotoSpeakVideo(param); - AiPhotoSpeakParam param = new AiPhotoSpeakParam(); - param.setCallback_url("https://phototest.metavatar.cc/C/callback/photo/speak"); - param.setTask_id(836805079248850944L); - param.setGen_txt("None"); - param.setImg(Base64Util.imageUrlToBase64("https://suimang.oss-accelerate.aliyuncs.com/capi/2023-06-07/6da595fe12ef405bb6434f31e6bad4ec.png")); - param.setGender("None"); - param.setVoice_id("default"); - param.setVoice_style("default"); - param.setUrl("https://video.metavatar.cc/sv/262b03bd-18929af12fd/262b03bd-18929af12fd.mp3"); - AiPhotoSpeakResult video = AiVideoHelper.createPhotoSpeakVideo(param); +// AiPhotoSpeakParam param = new AiPhotoSpeakParam(); +// param.setCallback_url("https://phototest.metavatar.cc/C/callback/photo/speak"); +// param.setTask_id(836805079248850944L); +// param.setGen_txt("None"); +// param.setImg(Base64Util.imageUrlToBase64("https://suimang.oss-accelerate.aliyuncs.com/capi/2023-06-07/6da595fe12ef405bb6434f31e6bad4ec.png")); +// param.setGender("None"); +// param.setVoice_id("default"); +// param.setVoice_style("default"); +// param.setUrl("https://video.metavatar.cc/sv/262b03bd-18929af12fd/262b03bd-18929af12fd.mp3"); +// AiPhotoSpeakResult video = AiVideoHelper.createPhotoSpeakVideo(param); // AiCheckPhotoParam param = new AiCheckPhotoParam(); // String img = Base64Util.imageUrlToBase64("https://suimang.oss-accelerate.aliyuncs.com/builtin/personmould/16760216806604820_cSHoijDX_grace_1080.jpg"); @@ -344,11 +345,13 @@ public class AiVideoHelper { // AiPreviewResult result = AiVideoHelper.voicePreview(param); // System.out.println(result); -// AiVideoHqParam param = new AiVideoHqParam(); -// param.setSave_dir("static/video/2023-07-06/16886220017209544_wav.mp4"); -// param.setAudio_path("static/mp3/2023-07-06/291ab7dc-18929b6e89e_convert.wav"); -// AiVideoHqResult result = AiVideoHelper.videoHq(param); -// System.out.println(result); + AiVideoHqParam param = new AiVideoHqParam(); + param.setSave_dir("static/tts/2023-07-07/16886958135060428.wav.mp4"); + param.setAudio_path("static/tts/2023-07-07/16886958135060428.wav"); + param.setCallback_url("https://phototest.metavatar.cc/C/callback/photo/speak"); + param.setTask_id(836541377936281600L); + AiVideoHqResult result = AiVideoHelper.videoHq(param); + System.out.println(result); }