|
|
@@ -0,0 +1,74 @@
|
|
|
+package cn.reghao.dfs.store.task;
|
|
|
+
|
|
|
+import cn.reghao.dfs.store.db.mapper.VideoUrlMapper;
|
|
|
+import cn.reghao.dfs.store.db.repository.ObjectRepository;
|
|
|
+import cn.reghao.dfs.store.model.po.VideoUrl;
|
|
|
+import cn.reghao.jutil.media.FFmpegWrapper;
|
|
|
+import cn.reghao.jutil.media.model.AudioProps;
|
|
|
+import cn.reghao.jutil.media.model.MediaProps;
|
|
|
+import cn.reghao.jutil.media.model.VideoProps;
|
|
|
+import cn.reghao.oss.api.dto.ObjectMeta;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import javax.annotation.PostConstruct;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @author reghao
|
|
|
+ * @date 2023-08-29 18:03:39
|
|
|
+ */
|
|
|
+@Slf4j
|
|
|
+@Service
|
|
|
+public class VideoUrlUpdater {
|
|
|
+ @Autowired
|
|
|
+ VideoUrlMapper videoUrlMapper;
|
|
|
+ @Autowired
|
|
|
+ ObjectRepository objectRepository;
|
|
|
+
|
|
|
+ @PostConstruct
|
|
|
+ public void update() {
|
|
|
+ log.info("开始更新 VideoUrl...");
|
|
|
+
|
|
|
+ List<VideoUrl> list = videoUrlMapper.findAll();
|
|
|
+ for (VideoUrl videoUrl : list) {
|
|
|
+ String objectId = videoUrl.getObjectId();
|
|
|
+ ObjectMeta objectMeta = objectRepository.getObjectMetaById(objectId);
|
|
|
+ String objectName = objectMeta.getObjectName();
|
|
|
+ String absolutePath = objectMeta.getAbsolutePath();
|
|
|
+
|
|
|
+ MediaProps mediaProps = FFmpegWrapper.getMediaProps(absolutePath);
|
|
|
+ if (mediaProps == null) {
|
|
|
+ log.info("{} 的 FFmpeg 媒体信息为 null", objectName);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ VideoProps videoProps = mediaProps.getVideoProps();
|
|
|
+ if (videoProps == null) {
|
|
|
+ log.info("{} 的 FFmpeg 视频信息为 null", objectName);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ String videoCodec = mediaProps.getVideoProps().getCodecName();
|
|
|
+ String audioCodec = null;
|
|
|
+ AudioProps audioProps1 = mediaProps.getAudioProps();
|
|
|
+ if (audioProps1 != null) {
|
|
|
+ audioCodec = audioProps1.getCodecName();
|
|
|
+ }
|
|
|
+
|
|
|
+ String qualityStr = videoUrl.getQualityStr();
|
|
|
+ String qualityStr1 = qualityStr.replace("p", "");
|
|
|
+ int quality = Integer.parseInt(qualityStr1);
|
|
|
+
|
|
|
+ videoUrl.setVideoCodec(videoCodec);
|
|
|
+ videoUrl.setAudioCodec(audioCodec);
|
|
|
+ videoUrl.setQuality(quality);
|
|
|
+ videoUrlMapper.update(videoUrl);
|
|
|
+
|
|
|
+ log.info("{} 的 VideoUrl 已更新", objectName);
|
|
|
+ }
|
|
|
+
|
|
|
+ log.info("VideoUrl 更新完成...");
|
|
|
+ }
|
|
|
+}
|