原创分析-入门或者转行音视频,应该要怎么做
原创分析| 入门或者转行音视频,应该要怎么做?
要不要从事音视频开发
这一两年因为该死的疫情,让短视频、超高清视频和实时音视频反而成为需求风口。
我的看法当然是觉得音视频这个行业还可以,而且从我自己的观察来看,做音视频的现在普遍年龄都在 30+ 了,我 94 年的在组里有可能还是年龄最小的那一批人了。
有很多想从事这方面的开发者经常会有一个误区,把音视频开发认为是安卓的一个分支,我是非常不认同这个观念的。
我的观点是 音视频开发也可以是一个独立的分支,不一定要和 Android 、iOS 联系上的。和信息安全行业一样,也分移动安全、Web 安全、云安全等,不同的安全领域有可能差异很大,但还是都属于信息安全范畴,音视频同样如此。
做客户端上的音视频、服务端上的、嵌入式的、系统底层的都是音视频的范围,另外从事音视频编解码算法、网络通信协议、视频超分、音频降噪等等,也是音视频的领域范围内,所以说音视频也可以是一个很大的范围体系,每个人处在其中的位置不同而已。
如果你很熟练 FFmpeg ,熟悉播放器,或者很懂 OpenGL 渲染,那么不懂 JVM ,不懂 Android Framework 一点也不妨碍你找高薪工作。
音视频行业优势
电信行业的变革:
从1G语音、2G短信、3G图片语音、4G视频到5G未来可期的新时代,见证了音视频行业的磅礴发展。
技术更新慢且门槛高
技术更新慢,技术门槛高,大部分技术沿用至今,依然保持生命力,技术人员成型时间较长。以音视频常见的协议标准和开源项目为例:
协议标准
部分音视频相关的技术标准发布时间年鉴(供参考)
1980年 UDP用户数据报文协议(User Datagram Protocol)
1981年 TCP传输控制协议(Transmission Control Protocol)
1996年 RTP实时传输协议(Real-time Transport Protocol)
1996年 RTCP控制协议( Control Protocol)
2003年 H264视频编解码
2006年 NACK负向反馈(Negative Acknowledgement),接收方只有在没有收到数据的时候才通知发送方 rfc4585
2008年 FLV流媒体格式 (Flash Video)
2009年 HLS基于HTTP的自适应码率流媒体传输协议(HTTP Live Streaming)
2009年 WebRTC网页即时通信(Web Real-Time Communication)
2012年 RTMP实时消息传输 (Real Time Messaging Protocol)
2013年 H265视频编解码
2020年 H266视频编解码
开源项目
部分音视频开源项目发布时间,每个开源项目之所以能成功都是经过了开发者长期的时间投入。
2001年 FFmpeg多媒体视频处理开源项目
2009年 WebRTC开源项目发布
2013年 SRS流媒体服务器(Simple-RTMP-Server)发布版本
2013年 ijkplayer手机播放器发布
2014年 OBS开源项目(支持webrtc,早期支持的是RTMP)(GitHub可查最早时间)
2015年 Janus WebRTC流媒体服务器发布版本
2015年 QMPlay2 PC QT(调用FFmpeg的接口,硬解接口,OpenGL)播放器发布
2017年 ZLMediaKit流媒体服务器发布版本
音视频应用领域
音视频自学的难点
- 音视频自学非常困难,网上通俗易懂的难找到
- 网上部分资源是对应的开源版本较低,比如雷霄骅(雷神)博客的FFmpeg版本较低
- 音视频涉及大量的开源库和协议
- 比如ffmpeg的编译,如果不熟悉各种编译报错
- Janus编译涉及各种开源组件编译不通过
- 比如WebRTC涉及的RTP RTCP SDP STUN等协议
- 部分嵌入式音视频的朋友技术面窄,技术不深入
- 比如有同学做了2年的音视频驱动,一帧音频能持续播放多久都不明白
哪些公司需要音视频
常见招聘音视频的大公司
2022全新音视频流媒体高级开发进六大阶段
本路线涵盖最主流的音视频全栈开发技术,适合嵌入式开发、桌面开发、Android/IOS移动开发、后台开发、IT行业人员往音视频领域发展,适合音视频从业人员进一步系统提升音视频技术。学完具备全栈的音视频技术体系思维和视野,能够结合企业实际场景业务,进行播放器、录屏器、推拉流直播、视频监控、音视频通话、流媒体服务器等实际项目的开发。
音视频开发免费文档视频资料+学习路线免费领取!
第一阶段 音视频基础
第二阶段 FFmpeg实战
FFmpeg+QT QMplay2播放器
OBS推流录制源码分析
音视频开发学习地址:
【文章福利】:小编整理了一些个人觉得比较好的学习书籍、视频资料共享在群文件里面,有需要的可以自行添加哦!~ (需要自取)
第三阶段 流媒体客户端
第四阶段 流媒体服务器
ZLMediaKit源码剖析多线程
第五阶段 WebRTC项目实战
第六阶段 Android NDK