|
|
@@ -2,16 +2,11 @@ package cn.reghao.dfs.store.service.media;
|
|
|
|
|
|
import cn.reghao.dfs.store.db.mapper.VideoUrlMapper;
|
|
|
import cn.reghao.dfs.store.model.constant.VideoUrlType;
|
|
|
-import cn.reghao.dfs.store.model.dto.UploadingFile;
|
|
|
-import cn.reghao.dfs.store.model.dto.VideoFileSbt;
|
|
|
-import cn.reghao.dfs.store.model.po.ImageFile;
|
|
|
-import cn.reghao.dfs.store.model.po.ImageUrl;
|
|
|
+import cn.reghao.dfs.store.model.dto.*;
|
|
|
import cn.reghao.dfs.store.model.po.VideoUrl;
|
|
|
-import cn.reghao.dfs.store.model.dto.UploadedFile;
|
|
|
+import cn.reghao.dfs.store.model.vo.ImageFileRet;
|
|
|
import cn.reghao.dfs.store.service.FileUploadService;
|
|
|
-import cn.reghao.dfs.store.util.media.ImageOps;
|
|
|
import cn.reghao.dfs.store.util.media.VideoOps;
|
|
|
-import cn.reghao.dfs.store.model.dto.PathUrl;
|
|
|
import cn.reghao.dfs.store.db.mapper.VideoFileMapper;
|
|
|
import cn.reghao.dfs.store.model.po.VideoFile;
|
|
|
import cn.reghao.jutil.tool.id.IdGenerator;
|
|
|
@@ -20,7 +15,6 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.io.*;
|
|
|
-import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
|
/**
|
|
|
@@ -61,7 +55,6 @@ public class VideoFileService {
|
|
|
File videoLocalFile = new File(pathUrl.getAbsolutePath());
|
|
|
log.info("process video {} with FFmpeg...", videoFile.getVideoFileId());
|
|
|
setVideoProps(videoFile, fileId, videoLocalFile);
|
|
|
- setVideoCover(videoFile, videoLocalFile);
|
|
|
log.info("video {} processed...", videoFile.getVideoFileId());
|
|
|
|
|
|
videoFileMapper.save(videoFile);
|
|
|
@@ -102,40 +95,13 @@ public class VideoFileService {
|
|
|
videoUrlMapper.save(videoUrl);
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 将视频缩略图设置为视频封面
|
|
|
- *
|
|
|
- * @param
|
|
|
- * @return
|
|
|
- * @date 2021-08-18 上午10:08
|
|
|
- */
|
|
|
- private void setVideoCover(VideoFile videoFile, File file) throws Exception {
|
|
|
- ByteArrayOutputStream outputStream = VideoOps.thumbnailCover(file);
|
|
|
- byte[] bytes = outputStream.toByteArray();
|
|
|
- outputStream.close();
|
|
|
-
|
|
|
- ImageOps.Size size = ImageOps.info(new ByteArrayInputStream(bytes));
|
|
|
- boolean horizontal = size.getWidth() > size.getWidth();
|
|
|
-
|
|
|
- String filename = "default.jpg";
|
|
|
- long len = bytes.length;
|
|
|
- String contentType = "image/jpeg";
|
|
|
- InputStream in = new ByteArrayInputStream(bytes);
|
|
|
- UploadingFile uploadingFile = new UploadingFile(filename, len, contentType, in);
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void setVideoCover(String videoFileId, UploadingFile uploadingFile) throws Exception {
|
|
|
UploadedFile uploadedFile = fileUploadService.put(uploadingFile);
|
|
|
- String imageFileId = idGenerator.getUuid();
|
|
|
-
|
|
|
- ImageFile imageFile = new ImageFile(imageFileId, horizontal);
|
|
|
- String fileId = uploadedFile.getFileId();
|
|
|
- ImageUrl imageUrl = new ImageUrl(imageFileId, fileId, size.getWidth(), size.getHeight());
|
|
|
- imageFileService.saveImage(imageFile, List.of(imageUrl));
|
|
|
+ ImageFileRet imageFileRet = imageFileService.process(uploadedFile);
|
|
|
|
|
|
- String coverUrl = uploadedFile.getPathUrl().getUrl();
|
|
|
- videoFile.setCoverUrl(coverUrl);
|
|
|
- videoFile.setCoverUrlOriginal(coverUrl);
|
|
|
- }
|
|
|
-
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
- public void setVideoCover(String videoFileId, UploadingFile uploadingFile) {
|
|
|
+ String coverUrl = imageFileRet.getThumbnailUrl();
|
|
|
+ String coverUrlOriginal = imageFileRet.getOriginalUrl();
|
|
|
+ videoFileMapper.updateSetCover(videoFileId, coverUrl, coverUrlOriginal);
|
|
|
}
|
|
|
}
|