shell android 多框架编译ffmpeg_推荐一个开源的音视频编辑、视频剪辑框架

点击上方“何俊林”,马上关注,每天早上8:50准时推送

真爱,请置顶或星标

RxFFmpeg

RxFFmpeg 是基于 ( FFmpeg 4.0 + X264 + mp3lame + fdk-aac ) 编译的适用于 Android 平台的音视频编辑、视频剪辑的快速处理框架,包含以下功能(视频拼接,转码,压缩,裁剪,片头片尾,分离音视频,变速,添加静态贴纸和gif动态贴纸,添加字幕,添加滤镜,添加背景音乐,加速减速视频,倒放音视频,音频裁剪,变声,混音,图片合成视频,视频解码图片等主流特色功能……

编译环节
编译环境
  • win10 + ubuntu 16.04 + gcc + make

主要依赖以下库进行编译
库名版本下载地址
FFmpeg4.0http://ffmpeg.org/releases/ffmpeg-4.0.tar.bz2
X264x264-snapshot-20180212-2245-stablehttp://download.videolan.org/x264/snapshots/x264-snapshot-20180212-2245-stable.tar.bz2
mp3lame3.100https://jaist.dl.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz
fdk-aac0.1.6https://jaist.dl.sourceforge.net/project/opencore-amr/fdk-aac/fdk-aac-0.1.6.tar.gz
ndkandroid-ndk-r14b-linux-x86_64https://dl.google.com/android/repository/android-ndk-r14b-linux-x86_64.zip
编译脚本

编译脚本、JNI代码整理后上传

特色功能
  • 支持任何FFmpeg命令执行

  • 支持FFmpeg命令执行进度回调

  • 支持中断FFmpeg命令

  • 支持同步/异步执行

  • 支持开启/关闭 debug 模式

  • 支持硬件加速,使编解码处理更快

  • 代码封装成SDK的方式,方便依赖使用

  • 支持把FFmpeg的各子模块libavutil
    libavcodec
    libavformat
    libavdevice
    libavfilter
    libswscale
    libswresample
    libpostproc 最终打包成一个libffmpeg-core.so核心库方便依赖使用,无需导入七八个so库

  • 支持libx264编码库,可以使压缩后的视频体积变的极小,清晰度还保持着很高清,简单的压缩命令: ffmpeg -y -i /storage/emulated/0/1/input.mp4 -b 2097k -r 30 -vcodec libx264 -preset superfast /storage/emulated/0/1/result.mp4

  • 支持添加 mp3、aac、wav 等主流格式的背景音乐

  • 支持主流视频格式转换,如: avi > mp4 > avi

使用方式

1、开启/关闭 debug 模式,建议在 Application 初始化调用

RxFFmpegInvoke.getInstance().setDebug(true);

2、FFmpeg 命令执行 (RxJava2优雅的调用)

String text = "ffmpeg -y -i /storage/emulated/0/1/input.mp4 -vf boxblur=25:5 -preset superfast /storage/emulated/0/1/result.mp4";
String[] commands = text.split(" ");
RxFFmpegInvoke.getInstance().runCommandRxJava(commands).subscribe(new RxFFmpegSubscriber() {@Overridepublic void onFinish() {if (mProgressDialog != null)
                    mProgressDialog.cancel();
                showDialog("处理成功");
            }@Overridepublic void onProgress(int progress) {if (mProgressDialog != null)
                    mProgressDialog.setProgress(progress);
            }@Overridepublic void onCancel() {if (mProgressDialog != null)
                    mProgressDialog.cancel();
                showDialog("已取消");
            }@Overridepublic void onError(String message) {if (mProgressDialog != null)
                    mProgressDialog.cancel();
                showDialog("出错了 onError:" + message);
            }
        });

3、FFmpeg 命令执行 (同步方式)

RxFFmpegInvoke.getInstance().runCommand(command, null);

4、中断 FFmpeg 命令

RxFFmpegInvoke.getInstance().exit();

下载体验
  • 扫码下载体验

    f0b2c51350a7b45effab264745998cc8.png

  • 注意:体验App时,需要把预设的视频SD卡路径,改为你本地实际的视频SD卡路径。

  • 开源地址

一个特别推荐

9c2f1a0f76db1a0a471c5e938e009b7c.png

c37861ade6a808910b827c1b50893a9b.png 喜欢就点击“好看”吧!
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值