音视频开发成长之路与音视频知识点总结
音视频涉及语音信号处理、数字图像处理、信息论、封装格式、编解码、流媒体协议、网络传输、渲染、算法等。在现实生活中,音视频发挥着越来越重要的作用,如视频会议、直播、短视频、播放器、语音聊天等。所以从事音视频开发是一件有意义的事情,机遇和挑战并存。本文将从:音视频开发基础、音视频高级成长、音视频工作方向、音视频开源库、音视频相关书籍,配套的学习资源等几个方面来进行介绍。
那么我们该如何系统的学习音视频开发呢?需要学习掌握哪些内容?【文末彩蛋】附上音视频开发知识点学习资料以及思维导图
音视频高级开发学习视频:FFmpeg/WebRTC/RTMP/RTSP/HLS/RTP播放器-音视频流媒体高级开发学习
一、音视频开发基础
1.1 音频基础知识
1.2 视频基础知识
1.3 解复用基础知识
1.4 FFmpeg 开发环境搭建
1.5 音视频开发常用工具
二、音视频进阶成长知识
1 、FFmpeg 实战
1.1 FFmpeg 命令
1.2 SDL 跨平台多媒体开发库实战
1.3 FFmpeg 基石精讲
1.4 FFmpeg 音视频解复用+解码
1.5 FFmpeg 音视频编码+复用合成视频
1.6 FFmpeg 过滤器
1.7 ffplay 播放器
1.8 ffmpeg 多媒体视频处理工具
2、流媒体客户端
2.1 RTMP 推拉流项目实战
2.2 HLS 拉流分析
2.3 RTSP 流媒体实战
3、流媒体服务器
3.1 SRS 3.0 源码剖析
3.2 ZLMediaKit 源码剖析(2022 年新增)
4、WebRTC 项目实战
4.1 WebRTC 中级开发手把手写代码
4.2 WebRTC 高级开发-MESH 模型多人通话
4.3 WebRTC 高级开发-Janus SFU 模型多人通话
4.4 WebRTC 高级开发-SRS 4.0/5.0 源码分析
添加图片注释,不超过 140 字(可选)
三、音视频工作方向
相信很多伙伴在音视频工作方向这个十字路口,有过徘徊、迷茫。个人建议是选择自己喜欢的方向,如果还没找到自己所爱,努力去寻找,借用雷总的话“不要害怕做出选择”。一旦做出选择,就要把工作当做事业,不仅仅是为了工作而工作,借用乔布斯的话“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 教程。
六、音视频书籍
1、音频类
音频书籍包括:The music of theory、DSP noise reduction、Audio Signal Process and Coding、数字音频原理及应用、音频信号处理与编码等。
2、视频类
视频书籍包括:数字图像与视频处理、音视频开发进阶指南、视频编码全角度详解、新一代视频压缩编码标准 H.264/AVC、新一代高效视频编码 H.265/HEVC、数字图像处理(冈萨雷斯版)、多媒体信号编码与传输、OpenGL 编程指南、WebRTC native 开发实战、FFmpeg 从入门到精通、在线视频技术精要等。
3、语言类
关于 C/C++相关书籍包括:C 语言程序设计、C++编程思想、C++ Primmer Plus、C++程序设计语言、Effective C++。另外推荐的是《程序员的自我修养》。相关书本可参考以前写的博客:那些年曾经看过的书。
C 和 C++标准文档可以查看:cppreference 网站。C 语言包括 C89、C95、C99、C11、C17、C23,C++语言包括 C++98、C++11、C++14、C17、C20、C23。学习 API 文档,可以快速掌握 C/C++语言有哪些头文件,支持哪些库,不同版本的差异。
七、配套的学习资料
1.音视频流媒体高级开发知识点学习视频点击 音视频学习资料 获取
2.音视频开发系统免费学习地址:FFmpeg/WebRTC/RTMP/RTSP/HLS/RTP播放器-音视频流媒体高级开发学习
学习课程大纲:
结束语
希望各位朋友在音视频道路上不断成长,怀着一颗热爱技术的心,延迟满足感,coding 自己的梦想。既然选择远方,就得风雨兼程,不畏路途险阻,英雄不问出处,努力终有回报。
评论