网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
一、音视频开发基础
1、音频基础
音频包括:采样率、声道数与声道布局、采样格式、PCM与波形图、音质、音频编码格式、音频封装格式。更详细的音视频概念,可参考:走进音视频的世界——音视频的基本概念。
2、通用基础
通用包括:编码原理、C/C++基础、视频分析工具、FFmpeg常用命令、平台相关多媒体API。
3、视频基础
视频包括:帧率、码率、分辨率、像素格式、色彩空间、I帧P帧B帧、DTS与PTS、YUV与RGB、位深与色域、视频编码格式、视频封装格式。具体如下图所示:
二、音视频进阶成长
1、音频进阶
音视频进阶成长也是分为:音频、通用、视频。其中音频包括:录音、麦克风采集、音频编解码、音频播放、音频分析、音效。
2、通用进阶
通用包括:熟悉流媒体协议、音视频传输、音视频同步播放、平台相关多媒体运用、FFmpeg相关API运用、OpenGL渲染、音视频编辑。
3、视频进阶
视频包括:录像、摄像头采集、视频编解码、视频播放、滤镜特效、视频转码。在熟悉音视频基础上深入学习,如下图所示:
三、音视频工作方向
相信很多伙伴在音视频工作方向这个十字路口,有过徘徊、迷茫。个人建议是选择自己喜欢的方向,如果还没找到自己所爱,努力去寻找,借用雷总的话“不要害怕做出选择”。一旦做出选择,就要把工作当做事业,不仅仅是为了工作而工作,借用乔布斯的话“Do what you love, love what you do”。把音视频工作方向总结为9个(可能不够准确,仅是个人观点):直播、传输、算法、视频播放器、流媒体后端、短视频、音频播放、视频编辑、图像处理。具体方向如下:
四、音视频开源库
1、多媒体处理
多媒体处理包括:FFmpeg、libav、Gstreamer。其中FFmpeg是目前最常用的音视频处理库,包括封装格式、编解码、滤镜、图像缩放、音频重采样等模块。
2、流媒体传输
流媒体传输包括WebRTC、live555。其中WebRTC是目前最常用的RTC库,比较著名的模块有JitterBuffer、NetEQ、pacer、网络带宽估计。
3、播放器
播放器包括:ijkplayer、exoplayer、vlc。其中ijkplayer是B站开源的跨平台播放器,exoplayer是Google开源的Android平台播放器,vlc属于VideoLAN非盈利组织所开源。
4、编解码
常用的编解码包括:aac、mp3、opus、vp9、x264、av1。其中aac一般用于点播、短视频,opus用于RTC直播。vp9是Google开源的编码器,VideoLAN有提供x264编码器,av1是AOMedia(开放媒体联盟)开源的新一代视频编码器。
5、音频处理
音频处理的开源库包括:sox、soundtouch、speex。其中sox称为音频处理界的瑞士军刀,可以做各种音效、提供各种滤波器。soundtouch用于变速变调、变速不变调。speex严格意义上讲,它是一个编码器,但是它有丰富的音频处理模块:PLC(丢包隐藏)、VAD(静音检测)、DTX(非连续传输)、AEC(回声消除)、NS(噪声抑制)。
6、流媒体服务器
流媒体服务器主流的有:SRS、janus。其中SRS是一款简单高效的视频服务器,支持RTMP、WebRTC、HLS、HTTP-FLV、SRT。而janus是MeetEcho公司开源的基于WebRTC的流媒体服务器,严格意义上讲它是一个网关。
7、音视频分析
做音视频开发绕不开分析工具,掌握使用分析工具至关重要。常用的音视频分析工具包括但不限于:Mp4Parser、VideoEye、Audacity。其中Mp4Parser用于分析mp4格式及其结构。VideoEye是雷神开源的基于Windows平台分析视频码流工具(在此致敬雷神的开源精神)。Audacity是一款开源的音频编辑器,可用于添加各种音效、分析音频波形图。
8、视频渲染
视频渲染相关开源库有:GPUImage、Grafika、LearnOpenGL。其中GPUImage可用于添加各种滤镜特效。Grafika是Google一位工程师开源的基于Android平台渲染示例库。LearnOpenGL主要是配套其网站的学习OpenGL教程。
相关的开源网站与地址如下:
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!