使用ffmpeg的Android视频编辑

使用ffmpeg的Android视频编辑,android,ffmpeg,video-editing,Android,Ffmpeg,Video Editing,我正在使用ffmpeg库进行视频编辑,在我的android代码中使用bin ffmed文件。一切正常,但当我裁剪视频并旋转它时,它需要太多时间,通常会卡住 这就是我所说的视频裁剪方法 public void rotateAndCropClip(String in, String out,int rotate, ShellCallback callback) throws IOException, InterruptedException { ArrayList<String>

我正在使用ffmpeg库进行视频编辑,在我的android代码中使用bin ffmed文件。一切正常,但当我裁剪视频并旋转它时,它需要太多时间,通常会卡住

这就是我所说的视频裁剪方法

 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);
}
public void rotateAndCropClip(String-in、String-out、int-rotate、shell回调)抛出IOException、InterruptedException{
ArrayList cmd=新的ArrayList();
cmd=newarraylist();
命令添加(mFfmpegBin);
//输入文件
cmd.添加(“-i”);
cmd.add(in);
命令添加(“-vf”);
如果(旋转==1){
cmd.add(“裁剪=360:480:0:0,转置=”+旋转);
}否则{
命令添加(“transpose=“+rotate+”,裁剪=480:360:0:0”);
}
命令添加(“-preset”);
cmd.add(“超快”);
命令添加(“-c:a”);
cmd.添加(“副本”);
//输出文件
cmd.add(out);
execFFMPEG(cmd,回调);
}

有没有什么方法可以停止冻结我的应用程序并提高处理速度,或者用其他方法/库进行视频浏览?

这就是它的工作原理

因为您已经在使用

cmd.add("-preset");
cmd.add("ultrafast");
它仍然比其他的好
我建议你使用

  cmd.add("-threads");
  cmd.add("5");  
FFMPEG将保持较慢的速度,但这将提高性能。

我希望它能有所帮助:)

是否有任何教程可以在android studio中集成ffmpeg?与最新的android studio ndk集成。出现ndk折旧异常