修改视频分辨率
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使用方法,因本人初次使用,指令意思都不了解,方法找了很久才找到。
以上功能已经再项目中使用