这是我制订的一个音视频学习线路图,希望对学习音视频的同学能所有帮助!
从2018年制作第一门音视频课《ffmpeg精讲》开始,到今年3月我已经陆续录制了4门与音视频相关的课程和一个专栏,分别是《音视频系统入门》、《ffmpeg精讲》、《WebRTC入门与实战》、《百万级WebRTC流媒体服务器》以及《从0开始打造音视频直播系统》,他们基本覆盖了音视频从入门到高阶的所有内容。
如果你对音视频感兴趣的话,可以根据自己的情况选择自己感兴趣的课程学习,当然也可以按照下面的路线图进行学习,
首先是《音视频系统入门》,这门课是学习音视频至关重要的课程,是所有其它课程的基础。如果你之前对音视频没有任何概念,或者基础不牢的话,建议先从这门课开始学起。这门课讲解了最基本的音视频知识,如音频三要素、PCM、AAC编码、YUV、H264编码原理、音视频数据采集、FLV/RTMP、可商用的RTMP流媒体服务器等知识。课程中包括了大量实战,而且是手把手带你一行一行代码写起,特别适合于新入门的同学。这门课的知识是每个搞音视频研发的同学必须 100% 撑握的内容,很多音视频面试题也是考的这部分内容。
学完《音视频系统入门》之后,你可以继续学习高阶的《ffmpeg精讲》,这门课详细讲解了ffmpeg的运行机制,重点讲解了音视频同步,音视频线程的协作等。并通过这些知识实现了一个播放器内核。如果你的工作是做音视频编辑(如音视频的裁剪、音视拆分合并等)、音视频的编解码、音视频播放器研发的工作,那这门课就特别适合你。
当然,如果你想做实时互动直播(如音视频会议、在线教育)产品,那么WebRTC是你必须要学习的内容。WebRTC现在越来越强大,强大到你通过浏览器编写几行代码就可能实现1对1的实时通信。因此你可以选择学习《WebRTC入门与实战》 和《百万级WebRTC流媒体服务器》。 这两门课一门是讲解客户端的一门是讲解服务端的。
《WebRTC入门与实战》讲解了WebRTC的工作原理,如如何采集音视频,媒体协商,以及理底层的ICE、P2P、DTLS-SRTP、RTP/RTCP、STUN等,但其侧重点还是教你如何使用WebRTC库实现实时通信。在这门课中实现了浏览器端、Android、iOS三个端。并且三个端之间都可以彼此进行 1对1 的实时通信。
另一门课《百万级WebRTC流媒体服务器》是讲解WebRTC流媒体服务器的高阶课程,这门课里面详细讲解了如何在Linux上开发高并发流媒体服务器,讲解了信号处理、多进程/多线程、select/poll/epoll/libevent/libev异步事件处理机制等,并重点对性能最好的WebRTC流媒体服务器mediasoup
做了深入剖析。相信学完这门课后你去应聘相关的工作时,技术上已经不会有任何问题了。甚至是各大厂争抢的人才。
上面的视频课都是针对于某一方面做的重点讲解,但如果你想对整个音视频技术做全面了解,并且对更愿意阅读文字的话,阅读我的专栏 《从0开始打造音视频直播系统》是个不错的选择。专栏中我对上面所有的内容做了概括性的讲解,如 WebRTC的使用、WebRTC流媒体服务器的分析、传统RTMP直播技术以及各种播放器都做了讲解。如果你对音视频各方面知识都有了一定的了解,建议你再读一下这个专栏,它会对你的音视频知识做一个系统的梳理,从而让你对音视频的认知更上一个台阶。