我在android代码中使用bin ffmed文件使用ffmpeg库进行视频编辑。所有工作都很好,但当我裁剪视频并旋转它时,它需要太多时间并且通常会卡住。
这是我调用的视频裁剪方法。
public void rotateAndCropClip(String in, String out,int rotate, ShellCallback callback) throws IOException, InterruptedException {
ArrayList<String> cmd = new ArrayList<String>();
cmd = new ArrayList<String>();
cmd.add(mFfmpegBin);
// Input file
cmd.add("-i");
cmd.add(in);
cmd.add("-vf");
if(rotate == 1){
cmd.add("crop=360:480:0:0,transpose="+rotate);
}else{
cmd.add("transpose="+rotate+",crop=480:360:0:0");
}
cmd.add("-preset");
cmd.add("ultrafast");
cmd.add("-c:a");
cmd.add("copy");
// Output file
cmd.add(out);
execFFMPEG(cmd, callback);
}
有什么办法我可以停止冻结我的应用程序,提高处理或任何其他方式/库的视频裁剪?
这就是它的工作原理!
当你已经在使用
时cmd.add("-preset");
cmd.add("ultrafast");
它仍然比其他的好
我建议你使用....
cmd.add("-threads");
cmd.add("5");
FFMPEG将保持缓慢,但这将提高性能。
我希望这对你有帮助。