美文网首页
Android FFmage 修改视频分辨率,帧率,区域裁剪

Android FFmage 修改视频分辨率,帧率,区域裁剪

作者: 弓长山己几 | 来源:发表于2021-03-18 15:54 被阅读0次

    修改视频分辨率

    String ffmpeg ="-y -i " +filePath +" -strict -2 -vcodec libx264 -preset ultrafast -crf 24 -acodec aac -ar 44100 -ac 2 -b:a 96k -s " + (int)(videoWidth /bili) +"x" + (int)(videoHeight /bili) +" -aspect 5:3 "+savePath;

    filePath  = 原视频地址  

    (int)(videoWidth /bili) +"x" + (int)(videoHeight /bili)  = 分辨率(1080 * 1920)

    5:3 = 分辨率比例

    savePath = 保存地址

    详细参数参考 = https://blog.csdn.net/a11544/article/details/58156521?fps=1&locationNum=3

    帧率

    "ffmpeg -i " + filePath +" -r 25 -strict -2 -vcodec libx264 -preset ultrafast -acodec aac -ar 44100 -ac 2 -b:a 96k " +frameFilePath;

    25 = 帧率

    区域裁剪

    String ffmpeg = "ffmpeg -i " + filePath + " -strict -2 -vf crop=" + (int)(videoWidth / bili) + ":" + (int)(videoHeight / bili) + ":0:0 -preset fast " + savePath;

    (int)(videoWidth / bili) + ":" + (int)(videoHeight / bili) = 裁剪的尺寸,分辨率

    :0:0 = 从什么位置开始裁剪  x y    不输入从0.0开始

    使用方法

    String[] commands = ffmpeg.split(" ");

    RxFFmpegInvoke.getInstance().runCommandRxJava(commands).subscribe(new RxFFmpegSubscriber() {

    @Override

     public void onFinish() {

    Log.i(TAG,"onFinish: ");

    }

    @Override

                public void onProgress(int progress,long progressTime) {

    Log.i(TAG,"onProgress: ");

    }

    @Override

                public void onCancel() {

    Log.i(TAG,"onCancel: ");

    }

    @Override

                public void onError(String message) {

    Log.i(TAG,"onError: "+message);

    }

    });

    注释

    需要先导入FFmpge项目   github上一大堆。

    文档用于记录ffmpge使用方法,因本人初次使用,指令意思都不了解,方法找了很久才找到。

    以上功能已经再项目中使用

    相关文章

      网友评论

          本文标题:Android FFmage 修改视频分辨率,帧率,区域裁剪

          本文链接:https://www.haomeiwen.com/subject/houucltx.html