因为整个ffmpeg是很大的,我这边只需要对mp4格式的视频进行压缩,具体情况是拍摄10秒的视频,给它命名的时候就设置成mp4的格式。我用的ffmpeg是3.0版本,生成的so库比原来的小很多,具体怎么生成so库就不细说了,网上一大堆,而且我自己踩过的坑也忘了不少了。我封装成了一个库文件,最后github地址在此:https://github.com/iamupgirl/MediaCompressLibrary,使用起来也很方便。
我是直接写了一个Service在后台进行视频压缩,主要代码如下:
mCmds = "ffmpeg -y -i " + selectedAviFile + " -strict -2 -vcodec libx264 -preset ultrafast -crf 20 -acodec copy -ar 44100 -ac 2 -b:a 96k -vf scale=-1:800 " + compressedFile;
//转换为数组
thread = new Thread(new Runnable() {
@Override
public void run() {
String[] cmds = mCmds.split(" ");
FfmpegKit.exec(cmds, new FfmpegKit.OnExecListener() {
@Override