From bb57330bb530058b6d91fe52767d2d77b711700b Mon Sep 17 00:00:00 2001 From: ThisBirchWood Date: Thu, 8 May 2025 22:51:45 +0200 Subject: [PATCH] ADD cap for AudioBitrate --- src/main/java/com/ddf/vodsystem/entities/Job.java | 1 - .../java/com/ddf/vodsystem/services/FfmpegService.java | 10 +++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/ddf/vodsystem/entities/Job.java b/src/main/java/com/ddf/vodsystem/entities/Job.java index 3cbf23c..f00e115 100644 --- a/src/main/java/com/ddf/vodsystem/entities/Job.java +++ b/src/main/java/com/ddf/vodsystem/entities/Job.java @@ -55,6 +55,5 @@ public class Job implements Runnable { this.status = JobStatus.FINISHED; file.delete(); logger.info("Job {} finished", uuid); - } } diff --git a/src/main/java/com/ddf/vodsystem/services/FfmpegService.java b/src/main/java/com/ddf/vodsystem/services/FfmpegService.java index 0cbf463..8bdf578 100644 --- a/src/main/java/com/ddf/vodsystem/services/FfmpegService.java +++ b/src/main/java/com/ddf/vodsystem/services/FfmpegService.java @@ -31,6 +31,7 @@ public class FfmpegService { private Float fileSize; private static final float AUDIO_RATIO = 0.15f; + private static final float MAX_AUDIO_BITRATE = 128f; private static final float BITRATE_MULTIPLIER = 0.9f; private Pattern timePattern = Pattern.compile("time=([\\d:.]+)"); @@ -77,8 +78,15 @@ public class FfmpegService { float length = endPoint - startPoint; float bitrate = ((fileSize * 8) / length) * BITRATE_MULTIPLIER; - float video_bitrate = bitrate * (1 - AUDIO_RATIO); float audio_bitrate = bitrate * AUDIO_RATIO; + float video_bitrate; + + if (audio_bitrate > MAX_AUDIO_BITRATE) { + audio_bitrate = MAX_AUDIO_BITRATE; + video_bitrate = bitrate - MAX_AUDIO_BITRATE; + } else { + video_bitrate = bitrate * (1 - AUDIO_RATIO); + } command.add("-b:v"); command.add(video_bitrate + "k");