Android技术知识读书Android开发

推荐一个开源的音视频编辑、视频剪辑框架

2019-03-15  本文已影响207人  cff70524f5cf

RxFFmpeg

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

编译环节

编译环境

win10 + ubuntu 16.04 + gcc + make
主要依赖以下库进行编译

image.png

编译脚本

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

特色功能

使用方式

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() {
            @Override
            public void onFinish() {
                if (mProgressDialog != null)
                    mProgressDialog.cancel();
                showDialog("处理成功");
            }

            @Override
            public void onProgress(int progress) {
                if (mProgressDialog != null)
                    mProgressDialog.setProgress(progress);
            }

            @Override
            public void onCancel() {
                if (mProgressDialog != null)
                    mProgressDialog.cancel();
                showDialog("已取消");
            }

            @Override
            public void onError(String message) {
                if (mProgressDialog != null)
                    mProgressDialog.cancel();
                showDialog("出错了 onError:" + message);
            }
        });

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

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

4、中断 FFmpeg 命令

RxFFmpegInvoke.getInstance().exit();

【附】相关架构及资料

image

资料领取

点赞+加群免费获取!Android 架构设计③群

领取获取往期Android高级架构资料、源码、笔记、视频。高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter全方面的Android进阶实践技术

上一篇下一篇

猜你喜欢

热点阅读