八大库
1.libavutil 核心工具库,最基础模块之一,其他模块都会依赖该库做一些基本的音视频处理操作 2. libavformat 文件格式和协议库,封装了Protocol层和Demuxer、Muxer层,使得协议和格式对于开发者来说是透明的 3. libavcodec 编解码库,封装了Codec层,但是有一些codec是具备自己的License的,FFmpe不会默认添加像libx264、FDK-AAC、Lame等库,但是FFmpeg想一个平台,可以将其他的第三方codec以插件的方式添加进来,为开发者提供统一接口 4.libavfilter 音视频滤镜库,该模块包含了音频特效和视频特效的处理,在使用FFmpeg的API进行编解码的过程中,可以使用该模块高效的为音视频数据做特效处理 5. libavdevice 输入输出设备库,比如需要编译出播放声音或者视频的工具ffplay,就需要确保该模块是打开的,同事也需要libsdl的预先编译,该设备模块播放声音和视频都又是使用libsdl库 6.libswresample 用于音频重采样,可以对数字音频进行声道数、数据格式、采样率等多种基本信息的转换 7.libswscale 该模块用于图像格式转换,可以将YUV的数据转换为RGB的数据 8.libpostproc 该模块用于进行后期处理,当我们使用filter的时候,需要打开这个模块,filter会用到这个模块的一些基础函数 比较老的ffmpeg还会编译出avresamle模块,也是用于对音频原始出具进行重采样的,但是已经被废弃,推荐使用libswresample替代 另外,库里还可以包含对H.264/MPEG-4 AVC视频编码的X264库,是最常用的有损视频编码器,支持CBR、VBR模式,可以在编码的过程中直接改变码率的设置,在直播的场景中非常适用!可以做码率自适应的功能。
常用函数
1.av_register_all():注册所有组件 2.avformat_open_input():打开输入视频文件 3.avformat_find_stream_info():获取视频文件信息 4.avcodec_find_decoder():查找解码器 5.avcodec_open1():打开解码器 6.av_read_frame():从输入文件读取一帧压缩数据 7.avcodec_decode_video2():解码一桢压缩数据 8.avcodec_close():关闭解码器 9.avformat_close_input():关闭输入视频文件
架构师筑基包括哪些内容
我花了将近半个月时间将:深入 Java 泛型.、注解深入浅出、并发编程.、数据传输与序列化、Java 虚拟机原理、反射与类加载、高效 IO、Kotlin项目实战等等Android架构师筑基必备技能整合成了一套系统知识笔记PDF,相信看完这份文档,你将会对这些Android架构师筑基必备技能有着更深入、更系统的理解。
由于文档内容过多,为了避免影响到大家的阅读体验,在此只以截图展示部分内容,详细完整版的【架构师筑基必备技能】文档领取方式:点赞+关注,然后私信关键词 【666】即可获得免费领取方式!或者 可以查看我的【Github】
注:资料与上面思维导图一起看会更容易学习哦!每个点每个细节分支,都有对应的目录内容与知识点!
这份资料就包含了所有Android初级架构师所需的所有知识!需要的可以在我的GIthub里面去查看!