Android 编译编译FFmpeg

FFmpeg是什么

1,FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。

2,FFmpeg 是一个多媒体视频处理工具,有非常强大的功能包括视频采集功能、

视频格式转换、视频抓图、给视频加水印等。


FFmpeg 是由C代码编写而成且代码量大,编译必须在Linux环境下


Android开发用到的库:

libavcodec :音频和视频的编解码器

libavfilter:多媒体过滤器

libavformat

libavutil

libswresample:高度优化音视频重采样工具

libswscale:执行高度优化图像缩放和色彩空间,像素的转换操作


编译第一步:

下载ndk,直接百度进行下载,最好不要用最新版,用r17版本

用 wget https://dl.google.com/android/repository/android-ndk-r17c-linux-x86_64.zip   下载如下图

下载完成用 ls 命令查看会多一个文件


然后用解压命令解压出来: unzip android-ndk-r17c-linux-x86_64.zip 

这样就得到了NDK环境

然后配置Linux环境变量,打开配置界面命名:vim /etc/profile,在最末尾添加2句号,保存退出



执行命令:source /etc/profile  使刚才的配置生效

执行命令:ndk-build 出现如下界面说明配置好了


第二步下载FFmpeg  命令:http://ffmpeg.org/releases/ffmpeg-4.0.4.tar.bz2,想要哪个版本自行修改

解压FFmpeg 执行2跳命令: bunzip2   ffmpeg-4.0.4.tar.bz2      tar -xvf ffmpeg-4.0.4.tar

然后进入ffmpeg-4.0.4目录

创建新的文件:build.sh   命令:vim build.sh 


#--prefix : 安装目录

#--enable-small : 优化大小

#--disable-programs : 不编译ffmpeg程序(命令行工具),我们是需要获得静态(动态)库。

#--disable-avdevice : 关闭avdevice模块,此模块在android中无用

#--disable-encoders : 关闭所有编码器 (播放不需要编码)(如果是做视频编辑必须打开)

#--disable-muxers :  关闭所有复用器(封装器),不需要生成mp4这样的文件,所以关闭

#--disable-filters :关闭视频滤镜(如果是做视频编辑必须打开   类似抖音效果)

#--enable-cross-compile : 开启交叉编译(ffmpeg比较**跨平台**,并不是所有库都有这么happy的选项 )

#--cross-prefix: 看右边的值应该就知道是干嘛的,gcc的前缀 xxx/xxx/xxx-gcc 则给xxx/xxx/xxx-

#disable-shared enable-static 不写也可以,默认就是这样的。

#--sysroot:

#--extra-cflags: 会传给gcc的参数

FFmpeg 参数太多,就不一一列举了

执行命令:sh build.sh(10分钟左右)

完成编译如下图

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容