我们先假设某人在音视频方面是零基础,也没学过任何数字信号处理相关知识,数学基础基本是高中水准,但是熟悉 C/C++ 开发,至少熟悉某一个平台下的编译调试IDE。
着重研究两个开源项目 ffmpeg 和 webRTC,主要看ffmpeg的视频部分和webRTC的音频部分。
首先,从视频解码入手,这个最简单,调用 ffmpeg视频解码的基本代码只有100行左右,视频解码只要搞懂h.264就好了,80%+场景都是这个编码格式了,了解基本的 H.264 的 sps pps NAL等文件格式概念,了解YUV图像格式原理,了解YUV到RGB的转换,这样就可以做图像渲染,可以实现一个简单的视频播放器。 (第一阶段基本符合)
然后,学习视频编码,建议从x264入手,一个简单的调用x264的编码代码也不到100行。编码比解码复杂在于,解码是不需要配置什么参数的,而编码有大量参数需要配置,初期只要了解几个基本概念就好了,比如 帧速率, 常用流控方式 ABR CRF,GOP,I/B/P Frame分别是什么意思。(再次熟悉X264编码)
音频部分的编解码和视频差不多,初期只需要了解两种编码器EAAC+和Silk,了解 声道,采样率等概念,了解 Wave文件格式。可以做一个简单音频播放器。(做一个音频播放器)
音频复杂的地方不是编解码,而是音效,看下 webRTC里的 Audio Processing module,理解以下几个概念,去噪NS,消回声AEC&
5G时代很火的音视频高级开发学习路线及知识点总结
最新推荐文章于 2024-06-23 13:17:59 发布
本文为音视频开发初学者提供了一条学习路线,包括FFmpeg视频解码与编码、WebRTC音频处理,以及流媒体服务器开发。建议从FFmpeg命令行开始,逐步深入到项目实战,涵盖从基础概念到高级应用,如H.264解码、x264编码、音频编解码和WebRTC音视频处理模块。
摘要由CSDN通过智能技术生成