FFmpeg/WebRTC/RTMP/NDK/Android音视频流媒体高级开发学习路线
随着基础设施的完善(光纤入户、wifi覆盖、5G普及)的影响,将短视频、直播、视频会议、在线教育、在线医疗瞬间推到了顶峰,人们对音视频的需求和要求也越来越强烈
音视频开发学习成本高、效率低主要表现在有以下几个方面:
首先音视频开发人员的培养是一个长期投入,见效慢的过程,音视频开发见效太慢,没有一定时间的锻炼和项目喂养,很难满足企业的岗位要求
其次、音视频开发人员如果是自己公司培养的,特备是自己培养出来的高级开发人员也不会轻易就流失的,毕竟现在缺的就是人才,人才才是核心竞争力;即使跳槽也是向着更大的平台
而且音视频开发还具有许多方向,比如:
如果对音视频传输感兴趣,就可以学习各种传输协议、各种信令的控制、数据传输安全等
如果对编解码感兴趣,视频可以学习 H264、H265、VP8, AV1 等,音频可以学习 PCM、G72x、ilbc 等
如果对特效感兴趣,可以学习图形学的知识,从各种转码、美颜、滤镜、模糊处理、锐化处理等方向入手
如果对服务端感兴趣,可以学习搭建媒体服务器入手、包括音视频数据转发、信令数据处理、拉流、推流协议的处理等
如果对各种音视频格式感兴趣、可以学习音视频数据格式封装、包括 MP4、MVK、FLV、TS、RMVB、MP3、ogg 等
当然可以深入学习一些开源库,包括 FFMPEG、WebRTC、x264、live555 等
音视频自学难点
音视频自学非常困难,网上通俗易懂的难找到
网上部分资源是对应的开源版本较低,比如雷霄骅(雷神)博客的 FFmpeg 版本较低
音视频涉及大量的开源库和协议
比如 ffmpeg 的编译,如果不熟悉各种编译报错
Janus 编译涉及各种开源组件编译不通过
比如 WebRTC 涉及的 RTP RTCP SDP STUN 等协议
部分嵌入式音视频的朋友技术面窄,技术不深入
比如有同学做了 2 年的音视频驱动,一帧音频能持续播放多久都不明白
总的来说:音视频知识庞杂,通俗易懂的资料非常少;而且网上充斥着大量的错误信息,使得很多初学者掉到坑里就爬不出来了
这里给大家推荐一套学习路线,并附有相关《音视频开发核心知识点及源码资料》,相信可以给大家提供一些帮助,有需要的朋友们也可以拿去查漏补缺!
有需要的小伙伴:可点击此处查看直达方式!!
第二阶段 FFmpeg 实战
第三阶段 流媒体客户端
RTMP 推拉流项目实战
第四阶段 流媒体服务器
第五阶段 WebRTC 项目实战
第六阶段 Android NDK