音视频技术的知识海洋浩瀚无垠,自学之路显得尤为崎岖,技术门槛的存在是毋庸置疑的事实。
对于渴望踏入这一行业的初学者而言,学习资源的匮乏成为了一道难以逾越的障碍。
本次文章主要是给大家分享音视频开发进阶学习路线,虽然我之前写过,但是这次我会结合最新接触到不同层次的人来做一个总结分享!当然还是以入门为主,技术点都是当下企业要求必须要掌握的!
一、学习音视频的门槛高不高?
毋庸置疑,在音视频行业是有技术门槛的,同时学习资料(包括书籍之类的,非常少!)非常少,可以说,市面上系统的音视频书籍非常少,不信大家可以自行去各个网站搜索一下。
不止是书籍方面,连可用的工具都非常少。。。。
总之学习资料这块对新人来说,非常不友好!
二、音视频该怎么学习?
我个人认为,首先你得先对基本的音视频理论知识有基本的了解和掌握,比如说:
- 1、什么是像素点、分别率?
- 2、什么是帧率、码率?
- 3、什么是rgb、yuv、pcm?
我这只是简单的列举了几个例子,这里面在工作当中会涉及到实际的工程问题,所以不展开讲,只是告诉你这些是必须要掌握的基础知识点。
接下来呢,给大家上一份音视频开发思维导图
三、还有哪些音视频知识点需要掌握?
1、流媒体协议:
面试或者实际工作当中,接触比较多的流媒体传输码流协议:
- rtsp
- rtmp
那我们该怎么去学习这些协议呢?
相信大部分人,一开始可能是先看理论知识,也就是看一些博客;恩,从我个人的角度来看,这个没有错的,但同时,我相信大部分刚开始学习的人,看完之后,还是一头雾水,或者你还是没有掌握到学习一个陌生的传输协议的共性:
- 也就是协议头+协议体
恩,有了这个共性后,你可能还是雾水,因为一个协议里面,太多的知识点了,何况你是第一次学习,很陌生。
我们平时开发,对新东西的掌握,都是经历一个折腾期,才会领悟的更深。
所以对于我们学习的时候来说,特别是流媒体传输协议,我更加推荐抓包去学习传输协议,比如上面的编码rtsp代码案例,你可以用wireshark去抓包分析。
2、封装容器和h264:
这里我给一些常见的封装容器去学习:
- flv
- mp4
- ts
然后是对码流进行编码和解码处理,这个肯定要先学习h264,这里主要是要掌握:
- 什么是I、B、P帧?
- NALU的码流结构
- rtp对h264的打包方式的实现掌握,也就对h264裸流数据进行打包处理
我这里有很多细节没有说哈,这个只是给大家总结要重点要掌握的知识提纲,详细技术栈可以私信我拿。
多媒体开源库:
- ffmpeg
- gstreamer
这里我更推荐学习ffmpeg
v4l2:
如果你对底层的东西比较感兴趣的话,也可以学习Linux内核里面的v4l2:
最后:
给校招的小伙伴一句话:第一份工作不亚于一次高考,珍惜校招,社招的竞争是你目前想象不到的。能去大厂觉不妥协,IT行业第一份工作背景越好,起点越高,后续发展空间越好!
给那些1-3年的安于现状的伙伴一句话:
不要抱怨市场,不要安于现状,在低端,往中端领域看,在中端往高端领域看。认知以及对自身的要求,都会有所改变。
给那些担心35岁的伙伴一句话:
决定上限的不是年纪,而是技术。最后:希望学习路线对你有所帮助,希望码农的我们越来越好!
粉丝福利,博主耗时2个月整理了一份详细的音视频开发学习路线,涵盖了音视频开发FFmmpeg、流媒体客户端、流媒体服务器、WebRTC、Android NDK开发、IOS音视频开发等等全栈技术栈,并提供了配套的免费领取C++音视频学习资料包、技术视频/代码,内容包括(FFmpeg ,WebRTC ,rtmp ,hls ,rtsp ,ffplay ,编解码,推拉流,srs流媒体服务器,音视频通话等等)↓↓↓↓↓↓见下面↓↓文章底部点击免费领取↓↓