From 3ac4fb0f31a6805140f7206813393895a71b226e Mon Sep 17 00:00:00 2001 From: xufulong <839789740@qq.com> Date: Wed, 23 Sep 2020 23:07:43 +0800 Subject: [PATCH] add time to gif add time to gif --- .../com/frank/ffmpeg/activity/VideoHandleActivity.java | 3 ++- .../main/java/com/frank/ffmpeg/util/FFmpegUtil.java | 10 +++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/frank/ffmpeg/activity/VideoHandleActivity.java b/app/src/main/java/com/frank/ffmpeg/activity/VideoHandleActivity.java index bc1f5bb..e52dd6a 100644 --- a/app/src/main/java/com/frank/ffmpeg/activity/VideoHandleActivity.java +++ b/app/src/main/java/com/frank/ffmpeg/activity/VideoHandleActivity.java @@ -228,7 +228,8 @@ public class VideoHandleActivity extends BaseActivity { int frameRate = 10; String palettePath = PATH + "/palette.png"; FileUtil.deleteFile(palettePath); - String[] paletteCmd = FFmpegUtil.generatePalette(srcFile, frameRate, width, palettePath); + String[] paletteCmd = FFmpegUtil.generatePalette(srcFile, gifStart, gifDuration, + frameRate, width, palettePath); String[] gifCmd = FFmpegUtil.generateGifByPalette(srcFile, palettePath, gifStart, gifDuration, frameRate, width, Video2Gif); List cmdList = new ArrayList<>(); 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 f36d3c0..447f697 100644 --- a/app/src/main/java/com/frank/ffmpeg/util/FFmpegUtil.java +++ b/app/src/main/java/com/frank/ffmpeg/util/FFmpegUtil.java @@ -288,13 +288,17 @@ public class FFmpegUtil { * * @param srcFile input file * @param frameRate frameRate of the gif + * @param startTime startTime in the video + * @param duration duration, how long you want to * @param width width * @param targetFile output file * @return generate palette success or not */ - public static String[] generatePalette(String srcFile, int frameRate, int width, String targetFile) { - String paletteCmd = "ffmpeg -i %s -vf fps=%d,scale=%d:-1:flags=lanczos,palettegen %s"; - paletteCmd = String.format(Locale.getDefault(), paletteCmd, srcFile, frameRate, width, targetFile); + public static String[] generatePalette(String srcFile, int startTime, int duration, + int frameRate, int width, String targetFile) { + String paletteCmd = "ffmpeg -i %s -ss %d -t %d -vf fps=%d,scale=%d:-1:flags=lanczos,palettegen %s"; + paletteCmd = String.format(Locale.getDefault(), paletteCmd, srcFile, startTime, + duration, frameRate, width, targetFile); return paletteCmd.split(" "); }