2022全网最详细的音视频开发学习路线,零基础到项目实战,从小白到音视频专家

Posted Linux服务器开发

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2022全网最详细的音视频开发学习路线,零基础到项目实战,从小白到音视频专家相关的知识,希望对你有一定的参考价值。

前言

音视频的历史与前景在这里就不介绍了,小编之前的文章里面都有讲到。

行业现状分析

  • 核心竞争力:定义音视频是程序届的皇冠,掌握音视频意味着拿到通往未来的船票,不用担心会被其他人替代。音视频是有门槛的。是与其他人拉开差距的分水岭

  • 高端人才相关缺乏:Boss直聘中,北上广深很多年限上50w-70w的音视频岗位,常年还招不到人,月薪2-3万大多是刚从事音视频入门级开发者

  • 技术迭代慢:就H264编码从95年成为标准至今,都在使用。比较偏底层技术,底层技术几十年不会有太大的改变

招聘的公司

招聘的公司行业分布广泛(以下列举大部分是互联网公司)

互联网

掌门科技 哔哩哔哩 字节跳动 腾讯 欢聚时代 快手 阿里巴巴 虎牙

即构科技 网易 小米 商汤科技 融云 蚂蚁金服 爱奇艺 ...等等

计算机软件

华为 海康威视 浙江大华 ...等等

移动互联网

常相伴(互动娱乐) 声网 ...等等

电子商务

京东 拼多多 美团 ...等等

人力资源服务

Boss直聘

音视频开发岗位

说道薪资待遇什么的,想必是你们比较关心的一件事。我就随便在Boss直聘搜索的音视频开发岗位的薪资。

​从上图可以看出音视频开发岗位的薪资平均都是在20K以上,但是他们对学历还是有一定的要求的最低基本都是本科学历。

为什么音视频的开发薪资这么高呢?

因为是音视频岗位人才稀缺,很少有人会完整的音视频开发。

那么我们该如何学习音视频?需要学习那些内容?【文末彩蛋】附上音视频开发知识点学习资料以及思维导图​​​​​​​

大家可以参考我的学习路线知识点进行学习

音视频开发总体学习知识点:

1.首先需要学习的是音视频基础知识

有些朋友对音视频学习有些误区,以为需要很多的理论基础才开始去实践,实际上大家只需要懂:

视频:

  • YUV格式

  • RGB格式

  • 帧率

  • 分辨率

  • H264 I P B帧原理

音频:

  • PCM

  • 采样率

  • 采样格式

  • 码率

等这些基础知识掌握了之后即可开启音视频学习的大门。

1、音视频基础开发知识:

音视频基础知识

o 音频基础知识,PCM格式、编码原理等

o 视频基础知识,YUV格式、IPB帧原理等

Ffmpeg环境搭建

o Windows平台

o Linux平台

o MAC平台

常用工具

o MediaInfo

o VLC播放器
o EasyICE

2、FFmpeg命令实战

命令帮助

o 如何查询Ffmpeg命令帮助

o Ffmpeg命令分类

ffplay命令

o ffplay播放控制

o ffplay播放pcm

o ffplay播放yuv

o ffplay使用filter播放

ffmpeg命令

o pcm提取

o yuv提取

o aac提取

o h264提取

o 视频录制命令

o 多媒体文件的分解/复用命令

o 裁剪与合并命令

o 图片/视频互转命令

o 直播相关命令

o 各种滤镜命令

3、FFmpeg编程实战

音视频渲染实战

o SDL环境搭建

o SDL事件处理

o SDL线程处理

o YUV视频播放实战

o PCM声音播放实战

FFmpeg API精讲

o FFmpeg框架分析

o FFmpeg内存模型分析

o FFmpeg常用结构体精讲

音视频编解码

o FFmpeg解码流程分析

o FFmpeg编码流程分析

o AAC编解码原理

o H264编解码原理

o AAC解码实战

o AAC编码实战

o H264解码实战

o H264编码实战

o MP3转AAC实战

音视频封装格式

o FLV封装格式分析

o MP4封装格式分析

o 多媒体解复用实战

o 多媒体复用实战

o 多媒体转封装格式实战

o 音频重采样

o 视频尺寸变换

音视频过滤器

o 音视频过滤器

o 视频过滤器

o 过滤器实际项目实现

