From b09577fc8158240395f2d70a9416628138d22fd7 Mon Sep 17 00:00:00 2001 From: ThisBirchWood Date: Tue, 20 May 2025 12:07:25 +0200 Subject: [PATCH] RENAME ClipConfig entity to VideoMetadata --- .../vodsystem/controllers/EditController.java | 6 +++--- .../controllers/UploadController.java | 9 +++------ .../java/com/ddf/vodsystem/entities/Job.java | 2 +- .../{ClipConfig.java => VideoMetadata.java} | 2 +- .../vodsystem/services/CompressionService.java | 18 +++++++++--------- .../ddf/vodsystem/services/EditService.java | 16 ++++++++-------- 6 files changed, 25 insertions(+), 28 deletions(-) rename src/main/java/com/ddf/vodsystem/entities/{ClipConfig.java => VideoMetadata.java} (88%) diff --git a/src/main/java/com/ddf/vodsystem/controllers/EditController.java b/src/main/java/com/ddf/vodsystem/controllers/EditController.java index dc51809..3ddc8ab 100644 --- a/src/main/java/com/ddf/vodsystem/controllers/EditController.java +++ b/src/main/java/com/ddf/vodsystem/controllers/EditController.java @@ -1,6 +1,6 @@ package com.ddf.vodsystem.controllers; -import com.ddf.vodsystem.entities.ClipConfig; +import com.ddf.vodsystem.entities.VideoMetadata; import com.ddf.vodsystem.services.EditService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; @@ -18,8 +18,8 @@ public class EditController { } @PostMapping("edit/{uuid}") - public ResponseEntity edit(@PathVariable("uuid") String uuid, @ModelAttribute ClipConfig clipConfig) { - editService.edit(uuid, clipConfig); + public ResponseEntity edit(@PathVariable("uuid") String uuid, @ModelAttribute VideoMetadata videoMetadata) { + editService.edit(uuid, videoMetadata); return new ResponseEntity<>(uuid, HttpStatus.OK); } diff --git a/src/main/java/com/ddf/vodsystem/controllers/UploadController.java b/src/main/java/com/ddf/vodsystem/controllers/UploadController.java index d53e8e8..7307ec1 100644 --- a/src/main/java/com/ddf/vodsystem/controllers/UploadController.java +++ b/src/main/java/com/ddf/vodsystem/controllers/UploadController.java @@ -4,14 +4,11 @@ import com.ddf.vodsystem.services.UploadService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @RestController -@RequestMapping("api/v1/") +@RequestMapping("api/v1/upload") public class UploadController { private final UploadService uploadService; @@ -21,7 +18,7 @@ public class UploadController { this.uploadService = uploadService; } - @PostMapping("/upload") + @PostMapping("/") public ResponseEntity uploadVideo(@RequestParam("file") MultipartFile file) { String uuid = uploadService.upload(file); diff --git a/src/main/java/com/ddf/vodsystem/entities/Job.java b/src/main/java/com/ddf/vodsystem/entities/Job.java index 402ca58..a0b4a50 100644 --- a/src/main/java/com/ddf/vodsystem/entities/Job.java +++ b/src/main/java/com/ddf/vodsystem/entities/Job.java @@ -15,7 +15,7 @@ public class Job { private File outputFile; // configs - private ClipConfig clipConfig; + private VideoMetadata videoMetadata; // job status private JobStatus status = JobStatus.NOT_READY; diff --git a/src/main/java/com/ddf/vodsystem/entities/ClipConfig.java b/src/main/java/com/ddf/vodsystem/entities/VideoMetadata.java similarity index 88% rename from src/main/java/com/ddf/vodsystem/entities/ClipConfig.java rename to src/main/java/com/ddf/vodsystem/entities/VideoMetadata.java index 522e6f8..144bf99 100644 --- a/src/main/java/com/ddf/vodsystem/entities/ClipConfig.java +++ b/src/main/java/com/ddf/vodsystem/entities/VideoMetadata.java @@ -3,7 +3,7 @@ package com.ddf.vodsystem.entities; import lombok.Data; @Data -public class ClipConfig { +public class VideoMetadata { private Float startPoint; private Float endPoint; private Float fps; diff --git a/src/main/java/com/ddf/vodsystem/services/CompressionService.java b/src/main/java/com/ddf/vodsystem/services/CompressionService.java index 725fef9..e04783f 100644 --- a/src/main/java/com/ddf/vodsystem/services/CompressionService.java +++ b/src/main/java/com/ddf/vodsystem/services/CompressionService.java @@ -1,6 +1,6 @@ package com.ddf.vodsystem.services; -import com.ddf.vodsystem.entities.ClipConfig; +import com.ddf.vodsystem.entities.VideoMetadata; import com.ddf.vodsystem.entities.JobStatus; import com.ddf.vodsystem.entities.Job; @@ -84,19 +84,19 @@ public class CompressionService { } } - private ProcessBuilder buildCommand(File inputFile, File outputFile, ClipConfig clipConfig) { + private ProcessBuilder buildCommand(File inputFile, File outputFile, VideoMetadata videoMetadata) { ArrayList command = new ArrayList<>(); command.add("ffmpeg"); command.add("-progress"); command.add("pipe:1"); command.add("-y"); - Float length = clipConfig.getEndPoint() - clipConfig.getStartPoint(); - buildInputs(command, inputFile, clipConfig.getStartPoint(), clipConfig.getEndPoint()); - buildFilters(command, clipConfig.getFps(), clipConfig.getWidth(), clipConfig.getHeight()); + Float length = videoMetadata.getEndPoint() - videoMetadata.getStartPoint(); + buildInputs(command, inputFile, videoMetadata.getStartPoint(), videoMetadata.getEndPoint()); + buildFilters(command, videoMetadata.getFps(), videoMetadata.getWidth(), videoMetadata.getHeight()); - if (clipConfig.getFileSize() != null) { - buildBitrate(command, length, clipConfig.getFileSize()); + if (videoMetadata.getFileSize() != null) { + buildBitrate(command, length, videoMetadata.getFileSize()); } // Output file @@ -109,12 +109,12 @@ public class CompressionService { public void run(Job job) throws IOException, InterruptedException { logger.info("FFMPEG starting..."); - ProcessBuilder pb = buildCommand(job.getInputFile(), job.getOutputFile(), job.getClipConfig()); + ProcessBuilder pb = buildCommand(job.getInputFile(), job.getOutputFile(), job.getVideoMetadata()); Process process = pb.start(); job.setStatus(JobStatus.RUNNING); BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); - float length = job.getClipConfig().getEndPoint() - job.getClipConfig().getStartPoint(); + float length = job.getVideoMetadata().getEndPoint() - job.getVideoMetadata().getStartPoint(); String line; while ((line = reader.readLine()) != null) { diff --git a/src/main/java/com/ddf/vodsystem/services/EditService.java b/src/main/java/com/ddf/vodsystem/services/EditService.java index 94c00b0..4c08a59 100644 --- a/src/main/java/com/ddf/vodsystem/services/EditService.java +++ b/src/main/java/com/ddf/vodsystem/services/EditService.java @@ -1,6 +1,6 @@ package com.ddf.vodsystem.services; -import com.ddf.vodsystem.entities.ClipConfig; +import com.ddf.vodsystem.entities.VideoMetadata; import com.ddf.vodsystem.entities.Job; import com.ddf.vodsystem.entities.JobStatus; import org.springframework.stereotype.Service; @@ -13,10 +13,10 @@ public class EditService { this.jobService = jobService; } - public void edit(String uuid, ClipConfig clipConfig) { + public void edit(String uuid, VideoMetadata videoMetadata) { Job job = jobService.getJob(uuid); - validateClipConfig(clipConfig); - job.setClipConfig(clipConfig); + validateClipConfig(videoMetadata); + job.setVideoMetadata(videoMetadata); } public void process(String uuid) { @@ -33,10 +33,10 @@ public class EditService { return job.getProgress(); } - private void validateClipConfig(ClipConfig clipConfig) { - Float start = clipConfig.getStartPoint(); - Float end = clipConfig.getEndPoint(); - Float fileSize = clipConfig.getFileSize(); + private void validateClipConfig(VideoMetadata videoMetadata) { + Float start = videoMetadata.getStartPoint(); + Float end = videoMetadata.getEndPoint(); + Float fileSize = videoMetadata.getFileSize(); if (start != null && start < 0) { throw new IllegalArgumentException("Start point cannot be negative");