From c9c3529f2ffbab3c007440a142d2280b74b2c7d4 Mon Sep 17 00:00:00 2001 From: xufuji456 <839789740@qq.com> Date: Fri, 30 Jul 2021 09:11:00 +0800 Subject: [PATCH] Change gop(key frame interval) of video --- .../com/frank/ffmpeg/activity/VideoHandleActivity.kt | 9 ++++++++- app/src/main/java/com/frank/ffmpeg/util/FFmpegUtil.java | 6 ++++++ app/src/main/res/layout/activity_video_handle.xml | 7 +++++++ app/src/main/res/values-en/strings.xml | 1 + app/src/main/res/values/strings.xml | 3 ++- 5 files changed, 24 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/frank/ffmpeg/activity/VideoHandleActivity.kt b/app/src/main/java/com/frank/ffmpeg/activity/VideoHandleActivity.kt index fdf0006..1d6d4fa 100644 --- a/app/src/main/java/com/frank/ffmpeg/activity/VideoHandleActivity.kt +++ b/app/src/main/java/com/frank/ffmpeg/activity/VideoHandleActivity.kt @@ -119,7 +119,8 @@ class VideoHandleActivity : BaseActivity() { R.id.btn_flv, R.id.btn_thumbnail, R.id.btn_add_subtitle, - R.id.btn_rotate + R.id.btn_rotate, + R.id.btn_gop ) } @@ -339,6 +340,12 @@ class VideoHandleActivity : BaseActivity() { val addSubtitlePath = PATH + File.separator + "rotate" + rotateDegree + suffix commandLine = FFmpegUtil.rotateVideo(srcFile, rotateDegree, addSubtitlePath) } + R.id.btn_gop// change the gop(key frame interval) of video + -> { + val gop = 30 + val gopPath = PATH + File.separator + "gop" + gop + suffix + commandLine = FFmpegUtil.changeGOP(srcFile, gop, gopPath) + } else -> { } } diff --git a/app/src/main/java/com/frank/ffmpeg/util/FFmpegUtil.java b/app/src/main/java/com/frank/ffmpeg/util/FFmpegUtil.java index 0b54844..3edf4ec 100644 --- a/app/src/main/java/com/frank/ffmpeg/util/FFmpegUtil.java +++ b/app/src/main/java/com/frank/ffmpeg/util/FFmpegUtil.java @@ -699,4 +699,10 @@ public class FFmpegUtil { return rotateCmd.split(" "); } + public static String[] changeGOP(String inputPath, int gop, String outputPath) { + String rotateCmd = "ffmpeg -i %s -g %d %s"; + rotateCmd = String.format(Locale.getDefault(), rotateCmd, inputPath, gop, outputPath); + return rotateCmd.split(" "); + } + } diff --git a/app/src/main/res/layout/activity_video_handle.xml b/app/src/main/res/layout/activity_video_handle.xml index f1ecc29..4be7d01 100644 --- a/app/src/main/res/layout/activity_video_handle.xml +++ b/app/src/main/res/layout/activity_video_handle.xml @@ -156,6 +156,13 @@ android:layout_marginTop="4dp" android:text="@string/video_rotate"/> +