ffplay播放器

o 掌握ffplay.c的意义

o ffplay框架分析

o 音视频解码

o 音视频控制

o 音视频同步

o 参数机制

播放器开发实战

o 播放器框架分析

o 模块划分

o 音视频解码

o 播放器控制

o 音视频同步

ffmpeg录制转码

o 掌握ffmpeg.c的意义

o ffmpeg框架分析

o 音视频编码

o 封装格式转换

o 提取音频

o 提取视频

o logo叠加

o 音视频文件拼接

o filter机制

4、流媒体客户端实战

RTMP流媒体

o RTMP协议分析

o wireshark抓包分析

o H264 RTMP封装

o AAC RTMP封装

o RTMP拉流实战

o H264 RTMP解析

o AAC RTMP解析

o RTMP推流实战

HLS流媒体

o HLS协议分析

o HTTP协议分析

o TS格式分析

o wireshark抓包分析

o HLS拉流实战

o FFmpeg HLS源码分析

o HLS多码率机制

HTTP-FLV流媒体

o HTTP-FLV协议分析

o wireshark抓包分析

o http chunk机制分析

o HTTP-FLV拉流实战

o FFmpeg HTTP-FLV源码分析

RTSP流媒体实战

o RTSP协议分析

o RTP协议分析

o H264 RTP封装

o H264 RTP解析

o AAC RTP封装

o AAC RTP解析

o RTCP协议分析

o RTSP流媒体服务器搭建

o RTSP推流实战

o RTSP拉流实战

o wireshark抓包分析

5、SRS流媒体服务器

SRS 3.0源码剖析

o 整体框架分析

o RTMP推流分析

o RTMP拉流分析

o HLS拉流分析

o HTTP-FLV拉流分析

o FFmpeg转码分析

o 首屏秒开技术分析

o forward集群源码分析

o edge集群源码分析

o 负载均衡部署方式

6、WebRTC实战

WebRTC中级开发

o WebRTC通话原理分析

o WebRTC开发环境搭建

o coturn最佳搭建方法

o 如何采集音视频数据

o 一对一通话时序分析

o 信令服务器设计

o SDP分析

o Candidate类型分析

o Web一对一通话

o Web和android通话

o AppRTC快速演示

WebRTC高级开发

o 自定义摄像头分辨率

o 码率限制

o 调整编码器顺序

o Mesh模型多方通话

o Janus框架分析

o Janus Web客户端源码分析

o Janus Android客户端源码分析

o Janus Windows客户端源码分析

o Janus信令设计

o 基于Janus实现会议系统

o WebRTC源码编译

Janus服务器源码分析

o 源码结构

o 插件机制

o 线程分析

o 信令交互过程

o videoroom分析

SRS4.x源码分析

o RTMP转发WebRTC逻辑

o WebRTC转发RTMP逻辑

o WebRTC音视频一对一通话

o WebRTC多人通话

o WebRTC SFU模型分析

o stun分析

o turn分析

o sdp分析

o rtp分析

o srtp分析

o 拥塞控制算法

o FEC

o jitter buffer

7、Android NDK开发

音视频开发

o So库适配总结

o JNI Native层构建 Java 对象

o JNI异常处理

o 编译FFmpeg

o 编译ijkplayer

o 基于ijkplayer二次开发

o OpenSL ES播放音频数据

o MediaCodec硬件解码

o OpenGL ES Shader显示视频

o RTMP推流直播

GSYVideoPlayer源码分析

o 多视频同时播放

o gif截图

o 边播放边缓存

o 水印

o 弹幕

总结:

以上就是音视频开发学习知识点,相比音视频开发自学非常困难的,网上通俗易懂的难找到,网上部分资源是对应的开源版本较低,比如雷霄骅(雷神)博客的FFmpeg版本较低,音视频涉及大量的开源库和协议,比如ffmpeg的编译,如果不熟悉各种编译报错,Janus编译涉及各种开源组件编译不通过,比如WebRTC涉及的RTP RTCP SDP STUN等协议,部分嵌入式音视频的朋友技术面窄,技术不深入。

学习资料:

视频流媒体高级开发知识点学习视频点击 音视频学习资料 获取

音视频高级开发系统学习视频:FFmpeg/WebRTC/RTMP/RTSP/HLS/RTP播放器-音视频流媒体高级开发学习

