FFmpeg每个库的作用
libavutil工具库,它包含函数简化编程,包括随机数生成器、数据结构、数学例程,核心多媒体工具等等。一个通用的小型函数库,该库中实现了CRC校验码的产生,128位整数数学,最大公约数,整数开方,整数取对数,内存分配,大端小端格式的转换等
libswscale 执行高度优化的图像缩放和颜色空间/像素格式转换操作的库
libswresample 用于音频采样采样数据(PCM)的转换
libavcodec 用于存放各个 encode/decode 模块一个包含了所有 FFmpeg 音视频编解码器的库.
libavformat 用于存放 视音频复用器(muxer)/demuxer 模块
一个包含了所有的普通音视格式的打包和解包的库
libavdevice 读取电脑(或者其他设备上)的多媒体设备的数据 或者输出数据到指定的多媒体设备上
libavfilter 包含媒体滤波器的一个库
资源
http://blog.youkuaiyun.com/jwzhangjie这个大神的三篇专栏
https://ffmpeg.org/doxygen/3.0/index.html官网api文档,虽然英语不好但是还是用得上的
http://blog.youkuaiyun.com/leixiaohua1020这个大神的专栏
jni的流程
写一个类声明native方法。private native int play_audio(String fileName);
javac FFmpegNative.java生成.class文件(通常IDE会为我们生成,拿Eclipse来说会在bin/classes下为我们生成class)
ps:提示没有这个命令的自行配置jdk环境
javah com.hsb.ffmpeg.FFmpegNative生成.h文件(进入项目的bin/classes目录下敲入这段命令,得到.h头文件复制到项目的jni目录下)
编写c代码
编写Android.mk
编译生成.so(我这里是libffmpeg.so)复制到lib目录下
回到FFmpegNative.java类把System.loadLibrary(“ffmpegjni”);写上
static {
System.loadLibrary("avcodec-57");
System.loadLibrary("avdevice-57");
System.loadLibrary("avfilter-6");
System.loadLibrary("avformat-57");
System.loadLibrary("avutil-55");
System.loadLibrary("swresample-2");
System.loadLibrary("swscale-4");
System.loadLibrary("ffmpegjni");
}
本文介绍了FFmpeg的各个核心库,如libavutil包含通用工具函数,libswscale专注于图像缩放和颜色空间转换,libavcodec提供编解码器,libavformat处理多媒体复用和解复用,libavdevice读取和输出多媒体数据,libavfilter则包含媒体滤波器。同时,文章详细阐述了在Android中使用JNI调用FFmpeg的步骤,包括编写native方法、生成头文件、编写C代码、创建Android.mk以及编译生成.so库。
1265

被折叠的 条评论
为什么被折叠?



