⼤家都知道要⼊门⾳视频要学习⾳视频录制,编码,处理,但是具体不知道怎么做。我⾃⼰在⼊门的时候也⼀样,靠着搜索引擎⾃⼰⼀点⼀ 点的积累,在这⾥当然要谢谢在该领域⽆私奉献的⼤佬们。
下⾯是我整理的学习路线,相信我,如果你认真学完了,你⼀定会成为⾳视频⼈才招聘市场的⾹饽饽
一、初级入门篇:
1 绘制图片
- ImageView 绘制图⽚
- SurfaceView 绘制图⽚
- ⾃定义 View 绘制图⽚
2. AudioRecord API详解
3. 使⽤ AudioRecord 实现录⾳,并生成wav
- 创建⼀个AudioRecord对象
- 初始化⼀个buffer
- 开始录⾳
- 创建⼀个数据流,⼀边从AudioRecord中读取声⾳数据到初始化的buffer,⼀边将buffer中数据导入数据流。
- 关闭数据流
- 停⽌录⾳
4. ⽤ AudioTrack 播放PCM⾳频
- AudioTrack 基本使⽤
- MODE_STATIC模式
- MODE_STREAM模式
- AudioTrack 详解
- ⾳频流的类型
- Buffer分配和Frame的概念
- AudioTrack构造过程
- AudioTrack 与 MediaPlayer 的对⽐
- 区别
- 联系
- SoundPool
5. 使用 Camera API 采集视频数据
- 预览 Camera 数据
- 取到 NV21 的数据回调
6. 使用 MediaExtractor 和 MediaMuxer API 解析和封装 mp4 ⽂件
- MediaExtractor API介绍
- MediaMuxer API介绍
- 使⽤情境
7. MediaCodec API 详解
- MediaCodec 介绍
- MediaCodec API 说明
- MediaCodec 流控
- 流控基本概念
- Android 硬编码流控
- Android 流控策略选择
⼆、中级进阶篇:
- Android OpenGL ES 开发(⼀): OpenGL ES 介绍
- Android OpenGL ES 开发(⼆): OpenGL ES 环境搭建
- Android OpenGL ES 开发(三): OpenGL ES 定义形状
- Android OpenGL ES 开发(四): OpenGL ES 绘制形状
- Android OpenGL ES 开发(五): OpenGL ES 使⽤投影和相机视图
- Android OpenGL ES 开发(六): OpenGL ES 添加运动效果
- Android OpenGL ES 开发(七): OpenGL ES 响应触摸事件
- Android OpenGL ES 开发(⼋): OpenGL ES 着⾊器语⾔GLSL
- Android OpenGL ES 开发(九): OpenGL ES 纹理贴图
- Android OpenGL ES 开发(⼗): 通过GLES20与着⾊器交互
三、高级探究篇:
- 深⼊学习⾳视频编码,如H.264,AAC,研究使⽤开源编解码库,如x.264,JM 等
- 深⼊研究⾳视频相关的⽹络协议,如 rtmp,hls,以及封包格式,如:flv,mp4
- 深⼊学习⼀些⾳视频领域的开源项⽬,如 webrtc,ffmpeg,ijkplayer,librtmp 等等
- 将 ffmpeg 库移植到 Android 平台,结合上⾯积累的经验,编写⼀款简易的⾳视频播放器
- 将 x264 库移植到 Android 平台,结合上⾯积累的经验,完成视频数据 H264 软编功能
- 将 librtmp 库移植到 Android 平台,结合上⾯积累的经验,完成 Android RTMP 推流功能
⾳视频编解码技术
- ⾳视频编解码技术(⼀):MPEG-4/H.264 AVC 编解码标准
- ⾳视频编解码技术(⼆):AAC ⾳频编码技术
流媒体协议
- 流媒体协议(⼀):HLS 协议
- 流媒体协议(⼆):RTMP协议
多媒体文件格式
- 多媒体⽂件格式(⼀):MP4 格式
- 多媒体⽂件格式(⼆):FLV 格式
- 多媒体⽂件格式(三):M3U8 格式
- 多媒体⽂件格式(四):TS 格式
- 多媒体⽂件格式(五):PCM / WAV 格式