|
|
|
@ -16,6 +16,7 @@ public class FFmpegUtil { |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 使用ffmpeg命令行进行音频转码 |
|
|
|
|
* |
|
|
|
|
* @param srcFile 源文件 |
|
|
|
|
* @param targetFile 目标文件(后缀指定转码格式) |
|
|
|
|
* @return 转码后的文件 |
|
|
|
@ -28,6 +29,7 @@ public class FFmpegUtil { |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 使用ffmpeg命令行进行音频剪切 |
|
|
|
|
* |
|
|
|
|
* @param srcFile 源文件 |
|
|
|
|
* @param startTime 剪切的开始时间(单位为秒) |
|
|
|
|
* @param duration 剪切时长(单位为秒) |
|
|
|
@ -43,6 +45,7 @@ public class FFmpegUtil { |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 使用ffmpeg命令行进行音频合并 |
|
|
|
|
* |
|
|
|
|
* @param srcFile 源文件 |
|
|
|
|
* @param appendFile 待追加的文件 |
|
|
|
|
* @param targetFile 目标文件 |
|
|
|
@ -56,6 +59,7 @@ public class FFmpegUtil { |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 使用ffmpeg命令行进行音频混合 |
|
|
|
|
* |
|
|
|
|
* @param srcFile 源文件 |
|
|
|
|
* @param mixFile 待混合文件 |
|
|
|
|
* @param targetFile 目标文件 |
|
|
|
@ -71,6 +75,7 @@ public class FFmpegUtil { |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 使用ffmpeg命令行进行音视频合成 |
|
|
|
|
* |
|
|
|
|
* @param videoFile 视频文件 |
|
|
|
|
* @param audioFile 音频文件 |
|
|
|
|
* @param duration 视频时长 |
|
|
|
@ -87,6 +92,7 @@ public class FFmpegUtil { |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 使用ffmpeg命令行进行抽取音频 |
|
|
|
|
* |
|
|
|
|
* @param srcFile 原文件 |
|
|
|
|
* @param targetFile 目标文件 |
|
|
|
|
* @return 抽取后的音频文件 |
|
|
|
@ -100,6 +106,7 @@ public class FFmpegUtil { |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 使用ffmpeg命令行进行抽取视频 |
|
|
|
|
* |
|
|
|
|
* @param srcFile 原文件 |
|
|
|
|
* @param targetFile 目标文件 |
|
|
|
|
* @return 抽取后的视频文件 |
|
|
|
@ -114,6 +121,7 @@ public class FFmpegUtil { |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 使用ffmpeg命令行进行视频转码 |
|
|
|
|
* |
|
|
|
|
* @param srcFile 源文件 |
|
|
|
|
* @param targetFile 目标文件(后缀指定转码格式) |
|
|
|
|
* @return 转码后的文件 |
|
|
|
@ -128,6 +136,7 @@ public class FFmpegUtil { |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 使用ffmpeg命令行进行视频剪切 |
|
|
|
|
* |
|
|
|
|
* @param srcFile 源文件 |
|
|
|
|
* @param startTime 剪切的开始时间(单位为秒) |
|
|
|
|
* @param duration 剪切时长(单位为秒) |
|
|
|
@ -143,6 +152,7 @@ public class FFmpegUtil { |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 使用ffmpeg命令行进行视频截图 |
|
|
|
|
* |
|
|
|
|
* @param srcFile 源文件 |
|
|
|
|
* @param time 截图开始时间 |
|
|
|
|
* @param size 图片尺寸大小 |
|
|
|
@ -157,6 +167,7 @@ public class FFmpegUtil { |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 使用ffmpeg命令行给视频添加水印 |
|
|
|
|
* |
|
|
|
|
* @param srcFile 源文件 |
|
|
|
|
* @param waterMark 水印文件路径 |
|
|
|
|
* @param targetFile 目标文件 |
|
|
|
@ -171,6 +182,7 @@ public class FFmpegUtil { |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 使用ffmpeg命令行进行视频转成Gif动图 |
|
|
|
|
* |
|
|
|
|
* @param srcFile 源文件 |
|
|
|
|
* @param startTime 开始时间 |
|
|
|
|
* @param duration 截取时长 |
|
|
|
@ -190,6 +202,7 @@ public class FFmpegUtil { |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 使用ffmpeg命令行进行屏幕录制 |
|
|
|
|
* |
|
|
|
|
* @param size 视频尺寸大小 |
|
|
|
|
* @param recordTime 录屏时间 |
|
|
|
|
* @param targetFile 目标文件 |
|
|
|
@ -207,15 +220,17 @@ public class FFmpegUtil { |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 使用ffmpeg命令行进行图片合成视频 |
|
|
|
|
* |
|
|
|
|
* @param srcFile 源文件 |
|
|
|
|
* @param frameRate 合成视频帧率 |
|
|
|
|
* @param targetFile 目标文件(mpg格式) |
|
|
|
|
* @return 合成的视频文件 |
|
|
|
|
*/ |
|
|
|
|
@SuppressLint("DefaultLocale") |
|
|
|
|
public static String[] pictureToVideo(String srcFile, String targetFile){ |
|
|
|
|
public static String[] pictureToVideo(String srcFile, int frameRate, String targetFile) { |
|
|
|
|
//-f image2:代表使用image2格式,需要放在输入文件前面
|
|
|
|
|
String combineVideo = "ffmpeg -f image2 -r 1 -i %simg#d.jpg -vcodec mpeg4 %s"; |
|
|
|
|
combineVideo = String.format(combineVideo, srcFile, targetFile); |
|
|
|
|
String combineVideo = "ffmpeg -f image2 -r %d -i %simg#d.jpg -vcodec mpeg4 %s"; |
|
|
|
|
combineVideo = String.format(combineVideo, frameRate, srcFile, targetFile); |
|
|
|
|
combineVideo = combineVideo.replace("#", "%"); |
|
|
|
|
Log.i("VideoHandleActivity", "combineVideo=" + combineVideo); |
|
|
|
|
return combineVideo.split(" ");//以空格分割为字符串数组
|
|
|
|
@ -223,6 +238,7 @@ public class FFmpegUtil { |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 音频编码 |
|
|
|
|
* |
|
|
|
|
* @param srcFile 源文件pcm裸流 |
|
|
|
|
* @param targetFile 编码后目标文件 |
|
|
|
|
* @param sampleRate 采样率 |
|
|
|
@ -238,11 +254,11 @@ public class FFmpegUtil { |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 多画面拼接视频 |
|
|
|
|
* |
|
|
|
|
* @param input1 输入文件1 |
|
|
|
|
* @param input2 输入文件2 |
|
|
|
|
* @param videoLayout 视频布局 |
|
|
|
|
* @param targetFile 画面拼接文件 |
|
|
|
|
* |
|
|
|
|
* @return 画面拼接的命令行 |
|
|
|
|
*/ |
|
|
|
|
public static String[] multiVideo(String input1, String input2, String targetFile, int videoLayout) { |
|
|
|
@ -258,9 +274,9 @@ public class FFmpegUtil { |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 视频反序倒播 |
|
|
|
|
* |
|
|
|
|
* @param inputFile 输入文件 |
|
|
|
|
* @param targetFile 反序文件 |
|
|
|
|
* |
|
|
|
|
* @return 视频反序的命令行 |
|
|
|
|
*/ |
|
|
|
|
public static String[] reverseVideo(String inputFile, String targetFile) { |
|
|
|
@ -273,9 +289,9 @@ public class FFmpegUtil { |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 视频降噪 |
|
|
|
|
* |
|
|
|
|
* @param inputFile 输入文件 |
|
|
|
|
* @param targetFile 输出文件 |
|
|
|
|
* |
|
|
|
|
* @return 视频降噪的命令行 |
|
|
|
|
*/ |
|
|
|
|
public static String[] denoiseVideo(String inputFile, String targetFile) { |
|
|
|
@ -286,12 +302,12 @@ public class FFmpegUtil { |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 视频抽帧转成图片 |
|
|
|
|
* |
|
|
|
|
* @param inputFile 输入文件 |
|
|
|
|
* @param startTime 开始时间 |
|
|
|
|
* @param duration 持续时间 |
|
|
|
|
* @param frameRate 帧率 |
|
|
|
|
* @param targetFile 输出文件 |
|
|
|
|
* |
|
|
|
|
* @return 视频抽帧的命令行 |
|
|
|
|
*/ |
|
|
|
|
public static String[] videoToImage(String inputFile, int startTime, int duration, int frameRate, String targetFile) { |
|
|
|
@ -306,12 +322,12 @@ public class FFmpegUtil { |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 视频叠加成画中画 |
|
|
|
|
* |
|
|
|
|
* @param inputFile1 输入文件 |
|
|
|
|
* @param inputFile2 输入文件 |
|
|
|
|
* @param targetFile 输出文件 |
|
|
|
|
* @param x 小视频起点x坐标 |
|
|
|
|
* @param y 小视频起点y坐标 |
|
|
|
|
* |
|
|
|
|
* @return 视频画中画的命令行 |
|
|
|
|
*/ |
|
|
|
|
@SuppressLint("DefaultLocale") |
|
|
|
@ -323,6 +339,7 @@ public class FFmpegUtil { |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* mp4视频的moov往mdat前面移动 |
|
|
|
|
* |
|
|
|
|
* @param inputFile inputFile |
|
|
|
|
* @param outputFile outputFile |
|
|
|
|
* @return 移动moov命令行 |
|
|
|
|