|
|
@@ -1,5 +1,8 @@
|
|
|
package cn.reghao.oss.store.rpc.media;
|
|
|
|
|
|
+import cn.reghao.jutil.media.FFmpegWrapper;
|
|
|
+import cn.reghao.jutil.media.model.MediaProps;
|
|
|
+import cn.reghao.oss.api.dto.ObjectMeta;
|
|
|
import cn.reghao.oss.store.db.repository.ObjectRepository;
|
|
|
import cn.reghao.oss.store.db.repository.VideoRepository;
|
|
|
import cn.reghao.oss.store.model.po.VideoFile;
|
|
|
@@ -11,6 +14,7 @@ import cn.reghao.oss.api.iface.media.VideoFileService;
|
|
|
import org.apache.dubbo.config.annotation.DubboService;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.time.LocalDateTime;
|
|
|
import java.util.List;
|
|
|
|
|
|
/**
|
|
|
@@ -20,6 +24,7 @@ import java.util.List;
|
|
|
@DubboService
|
|
|
@Service
|
|
|
public class VideoFileServiceImpl implements VideoFileService {
|
|
|
+ private final LocalDateTime epoch = LocalDateTime.parse("1970-01-01T08:00");
|
|
|
private final VideoRepository videoRepository;
|
|
|
private final ObjectRepository objectRepository;
|
|
|
private final SignService signService;
|
|
|
@@ -57,4 +62,25 @@ public class VideoFileServiceImpl implements VideoFileService {
|
|
|
});
|
|
|
return list;
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public LocalDateTime getCreateTime(String videoFileId) {
|
|
|
+ ObjectMeta objectMeta = objectRepository.getObjectMetaById(videoFileId);
|
|
|
+ if (objectMeta == null) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ String absolutePath = objectMeta.getAbsolutePath();
|
|
|
+ MediaProps mediaProps = FFmpegWrapper.getMediaProps(absolutePath);
|
|
|
+ if (mediaProps == null) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ LocalDateTime localDateTime = mediaProps.getCreateTime();
|
|
|
+ if (localDateTime != null && !localDateTime.equals(epoch)) {
|
|
|
+ return localDateTime;
|
|
|
+ }
|
|
|
+
|
|
|
+ return null;
|
|
|
+ }
|
|
|
}
|