2022网络安全学习路线 非常详细 推荐学习

关键词:网络安全入门、渗透测试学习、零基础学安全、网络安全学习路线

分享一套web安全零基础学习视频教程

链接:https://pan.baidu.com/s/1w-8u06bJIb98dl6U1w67wQ?pwd=42p1 
提取码:42p1

首先咱们聊聊,学习网络安全方向通常会有哪些问题

1、打基础时间太长

学基础花费很长时间,光语言都有几门,有些人会倒在学习 linux 系统及命令的路上,更多的人会倒在学习语言上;

2、知识点掌握程度不清楚

对于网络安全基础内容,很多人不清楚需要学到什么程度,囫囵吞枣,导致在基础上花费太多时间;看到很多小伙伴,买了 HTML,PHP,数据库,计算机网络等书籍,每本还很厚,很多写得也很深,发现越学越没自信,别人学个 PHP 或者数据库就可以找到工作,而网络安全要学这么多,越来越怀疑自己是不是选错了方向;

3、知识点分不清重点

很多人花了很大精力学完了基础内容,但是发现很多知识和后续网络安全关联不大,没有分清重点,浪费了很多时间;

4、知识点学习不系统

之前看到很多小伙伴在 b 站找了好多视频,也去其他平台买了点小课,百度云盘上也有 1-2T 的学习资料和视频内容,但是每一类学完都需要花费不少时间,且内容很多有重复性,学完 SQL 注入后,后面又看到另一家讲这个 SQL 注入,还不错,又会去学习一遍,发现学完所有 web 漏洞原理后,自己还是不太确定自己是否把 Web 漏洞这块的知识点学全没有;

5、自己解决问题难

对于初学者来说,很多会自己搭建一些靶场,但是由于配置环境等原因,耽误时间会很多,尤其初学者碰到连续 3 个问题无法解决的时候,很容易放弃;对于一部分动手能力较差的同学,这块可能会直接影响到继续学习的信心;

6、实战水平不够

对于学网络安全,渗透测试方向的技术,其实很大程度上学习的就是“黑客”技术,通过学习怎么进攻和入侵,才能够更清楚系统和应用怎么去防御;而这块也恰恰是网络安全的核心,如果光有理论,实战经验少,也是较难去就业;在平时学习中,除了可以搭建一些开源的靶场用于练习,最好还是要有真实漏洞组成的靶场用于学习,当然也可以去 SRC 平台去渗透测试一些真实网站(一定要获得授权才可以渗透真实网站),但是难度发现又比较大,很多初学者会丧失信心,怀疑自己;

7、内网学习困难较大

Web 渗透这块的资料在互联网到处都是,学习起来相对较为轻松,但是内网这块的资料在互联网相对较少,能够借鉴的资料不多,另外也需要有相应的靶场配合练习,才能有技术上的提高和积累;学习难度会比较大。

了解了问题,同时结合自身的一些特点来调整学习方向,会事半功倍,以下为 3 种学习线路,适用于不同的学习人群

方法 1:先学习编程,然后学习 Web 渗透及工具使用等

适用人群:有一定的代码基础的小伙伴

(1)基础部分

基础部分需要学习以下内容:

(1.1)计算机网络 :

重点学习 OSI、TCP/IP 模型,网络协议,网络设备工作原理等内容,其他内容快速通读;

(1.2)Linux 系统及命令 :

由于目前市面上的 Web 服务器 7 成都是运行在 Linux 系统之上,如果要学习渗透 Web 系统,最起码还是要对 linux 系统非常熟悉,常见的操作命令需要学会;

**学习建议:**学习常见的 10%左右的命令适用于 90%的工作场景,和 office 软件一样,掌握最常用的 10%的功能,基本日常使用没什么问题,遇到不会的,再去找度娘;常见的 linux 命令也就 50-60 个,很多小白囫囵吞枣什么命令都学,发现记不住啊!!!!这个学习方法也是不对的;

(1.3)Web 框架 :

熟悉 web 框架的内容,前端 HTML,JS 等脚本语言了解即可,后端 PHP 语言重点学习,切记不要按照开发的思路去学习语言,php 最低要求会读懂代码即可,当然会写最好,但不是开发,但不是开发,但不是开发,重要的事情说三遍;

