Skip to content

Commit dda80c3

Browse files
Optimise video compress query
- Reduce size and provide better quality output video
1 parent fbc7a66 commit dda80c3

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
@@ -223,31 +223,35 @@ public class FFmpegQueryExtension {
223223
}
224224

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

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

0 commit comments

Comments
 (0)