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 fe2008c..1ec269f 100644
--- a/app/src/main/java/com/frank/ffmpeg/activity/VideoHandleActivity.java
+++ b/app/src/main/java/com/frank/ffmpeg/activity/VideoHandleActivity.java
@@ -132,7 +132,8 @@ public class VideoHandleActivity extends BaseActivity {
R.id.btn_pip,
R.id.btn_moov,
R.id.btn_speed,
- R.id.btn_flv
+ R.id.btn_flv,
+ R.id.btn_thumbnail
);
}
@@ -321,6 +322,15 @@ public class VideoHandleActivity extends BaseActivity {
String outputPath = PATH + File.separator + "frame_index.flv";
commandLine = FFmpegUtil.buildFlvIndex(srcFile, outputPath);
break;
+ case R.id.btn_thumbnail:// insert thumbnail into video
+ String thumbSuffix = FileUtil.getFileSuffix(srcFile);
+ if (thumbSuffix == null || thumbSuffix.isEmpty()) {
+ return;
+ }
+ String thumbnailPath = PATH + File.separator + "thumb.jpg";
+ String thumbVideoPath = PATH + File.separator + "thumbnailVideo" + thumbSuffix;
+ commandLine = FFmpegUtil.insertPicIntoVideo(srcFile, thumbnailPath, thumbVideoPath);
+ break;
default:
break;
}
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 ea84df0..5f18f58 100644
--- a/app/src/main/java/com/frank/ffmpeg/util/FFmpegUtil.java
+++ b/app/src/main/java/com/frank/ffmpeg/util/FFmpegUtil.java
@@ -535,7 +535,7 @@ public class FFmpegUtil {
* Rebuild the keyframe index of FLV, make it seekable
* @param inputPath inputFile
* @param outputPath targetFile
- * @return command of build flv index
+ * @return command of building flv index
*/
public static String[] buildFlvIndex(String inputPath, String outputPath) {
String buildIndex = "ffmpeg -i %s -flvflags add_keyframe_index %s";
@@ -543,6 +543,19 @@ public class FFmpegUtil {
return buildIndex.split(" ");
}
+ /**
+ * Insert the picture into the header of video, which as a thumbnail
+ * @param inputPath inputFile
+ * @param picturePath the path of thumbnail
+ * @param outputPath targetFile
+ * @return command of inserting picture
+ */
+ public static String[] insertPicIntoVideo(String inputPath, String picturePath, String outputPath) {
+ String buildIndex = "ffmpeg -i %s -i %s -map 0 -map 1 -c copy -c:v:1 png -disposition:v:1 attached_pic %s";
+ buildIndex = String.format(buildIndex, inputPath, picturePath, outputPath);
+ return buildIndex.split(" ");
+ }
+
/**
* Using one input file to push multi streams.
* After publish the streams, you could use VLC to play it
diff --git a/app/src/main/res/layout/activity_video_handle.xml b/app/src/main/res/layout/activity_video_handle.xml
index 6e4ebe3..a142fc0 100644
--- a/app/src/main/res/layout/activity_video_handle.xml
+++ b/app/src/main/res/layout/activity_video_handle.xml
@@ -135,6 +135,13 @@
android:layout_marginTop="4dp"
android:text="@string/video_flv"/>
+
+
diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml
index 4d8d81d..aa5d066 100644
--- a/app/src/main/res/values-en/strings.xml
+++ b/app/src/main/res/values-en/strings.xml
@@ -52,6 +52,7 @@
MOOV move ahead
Playing speed
FLV index
+ Insert thumbnail
Swap
Start
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index e99c3d5..a46c94b 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -52,6 +52,7 @@
MOOV前移
播放倍率
FLV索引
+ 插入封面
切换
开始