(1.4)数据库:

需要学习 SQL 语法,利用常见的数据库 MySQL 学习对应的数据库语法,也是一样,SQL 的一些些高级语法可以了解,如果没有时间完全不学也不影响后续学习,毕竟大家不是做数据库分析师,不需要学太深;

(2)Web 安全

(2.1)Web 渗透

掌握 OWASP 排名靠前的 10 余种常见的 Web 漏洞的原理、利用、防御等知识点,然后配以一定的靶场练习即可;有的小白可能会问,去哪里找资料,建议可以直接买一本较为权威的书籍,配合 b 站的免费视频系统学习,然后利用开源的靶场辅助练习即可;

【推荐靶场】常见的靶场都可以上 github 平台搜索,推荐以下靶场 DVWA、bWAPP、upload-labs-master、SQL-lib-master、WebBug、pikachu 等,有些是综合靶场,有些是专门针对某款漏洞的靶场;

(2.2)工具学习

Web 渗透阶段还是需要掌握一些必要的工具,工具的学习 b 站上的视频比较多,挑选一些讲解得不错的视频看看,不要一个工具看很多视频,大多数视频是重复的,且很浪费时间;

**主要要掌握的工具和平台:**burp、AWVS、Appscan、Nessus、sqlmap、nmap、shodan、fofa、代理工具 ssrs、hydra、medusa、airspoof 等,以上工具的练习完全可以利用上面的开源靶场去练习,足够了。

练习差不多了,可以去 SRC 平台渗透真实的站点,看看是否有突破,如果涉及到需要绕过 WAF 的,需要针对绕 WAF 专门去学习,姿势也不是特别多,系统性学习学习,然后多总结经验,更上一层楼。

(2.2)自动化渗透

自动化渗透需要掌握一门语言,且需要熟练运用,可以是任何一门自己已经掌握得很熟悉得语言,都可以,如果没有一门掌握很好的,那我推荐学习 python,最主要原因是学起来简单,模块也比较多,写一些脚本和工具非常方便;

什么鬼?又要学习编程,刚才不是说了编程不是学习网络安全的必要条件,不懂自动化渗透也不影响入门和就业,但是会影响职业的发展,且学习 python 不需要掌握很多不需要的模块,也不需要开发成千上万行的代码,仅利用它编写一些工具和脚本,少则 10 几行代码,多则 1-200 行代码,一般代码量相对开发人员已经少得不能再少了,例如一个精简得域名爬虫代码核心代码就 1-20 行而已;

有的小伙伴可能又急了,那到底需要怎么学嘛?

几天时间学习一下 python 的语法,有代码基础得小哥哥和小姐姐,最快可能一天就可以学习完 python 的语法,因为语言都是相通的,但是学习语言最快的就是写代码,别无他法;接下来可以开始尝试写一些常见得工具,如爬虫、端口探测、数据包核心内容提取、内网活跃主机扫描等,此类代码网上一搜一大把;然后再写一些 POC 和 EXP 脚本,以靶场为练习即可;有的小伙伴可能又要问了,什么是 POC 和 EXP,自己度娘去,养成动手的好习惯;

(2.3)代码审计

什么鬼?又要看代码。此处内容要求代码能力比较高,因此如果代码能力较弱,可以先跳过此部分的学习,不影响渗透道路上的学习和发展。

但是如果希望在 Web 渗透上需要走得再远一些,需要精通一门后台开发语言,推荐 php,因为后台采用 php 开发的网站占据最大,当然你还精通 python、asp、java 等语言,那恭喜你,你已经具备很好的基础了;

代码审计顾名思义,审计别人网站或者系统的源代码,通过审计源代码或者代码环境的方式去审计系统是否存在漏洞(属于白盒测试范畴);

那具体要怎么学习呢?学习的具体内容按照顺序列举如下:

  • 掌握 php 一些危险函数和安全配置;

  • 熟悉代码审计的流程和方法;

  • 掌握 1-2 个代码审计工具,如 seay 等;

  • 掌握常见的功能审计法;(推荐审计一下 AuditDemo,让你产生自信)

  • 常见 CMS 框架审计(难度大);

