Skip to content

Commit 0e8d55e

Browse files
Optimise video compress query
- Reduce size and provide better quality output video
1 parent acc755b commit 0e8d55e

File tree

1 file changed

+21
-17
lines changed

1 file changed

+21
-17
lines changed

SSffmpegVideoOperation/src/main/java/com/simform/videooperations/FFmpegQueryExtension.kt

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -224,31 +224,35 @@ public class FFmpegQueryExtension {
224224
}
225225

226226
fun compressor(inputVideo: String, width: Int?, height: Int?, outputVideo: String): Array<String> {
227-
Common.getFrameRate(inputVideo)
228-
val inputs: ArrayList<String> = ArrayList()
227+
val inputs = ArrayList<String>()
228+
val targetWidth = width ?: 720
229+
val targetHeight = height ?: 1280
230+
229231
inputs.apply {
230232
add("-y")
231233
add("-i")
232234
add(inputVideo)
233-
add("-s")
234-
add("${width}x${height}")
235-
add("-r")
236-
add("${if (FRAME_RATE >= 10) FRAME_RATE - 5 else FRAME_RATE}")
237-
add("-vcodec")
238-
add("mpeg4")
235+
add("-vf")
236+
add("scale=$targetWidth:$targetHeight") // Resize to target dimensions
237+
add("-c:v")
238+
add("libx264")
239239
add("-b:v")
240-
add("150k")
241-
add("-b:a")
242-
add("48000")
243-
add("-ac")
244-
add("2")
245-
add("-ar")
246-
add("22050")
240+
add("600k") // Target video bitrate (adjust to make file smaller)
241+
add("-maxrate")
242+
add("700k") // Control peak bitrate
243+
add("-bufsize")
244+
add("1000k") // Smoothing buffer
247245
add("-preset")
248-
add("ultrafast")
246+
add("faster")
247+
add("-c:a")
248+
add("aac")
249+
add("-b:a")
250+
add("96k") // Lower audio bitrate
251+
add("-movflags")
252+
add("+faststart") // Optimize for streaming
249253
add(outputVideo)
250254
}
251-
return inputs.toArray(arrayOfNulls<String>(inputs.size))
255+
return inputs.toArray(arrayOfNulls(inputs.size))
252256
}
253257

254258
fun extractImages(inputVideo: String, output: String, spaceOfFrame: Float): Array<String> {

0 commit comments

Comments
 (0)