FFmpeg之零概述(待续)

FFmpeg每个库的作用

libavutil工具库,它包含函数简化编程,包括随机数生成器、数据结构、数学例程,核心多媒体工具等等。一个通用的小型函数库,该库中实现了CRC校验码的产生,128位整数数学,最大公约数,整数开方,整数取对数,内存分配,大端小端格式的转换等


libswscale 执行高度优化的图像缩放和颜色空间/像素格式转换操作的库


libswresample 用于音频采样采样数据(PCM)的转换


libavcodec 用于存放各个 encode/decode 模块一个包含了所有 FFmpeg 音视频编解码器的库.


libavformat 用于存放 视音频复用器(muxer)/demuxer 模块
一个包含了所有的普通音视格式的打包和解包的库


libavdevice 读取电脑(或者其他设备上)的多媒体设备的数据 或者输出数据到指定的多媒体设备上


libavfilter 包含媒体滤波器的一个库

资源

http://blog.csdn.net/jwzhangjie这个大神的三篇专栏
https://ffmpeg.org/doxygen/3.0/index.html官网api文档,虽然英语不好但是还是用得上的
http://blog.csdn.net/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");
    }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值