Skip to content

Commit

Permalink
handle video scale
Browse files Browse the repository at this point in the history
  • Loading branch information
bayu committed Dec 30, 2021
1 parent e3d521b commit 4759976
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import android.widget.Toast
import androidx.activity.result.contract.ActivityResultContracts
import com.mncgroup.innovideoconverter.InnoVideoConverter
import com.mncgroup.innovideoconverter.InnoVideoConverterCallback
import com.mncgroup.innovideoconverter.InnoVideoScale
import com.mncgroup.innovideoconverter.QualityOption
import id.mncinnovation.compressingvideo.databinding.ActivityMainBinding
import java.io.File
Expand Down Expand Up @@ -116,7 +117,11 @@ class MainActivity : AppCompatActivity() {

binding.btnCompress.setOnClickListener {
fileUriVideo?.let { fileUriVideo ->
innoVideoConverter.compressVideoQuality(fileUriVideo, QualityOption.LOW)
innoVideoConverter.compressVideoQuality(
fileUriVideo,
QualityOption.LOW,
InnoVideoScale(-1, 720)
)
}
}

Expand Down
4 changes: 3 additions & 1 deletion inno-video-converter/proguard-rules.pro
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,6 @@

-keep interface com.mncgroup.innovideoconverter.InnoVideoConverterCallback { *; }

-keep class com.mncgroup.innovideoconverter.QualityOption { * ; }
-keep class com.mncgroup.innovideoconverter.QualityOption { * ; }

-keep class com.mncgroup.innovideoconverter.InnoVideoScale { *; }
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,16 @@ class InnoVideoConverter(
}

/**
* Compress file input uri file video with option quality
* Compress file input uri file video with quality option
* @param fileUriVideo file uri of video file
* @param qualityOption option of video quality.
*
*/
fun compressVideoQuality(fileUriVideo: Uri, qualityOption: QualityOption) {
fun compressVideoQuality(
fileUriVideo: Uri,
qualityOption: QualityOption,
scale: InnoVideoScale
) {
val inputFile = FFmpegKitConfig.getSafParameterForRead(activity, fileUriVideo)
val file = getFileCacheDir()
val crf = when (qualityOption) {
Expand All @@ -30,7 +34,7 @@ class InnoVideoConverter(
QualityOption.LOW -> "28"
}
val exe =
"-y -i " + inputFile + " -vf scale=-1:720 -preset veryfast -crf $crf " + file.absolutePath
"-y -i " + inputFile + " -vf scale=${scale.width}:${scale.height} -preset veryfast -crf $crf " + file.absolutePath
executeCommandAsync(exe, file.absolutePath)
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.mncgroup.innovideoconverter

/**
* scale video
* @property width scale widht of video, set -1 will tell app to automatically choose the correct width.
* @property height scale height of video, set -1 will tell app to automatically choose the correct height.
*
* Example scale:
* -1:720 : will tell app to scale height to 720 and thw width will automatically choose the correct width
*/
class InnoVideoScale(
var width: Int,
var height: Int
)

0 comments on commit 4759976

Please sign in to comment.