后续的音视频文章,都会在这里更新
作为安卓开发仔,对音视频这块,一直是比较感兴趣的,所以,本着学习和记录的态度,我也把我所学的知识记录起来,希望对想音视频感兴趣的小伙伴有所帮忙。
一. 基础文章系列
基础文章系列,列举了常见音视频开发,通过这系列的文章你将学习到:
- 对音频pcm和avc 有所了解
- 学会使用摄像头预览和拍照
- 学会如何把一个MP4,分离成视频轨和音频轨,并重新合成
- 学会使用 MediaProjection 去截屏和录屏
Android 音视频开发(一) – 使用AudioRecord 录制PCM(录音);AudioTrack播放音频
Android 音视频开发(二) – Camera1 实现预览、拍照功能
Android 音视频开发(三) – Camera2 实现预览、拍照功能
Android 音视频开发(四) – CameraX 实现预览、拍照功能
Android 音视频开发(五) – 使用 MediaExtractor 分离音视频,并使用 MediaMuxer合成新视频(音视频同步)
Android 音视频开发(六) – Android Mediaprojection 截屏和录屏
音视频工程
二. Android MediaCodec 编解码
在这系列的文章中,你会接触一个重要的知识,MediaCodec ,可以这么说,它在编解码这块的重要程度,相当于你手机的操作系统,所以有必须要深入学习,通过这系列文章,你将学习到
- MediaCodec 的工作原理
- 同步解码和异步解码,以及相关知识
- 视频编码怎么来,以及最常用的H264格式
- 通过你也将学习怎么编码
Android 音视频编解码(一) – MediaCodec 初探
Android 音视频编解码(二) – MediaCodec 解码(同步和异步)
Android 音视频编解码(三) – 视频编码和H264格式原理讲解
Android 音视频编解码(四) – MediaCodec 编码录屏数据,并播放
音视频工程
三. Android 蓝牙开发
Android的蓝牙也非常有意思,我们可以用它去传输数据,文件,还可以自己实现与蓝牙音响/耳机 的通信,实现传输声音,当然还解密了低功耗蓝牙这个高大上的概念。这系列文章,你将学习到:
- 传统蓝牙是如何工作的,以及如何通信
- 与蓝牙设备配对,实现音频传输
- 低功耗蓝牙
Android 蓝牙开发(一) – 传统蓝牙聊天室
Android 蓝牙开发(二) --手机与蓝牙音箱配对,并播放音频
Android 蓝牙开发(三) – 低功耗蓝牙开发
项目工程BluetoothDemo
四.WebRtc
作为大名鼎鼎的webrtc,肯定要了解的,后面涉及到在线传输,都会接触到,所以也打个基础。这里你将学习到:
- 了解webrtc 的基础知识,如何快速使用相机
- 了解信令服务器与webrtc的关系,以及webrtc 通信原理。
Android WebRTC 入门教程(一) – 使用相机
Android WebRTC 入门教程(二) – 模拟p2p本地视频传输
五. OpenGL ES 教程
说到21世纪最火的产品,那肯定是短视频了,那如何给图片或者视频加特效呢?学会OpenGL,你会发现,哦,原来如此。这系列文章,你将学习到:
- OpenGL 是如何与 CPU 通信和交换数据的
- 你将学习纹理是什么?并绘制一个3D立方体
- 你也会知道通过矩阵变化和坐标系统,知道一个物体最终是如何在 OpenGL呈现的
- 还有如何去解析视频,并添加抖音特效
Android OpenGL ES 学习(一) – 基本概念
Android OpenGL ES 学习(二) – 图形渲染管线和GLSL
Android OpenGL ES 学习(三) – 绘制平面图形
Android OpenGL ES 学习(四) – 正交投屏
Android OpenGL ES 学习(五) – 渐变色
Android OpenGL ES 学习(六) – 使用 VBO、VAO 和 EBO/IBO 优化程序
Android OpenGL ES 学习(七) – 纹理
Android OpenGL ES 学习(八) –矩阵变换
Android OpenGL ES 学习(九) – 坐标系统和。实现3D效果
Android OpenGL ES 学习(十) – GLSurfaceView 源码解析GL线程以及自定义 EGL
Android OpenGL ES 学习(十一) –渲染YUV视频以及视频抖音特效
六. JNI/NDK(C相关)
NDK 虽然会用,但一直没怎么深入学习,但对音视频开发来说,会看会写C代码,无论是阅读优秀的开源框架,还是对自身能力的提升,都相关重要,所以这里也有计划(还在整理中):
- JNI 与 NDK 的学习
- 引入,函数,异常等学习
- so 静态加载/动态加载
- 指针/内存
七. Ffmpeg
不多说,信仰,学它就完事,待更新。。。。