如果是Eclipse环境下,引用ffmpeg引用包,下载地址:https://download.csdn.net/download/shuszj/11619816
如果是AS环境下,引用ffmpeg引用包,下载地址:https://download.csdn.net/download/shuszj/11619660
不管哪个开发工具,里面的代码是一样的。
先定义类:
FFmpeg ffmpeg;
ffmpeg = FFmpeg.getInstance(this);
下面是要执行的代码:
String tmp_command ="-y -i in.mp4 -i xxx.png -filter_complex "overlay=5:5" out.mp4";
String[] command = tmp_command.split(" ");
if (command.length != 0) {
execFFmpegBinary(command);
}
//下面是判断是否有FFMpeg类
private void loadFFMpegBinary() {
try {
ffmpeg.loadBinary(new LoadBinaryResponseHandler() {
@Override
public void onFailure() {
c_tmp_flag = false;
}
});
} catch (FFmpegNotSupportedException e) {
c_tmp_flag = false;
}
}
//下面是执行FFMpeg命令
private void execFFmpegBinary(final String[] command) {
try {
ffmpeg.execute(command, new ExecuteBinaryResponseHandler() {
@Override
public void onFailure(String s) {
showpubToast("视频处理失败!");
}
@Override
public void onSuccess(String s) {
//这里是视频处理成功后的代码
}
@Override
public void onProgress(String s) {
//progressDialog.setMessage("Processing\n"+s);
}
@Override
public void onStart() {
//Log.d(TAG, "Started command : ffmpeg " + command);
progressDialog.setMessage("正在添加水印,请稍等...");
}
@Override
public void onFinish() {
//Log.d(TAG, "Finished command : ffmpeg "+command);
//这里是完成后会触发的函数
}
});
} catch (FFmpegCommandAlreadyRunningException e) {
// do nothing for now
}
}
上面就是一个简单的完整使用代码,是不是很简单,大家可以去试试。