Android ffmpeg ubuntu16.04下订制化的交叉编译
知识准备
ffmpeg是个重量级的音视频相关库,在编译ffmpeg之前需要对ffmpeg各部分的功能有所了解,这样才能订制化的编译出自己需要的so,你也不想编译出来的so加起来10M多吧
libavcodec 包含全部FFmpeg音频/视频编解码库。
libavformat:实现了流媒体协议(udp、rtp、rtmp、rtsp等),媒体容器(mp4、AVI、Flv等)和基本的I/O访问。
libavutil:是一个实用程序库,以帮助便携式多媒体编程。它包含了安全的移动字符串函数,随机数生成器,数据结构, 附加数学功能,加密和多媒体相关的功能(如枚举的像素采样格式)。
libavfilter:用于对多媒体滤镜的调用。
libavdevice:提供用于从采集和渲染到许多常见多媒体输入/输出设备的通用框架,并支持多个输入和输出设备,包括Video4Linux2、VfW、DSHOW和ALSA。
libswresample:实现音频的重采样和混音,根据平台做了优化(neon等)。
libswscale:实现了颜色格式的转换和缩放,具有同样功能的另一个库是libyuv
libpostproc:用于后期效果处理
【ffmpeg】(ffmpeg官方说明)一个命令行工具,用来对视频文件转换格式,也支持对电视卡实时编码。
【ffserver】(ffserver官方说明)一个HTTP多媒体实时广播流服务器,支持时光平移。
【ffplay】(ffplay官方说明)一个简单的播放器,基于SDL与FFmpeg库。
【ffprobe】(ffprobe官方说明)一个简单的多媒体数据分析工具。ubuntu下的NDK环境配置
环境变量配置:
命令vim ~/.bashrc
添加:
export NDKROOT=/usr/ndk/android-ndk-r10e
export PATH= NDKR