总体来讲,音视频开发是有一定的技术门槛的,我觉得至少需要在这个领域踏踏实实积累个3-5年,才能对音视频相关的开发知识有一个整体、深刻的理解。
从技术上来讲,需要从如下两个大类知识点上去积累:
C/C++通用开发知识
音视频开发的主要编程语言就是C和C++。
这块的专业知识积累是通用的,并不局限于某个特定的行业,属于程序员的技术功底。
可以重点关注如下几个方面:
计算机系统的底层工作原理
操作系统原理
程序的编译、链接和加载机制
C/C++语言特性背后蕴含的思想,底层工作原理,适用场景,存在什么样的问题
软件设计原则和设计模式
数据结构和算法
多线程并发编程原理
网络编程
跨平台
操作系统API
软件调试
2. 音视频领域专业知识
这块属于从事音视频行业的专业知识。
这块的专业知识是非常多的,每个功能模块背后涉及很多专业的知识。
音视频的开发可以分为两大块,涉及的内容大致如下:
音视频客户端开发
客户端应用开发
音视频引擎开发
音视频引擎SDK
音视频引擎框架
音视频引擎功能模块
音/视频采集
音/视频渲染
音/视频数据处理
音/视频编/解码
录制
串流
音视频同步
流媒体服务器开发
通用服务器开发知识,需要关注如下几个点
高稳定性
高性能
高并发
高可用
流媒体服务器开发