音视频

堪称教科书级别的 Android 音视频入门项目

FFmpeg

https://github.com/FFmpeg/

FFmpeg应该是音视频入门必须要掌握的开源项目,涉及到音视频从生产到消费的完整过程,FFmpeg是一个综合性项目,涉及到非常多的知识点;

FFmpeg 从模块上划分可以分为下面几个模块:

libavutil:FFmpeg中通用的工具库,其他模块的通用功能会调用到这儿;libavformat:音视频封装格式处理模块,可以用于解封和封装;libavcodec:音视频编码解码的库,是FFmpeg的核心库;libavfilter:滤镜特效处理的库;libavresample:这个库已经废弃,可以忽略;libpostproc:音视频后期加工的库;libswresample:音频采样数据格式转化;libswscale:视频像素数据格式转换;libavdevice:控制各种设备的输入输出,如果需要外接设备的话,一般情况下用不到;

GPUImage For Android

https://github.com/cats-oss/android-gpuimage

GPUImage for Android是一个轻量级、高效的图像处理库,支持各种滤镜效果以及实时预览。

它利用OpenGL ES 2.0进行图形渲染,允许开发者在设备的GPU上执行复杂的像素操作,从而加快了图像处理的速度,并降低了CPU的负载。

Grafika

https://github.com/google/grafika

Grafika是Google官方提供的一套工具集,专门用于Android平台的图形和视频性能分析与优化。

它不仅包含了丰富的基准测试工具,还提供了众多技术演示和案例代码,帮助开发者深入理解Android图形渲染机制。

AudioVideoRecordingSample

https://github.com/saki4510t/AudioVideoRecordingSample

AudioVideoRecordingSample基于Android系统的MediaCodec和MediaMuxer API。

MediaCodec是一个强大的多媒体编解码器接口,它可以处理硬件加速的音频和视频编码任务,从而提高性能并减少功耗。

而MediaMuxer则负责将编码后的音频和视频数据合并成单一的多媒体文件,例如MP4或MKV。

该项目通过精心设计的代码结构,实现了对这两个API的充分利用,确保了高质量的音视频同步录制。

它使用异步处理方式,降低了CPU占用,并且支持自定义分辨率、比特率等参数,以适应各种不同的录制需求。

ijkplayer

https://github.com/bilibili/ijkplayer

ijkplayer 是哔哩哔哩公司基于ffplay开发的一个音视频播放库,目前应用的比较广泛;

1)可以支持所有的音频、视频格式,封装格式;

2)全编译出来的库约9.2M;

3)实现软解码和硬解码之间的切换;

4)实现FFmpeg很多定制的option选项;

5)ijkplayer支持的软解码让播放画面更加优秀;还可以解决直播

流过程中切换码流导致的花屏和黑屏问题。

《小驰行动派的知识星球》
————————————————



推荐阅读:

关于博主 

《小驰Camera私房菜》小册目录

采用v4l2loopback来实现 虚拟Camera

Camera基础及一些基本概念

Android Camera 学习路线 | 个人推荐

Android Camera开发系列(干货满满)

Camera Hal|如何学习一个新平台

一篇文章带你了解Android 最新Camera框架

学习完Camera入门课程视频,可以去找工作了?





欢迎扫码关注「小驰行动派」公众号 10 年Camera开发 | Camera技术干货 | 行业洞察 | Camera实战分享
小驰行动派公众号 扫一扫关注
分享到: 复制链接
← 上一篇 轻量级无人机飞控 | 开源嵌入式项目学习 下一篇 → Android 系统设置,“隐私”中关闭相机权限

相关文章

推荐课程

想系统学习 Camera 开发?看看这些课程

评论 (0)

暂无评论,快来抢沙发吧