一、参考资料:
1. 音视频开发进阶指南(笔者主要从事移动端开发,以这本书入门,通篇了解音视频处理比较合适):
https://item.jd.com/12292642.html
2. ffmpeg入门到精通(音视频处理绕不开ffmpeg,所以前置学习计划里,必须得有ffmpeg的学习,了解ffmpeg的编译和api接入流程):
https://item.jd.com/12349436.html
3. openGL ES3.0(图像渲染这一环节,用到openGL ES3.0,多少要了解一点作为入门,不然有些代码看不懂):
https://item.jd.com/11655699.html
4. 雷霄骅博客(雷的博客写的很棒,深入浅出,还有手把手入门级的DEMO):
https://blog.csdn.net/leixiaohua1020
5.shell简易教程(了解编译脚本,方便自己排查问题):
https://www.runoob.com/linux/linux-shell.html
这些资料作为入门级的学习,差不多够了,基本掌握了音视频处理的基础概念,涉及编码、解码、转码、推流、特效等知识
二、开发环境
笔者主要从事Android开发,对Android比较熟悉,iOS有基本的了解,最开始是Android/iOS平台上同时进行学习开发,进度比较缓慢,经常卡在某一个点,比如编译,比如库的连接等。
后来调整下思路,主要在iOS平台进行编译开发,主要考虑iOS开发环境更适合c/c & native原生混合开发,省去了Android平台jni的开发调试,xcode对c/c 的开发也更友好,android studio开发c/c 简直就是灾难。
学习直播(点播)推流的实现,最好能自己搭建一个外网流媒体服务器,基于nignx rtmp,快的话1个小时就ok了
三、注意事项
前期学习,不要处处求甚解,有些问题可能是ffmpeg等第三方库的版本问题,只要大体能跑通就行,不要追求代码的优雅