diff --git a/app/src/main/java/com/coder/ffmpegtest/ui/KFFmpegCommandActivity.kt b/app/src/main/java/com/coder/ffmpegtest/ui/KFFmpegCommandActivity.kt
index 5a5e8ed..16564c6 100644
--- a/app/src/main/java/com/coder/ffmpegtest/ui/KFFmpegCommandActivity.kt
+++ b/app/src/main/java/com/coder/ffmpegtest/ui/KFFmpegCommandActivity.kt
@@ -146,6 +146,7 @@ class KFFmpegCommandActivity : AppCompatActivity() {
36 -> hls2Video()
37 -> audio2Amr()
38 -> makeMuteAudio()
+ 39 -> cropVideoScreen()
}
}
})
@@ -530,6 +531,13 @@ class KFFmpegCommandActivity : AppCompatActivity() {
}
}
+ private fun cropVideoScreen() {
+ targetPath = externalCacheDir.toString() + File.separator + "target.mp4"
+ GlobalScope.launch {
+ FFmpegCommand.runCmd(FFmpegUtils.cropVideoScreen(mVideoPath, targetPath, 500, 500, 0, 100), callback("裁切视频画面成功", targetPath))
+ }
+ }
+
private fun callback(msg: String, targetPath: String?): CommonCallBack? {
return object : CommonCallBack() {
override fun onStart() {
diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml
index 8d41ce0..03d4230 100644
--- a/app/src/main/res/values/arrays.xml
+++ b/app/src/main/res/values/arrays.xml
@@ -67,6 +67,7 @@
- 合成hls-视频
- 音频转码amr
- 生成静音音频
+ - 视频画面裁切
\ No newline at end of file
diff --git a/ffmpeg/src/main/java/com/coder/ffmpeg/utils/FFmpegUtils.kt b/ffmpeg/src/main/java/com/coder/ffmpeg/utils/FFmpegUtils.kt
index 8869c9a..fb7ec70 100644
--- a/ffmpeg/src/main/java/com/coder/ffmpeg/utils/FFmpegUtils.kt
+++ b/ffmpeg/src/main/java/com/coder/ffmpeg/utils/FFmpegUtils.kt
@@ -913,4 +913,20 @@ object FFmpegUtils {
command = String.format(command, src,url)
return command.split(" ").toTypedArray()
}
+
+ /**
+ * 使用ffmpeg进行视频画面裁切
+ * @param srcFile 源文件
+ * @param targetFile 目标文件
+ * @param width 输出视频宽度
+ * @param height 输出视频高度
+ * @param x 裁切视频的基准点x坐标
+ * @param y 裁切视频的基准点y坐标
+ */
+ @JvmStatic
+ fun cropVideoScreen(srcFile: String?, targetFile: String?, width: Int, height: Int, x: Int, y: Int): Array {
+ var command = "ffmpeg -i %s -vf crop=%d:%d:%d:%d %s -y"
+ command = String.format(command, srcFile, width, height, x, y, targetFile)
+ return command.split(" ").toTypedArray()
+ }
}
\ No newline at end of file