Explorar el Código

更新支持的视频和音频编码

reghao hace 2 años
padre
commit
fcc8c6a201

+ 7 - 1
dfs-store/src/main/java/cn/reghao/dfs/store/task/VideoFileProcessor.java

@@ -23,6 +23,8 @@ import org.springframework.stereotype.Service;
 
 import java.io.File;
 import java.io.IOException;
+import java.util.HashSet;
+import java.util.Set;
 import java.util.UUID;
 import java.util.concurrent.ExecutorService;
 
@@ -38,6 +40,8 @@ public class VideoFileProcessor {
     private final ObjectNameService objectNameService;
     private final FileStoreService fileStoreService;
     private final ExecutorService threadPool = ThreadPoolWrapper.threadPool("converter-pool", 10);
+    private final Set<String> audioCodecs = new HashSet<>();
+    private final Set<String> videoCodecs = new HashSet<>();
 
     public VideoFileProcessor(MediaRepository mediaRepository, PutObjectService putObjectService,
                               ObjectNameService objectNameService, FileStoreService fileStoreService) {
@@ -45,6 +49,8 @@ public class VideoFileProcessor {
         this.putObjectService = putObjectService;
         this.objectNameService = objectNameService;
         this.fileStoreService = fileStoreService;
+        this.audioCodecs.addAll(Set.of("aac", "mp3"));
+        this.videoCodecs.addAll(Set.of("h264"));
     }
 
     public void process(String objectName, String objectId, String absolutePath) {
@@ -76,7 +82,7 @@ public class VideoFileProcessor {
         String audioCodec = mediaProps.getAudioProps().getCodecName();
         String videoCodec = mediaProps.getVideoProps().getCodecName();
         VideoUrl videoUrl = null;
-        if ("aac".equals(audioCodec) && "h264".equals(videoCodec)) {
+        if (audioCodecs.contains(audioCodec) && videoCodecs.contains(videoCodec)) {
             MediaResolution mediaResolution = MediaQuality.getQuality(width, height);
             String urlType = FileType.getVideoUrlType(absolutePath);
             String url = objectNameService.getObjectUrl(objectName);