全网最全的 Android 音视频和 OpenGL ES 干货,都在这了

%E4%B8%8B%E8%BD%BD

有位大佬说,“这是全网最全的 Android OpenGL ES 教程”,哈哈,对于这种善意的“商业互吹”,当然是欣然接受, 这无疑给了我更多的动力和激情来完善这几个系列的文章

学习 Android 音视频开发,其实可以从学习图像渲染技术(OpenGL ES)入手,毕竟图像渲染一开始可以获得即时反馈,知识点少且不枯燥。

以图像渲染技术为切入点便可熟练掌握图像的数据格式、渲染原理、滤镜等知识点,然后基于此再去学习 Android MediaCodec 基于 Surface 的编解码以及 Camera 开发就变得易如反掌。

Android OpenGL ES 系统性学习教程


基础篇

OpenGL ES 3.0 开发(01):绘制一个三角形

OpenGL ES 3.0 开发(02):纹理映射

OpenGL ES 3.0 开发(03):YUV 渲染

OpenGL ES 3.0 开发(04):VBO、EBO 和 VAO

OpenGL ES 3.0 开发(05):FBO 离屏渲染

OpenGL ES 3.0 开发(06):EGL

OpenGL ES 3.0 开发(07):Transform Feedback

OpenGL ES 3.0 开发(08):坐标系统

OpenGL ES 3.0 开发(09):光照基础

OpenGL ES 3.0 开发(10):深度测试

OpenGL ES 3.0 开发(11):模板测试

OpenGL ES 3.0 开发(12):混合

OpenGL ES 3.0 开发(13):实例化(Instancing)

OpenGL ES 3.0 开发(14):粒子(Particles)

OpenGL ES 3.0 开发(15):立方体贴图(天空盒)

OpenGL ES 3.0 开发(16):相机预览

OpenGL ES 3.0 开发(17):相机基础滤镜

OpenGL ES 3.0 开发(18):相机 LUT 滤镜

OpenGL ES 3.0 开发(19):相机抖音滤镜

OpenGL ES 3.0 开发(20):3D 模型

OpenGL ES 3.0 开发(21):3D 模型加载和渲染

OpenGL ES 3.0 开发(22):PBO

OpenGL ES 3.x 开发(23):UBO 和 TBO

应用篇

利用 OpenGL ES 给视频播放器做个字符画滤镜

OpenGL ES 实现动态(水波纹)涟漪效果

OpenGL ES 实现 3D 阿凡达效果

OpenGL ES 实现刮刮卡和手写板功能

OpenGL ES 实现实时音频的可视化

OpenGL ES 实现大小头和头部晃动效果

OpenGL ES 实现瘦脸大眼效果

OpenGL ES 绘制贝塞尔曲线

OpenGL ES 实现瘦身大长腿效果

OpenGL ES 实现“心动”特效

推荐一款强大的 Android OpenGL ES 调试工具

OpenGL ES 渲染图像读取哪家强?

OpenGL ES 如何传输一个超大数组给着色器程序?

面试中经常被问到的 OpenGL ES 对象,你知道的有哪些?

Android FFmpeg 音视频开发系列


(01)FFmpeg 编译和集成

(02)FFmpeg + ANativeWindow 实现视频解码播放

(03)FFmpeg + OpenSLES 实现音频解码播放

(04)FFmpeg + OpenGLES 实现音频可视化播放

(05)FFmpeg + OpenGLES 实现视频解码播放和视频滤镜

(06)FFmpeg 播放器实现简单音视频同步的三种方式

(07)FFmpeg + OpenGL ES 实现 3D 全景播放器

(08)FFmpeg 播放器视频渲染优化

(09)FFmpeg、x264以及fdk-aac 编译整合

(10)FFmpeg 视频录制 - 视频添加滤镜和编码

(11)FFmpeg + Android AudioRecorder 音频录制编码

(12)Android FFmpeg 实现带滤镜的微信小视频录制功能

为什么要进行写作


一句话, 通过输出来倒逼自己输入 ,技术输入也好,认知感悟也好,记录生活也好,这都是输出。

要想持续不断地输出,你就得持续不断地学习,尤其是 Android 领域,Google 为了防止广大程序员失业,几乎每年都会有新的花样。

记得有大佬说过一个规律,越是被人“吆喝”的厉害的技术,可能到最后反而越是没用。谁知道是不是什么机构出来割韭菜了, 回想起来几年前全栈挺火的,然后学了下,以至于现在我什么栈都不是

写文章就是把一些知识点融汇贯通的过程,然后拿不准的知识点就得查资料,因为如果知识点弄错了被人怼会很没面子,还有就是加深记忆,当做技术笔记。

主要目的就是多交一些朋友,认识一些技术大牛,向他们学习,当然能恰到饭就再好不过了。

前面有读者提到,上述教程主要是以 C++ 实现为主,看着有些吃力。嗯,后面再出文章尽量以 Java 或 kotlin 实现为主,后续文章安排:Android MediaCodec、直播技术、Vulkan 开发、OpenCL 开发。

最后,非常感谢 @ShaderJoy @音视频开发进阶 @程序喵大人 这些大佬,也是看他们的技术文章过来的。

– END –