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