**【推荐书籍】**代码审计有一本国外的书籍《代码审计:企业级 Web 代码安全架构》,当然有空的时候可以去翻翻,建议还是在 b 站上找一套系统介绍的课程去学习;github 上找到 AuditDemo,下载源码,搭建在本地虚拟机,然后利用工具和审计方法,审计 AuditDemo 中存在的 10 个漏洞,难度分布符合正态分布,可以挑战一下;

至于 CMS 框架审计,可以去一些 CMS 官方网站,下载一些历史存在漏洞的版本去审计,框架的学习利用官方网站的使用手册即可,如 ThinkPHP3.2 版本是存在一些漏洞,可以尝试读懂代码;但是切记不要一上来就看代码,因为 CMS 框架的代码量比较大,如果不系统先学习框架,基本属于看不懂状态;学习框架后能够具备写简单的 POC,按照代码审计方法结合工具一起审计框架;其实也没有想想中的那么难,如果你是开发人员转行的,恭喜你,你已经具备代码审计的先天性优势。

那有的小伙伴又问了,我代码很差,不学习代码审计行不行,代码审计不是学习网络安全的必要条件,能够掌握最好,掌握不了也不影响后续的学习和就业,但你需要选择一个阶段,练习得更专业精通一些,如 web 渗透或者内网渗透,再或者是自动化渗透;

(3)内网安全

恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web 渗透、安全服务、安全分析等岗位;

如果想就业面更宽一些,技术竞争更强一些,需要再学习内网渗透相关知识;

内网的知识难度稍微偏大一些,这个和目前市面上的学习资料还有靶场有一定的关系;内网主要学习的内容主要有:内网信息收集、域渗透、代理和转发技术、应用和系统提权、工具学习、免杀技术、APT 等等;

不要和我说专业名词,叭叭叭叭叭叭!具体要怎么学?

**【推荐书籍】**这个问题有点大,呃呃呃呃呃呃!可以看《内网安全攻防:渗透测试实战指南》,这本书写得还不错,国内为数不多讲内网的书籍,以书籍目录为主线,然后配合工具和靶场去练习即可;

那小伙伴又要问了,那去哪里可以下载到内网靶场!呃呃呃呃呃!这个难倒我了,如果你能力够强,电脑配置高,可以自己利用虚拟机搭建内网环境,一般需要 3 台以上的虚拟机;你也可以到国外找一些内网靶场使用,有一些收费的靶场还可以;

(4)渗透拓展

渗透拓展部分,和具体工作岗位联系也比较紧密,尽量要求掌握,主要有日志分析、安全加固、应急响应、等保测评等内容;其中重点掌握前三部分,这块的资料网络上也不多,也没有多少成型的书籍资料,可通过行业相关的技术群或者行业分享的资料去学习即可,能学到这一步,基本上已经算入门成功,学习日志分析、安全加固、应急响应三部分的知识也相对较为容易。

方法 2:先学习 Web 渗透及工具,然后再学习编程

适用人群:代码能力很弱,或者根本没有什么代码能力,其他基础也比较差的小伙伴

那有的小伙伴就会问了,那你基础都不打好,怎么学习 Web 渗透?

基础部分还是要学习的,比如 linux 系统、计算机网络、一点点的 Web 框架、数据库还是需要提前掌握;

那像 php 语言、自动化渗透和代码审计部分内容,可以放在最后,当学习完毕前面知识后,也相当入门后,再来学习语言,相对会容易一些;

**【优先推荐】**方法 2,对于小白来说,代码基础通常较弱,很多很多小白会倒在前期学习语言上,所以推荐方法 2 的学习,先学习 web 渗透和工具,也比较有意思,容易保持一个高涨的学习动力和热情,具体学习内容我就不说了,请小伙伴们参照方法 1 即可。

以上是关于2022全网最详细的音视频开发学习路线,零基础到项目实战,从小白到音视频专家的主要内容,如果未能解决你的问题,请参考以下文章

2022网络安全学习路线 非常详细 推荐学习

2022网络安全学习路线 非常详细 推荐学习

2023年网络安全零基础学习路线,阿里高工熬夜3个月,修改了上百次全网最系统学习路线图,网络安全基础入门必备

2023网络安全学习路线 非常详细 推荐学习

2022年最适合Python零基础的学习路线,零基础及转行入门首选

2022年Python+大数据学习路线图 内附「路线+视频」