• 音视频开发成长之路与音视频知识点总结


    音视频涉及语音信号处理、数字图像处理、信息论、封装格式、编解码、流媒体协议、网络传输、渲染、算法等。在现实生活中,音视频发挥着越来越重要的作用,如视频会议、直播、短视频、播放器、语音聊天等。所以从事音视频开发是一件有意义的事情,机遇和挑战并存。本文将从:音视频开发基础、音视频高级成长、音视频工作方向、音视频开源库、音视频相关书籍,配套的学习资源等几个方面来进行介绍。

    那么我们该如何系统的学习音视频开发呢?需要学习掌握哪些内容?【文末彩蛋】附上音视频开发学习思维导图

    音视频高级开发学习视频:FFmpeg/WebRTC/RTMP/RTSP/HLS/RTP播放器-音视频流媒体高级开发学习

    一、音视频开发基础

    1.1音频基础知识

    1.2视频基础知识

    1.3解复用基础知识

    1.4 FFmpeg开发环境搭建

    1.5音视频开发常用工具

    二、音视频进阶成长知识

    1 、FFmpeg实战

    1.1 FFmpeg命令

    1.2 SDL跨平台多媒体开发库实战

    1.3 FFmpeg基石精讲

    1.4 FFmpeg音视频解复用+解码

    1.5 FFmpeg音视频编码+复用合成视频

    1.6 FFmpeg过滤器

    1.7 ffplay播放器

    1.8 ffmpeg多媒体视频处理工具

    2、流媒体客户端

    2.1 RTMP推拉流项目实战

    2.2 HLS拉流分析

    2.3 RTSP流媒体实战

    3、流媒体服务器

    3.1 SRS 3.0源码剖析

    3.2 ZLMediaKit源码剖析(2022年新增)

    ​4、WebRTC项目实战

    4.1 WebRTC中级开发手把手写代码

    4.2 WebRTC高级开发-MESH模型多人通话

    4.3 WebRTC高级开发-Janus SFU模型多人通话

    4.4 WebRTC高级开发-SRS 4.0/5.0源码分析

    三、音视频工作方向

    相信很多伙伴在音视频工作方向这个十字路口,有过徘徊、迷茫。个人建议是选择自己喜欢的方向,如果还没找到自己所爱,努力去寻找,借用雷总的话“不要害怕做出选择”。一旦做出选择,就要把工作当做事业,不仅仅是为了工作而工作,借用乔布斯的话“Do what you love, love what you do”。把音视频工作方向总结为9个(可能不够准确,仅是个人观点):直播、传输、算法、视频播放器、流媒体后端、短视频、音频播放、视频编辑、图像处理。具体方向如下:

    四、音视频开源库

    1、多媒体处理

    多媒体处理包括:FFmpeg、libav、Gstreamer。其中FFmpeg是目前最常用的音视频处理库,包括封装格式、编解码、滤镜、图像缩放、音频重采样等模块。

    2、流媒体传输

    流媒体传输包括WebRTC、live555。其中WebRTC是目前最常用的RTC库,比较著名的模块有JitterBuffer、NetEQ、pacer、网络带宽估计。

    3、播放器

    播放器包括:ijkplayer、exoplayer、vlc。其中ijkplayer是B站开源的跨平台播放器,exoplayer是Google开源的Android平台播放器,vlc属于VideoLAN非盈利组织所开源。

    4、编解码

    常用的编解码包括:aac、mp3、opus、vp9、x264、av1。其中aac一般用于点播、短视频,opus用于RTC直播。vp9是Google开源的编码器,VideoLAN有提供x264编码器,av1是AOMedia(开放媒体联盟)开源的新一代视频编码器。

    5、音频处理

    音频处理的开源库包括:sox、soundtouch、speex。其中sox称为音频处理界的瑞士军刀,可以做各种音效、提供各种滤波器。soundtouch用于变速变调、变速不变调。speex严格意义上讲,它是一个编码器,但是它有丰富的音频处理模块:PLC(丢包隐藏)、VAD(静音检测)、DTX(非连续传输)、AEC(回声消除)、NS(噪声抑制)。

    6、流媒体服务器

    流媒体服务器主流的有:SRS、janus。其中SRS是一款简单高效的视频服务器,支持RTMP、WebRTC、HLS、HTTP-FLV、SRT。而janus是MeetEcho公司开源的基于WebRTC的流媒体服务器,严格意义上讲它是一个网关。

    7、音视频分析

    做音视频开发绕不开分析工具,掌握使用分析工具至关重要。常用的音视频分析工具包括但不限于:Mp4Parser、VideoEye、Audacity。其中Mp4Parser用于分析mp4格式及其结构。VideoEye是雷神开源的基于Windows平台分析视频码流工具(在此致敬雷神的开源精神)。Audacity是一款开源的音频编辑器,可用于添加各种音效、分析音频波形图。

    8、视频渲染

    视频渲染相关开源库有:GPUImage、Grafika、LearnOpenGL。其中GPUImage可用于添加各种滤镜特效。Grafika是Google一位工程师开源的基于Android平台渲染示例库。LearnOpenGL主要是配套其网站的学习OpenGL教程。

    六、音视频书籍

    1、音频类

    音频书籍包括:The music of theory、DSP noise reduction、Audio Signal Process and Coding、数字音频原理及应用、音频信号处理与编码等。

    2、视频类

    视频书籍包括:数字图像与视频处理、音视频开发进阶指南、视频编码全角度详解、新一代视频压缩编码标准H.264/AVC、新一代高效视频编码H.265/HEVC、数字图像处理(冈萨雷斯版)、多媒体信号编码与传输、OpenGL编程指南、WebRTC native开发实战、FFmpeg从入门到精通、在线视频技术精要等。

    3、语言类

    关于C/C++相关书籍包括:C语言程序设计、C++编程思想、C++ Primmer Plus、C++程序设计语言、Effective C++。另外推荐的是《程序员的自我修养》。相关书本可参考以前写的博客:那些年曾经看过的书。

    C和C++标准文档可以查看:cppreference网站。C语言包括C89、C95、C99、C11、C17、C23,C++语言包括C++98、C++11、C++14、C17、C20、C23。学习API文档,可以快速掌握C/C++语言有哪些头文件,支持哪些库,不同版本的差异。

    七、配套的学习资料

    1.音视频流媒体高级开发知识点学习视频点击 音视频学习资料 获取

    2.音视频开发系统免费学习地址:FFmpeg/WebRTC/RTMP/RTSP/HLS/RTP播放器-音视频流媒体高级开发学习

    学习课程大纲:

    ​结束语

    希望各位朋友在音视频道路上不断成长,怀着一颗热爱技术的心,延迟满足感,coding自己的梦想。既然选择远方,就得风雨兼程,不畏路途险阻,英雄不问出处,努力终有回报。

  • 相关阅读:
    软考高级系统架构设计师系列案例考点专题四:嵌入式系统
    elementUI的el-menu组件做内部组件和外链区分
    【SpringCloud】一、SpringCloud介绍
    二叉排序树的插入(递归、非递归)和构造
    南大通用数据库-Gbase-8a-学习-38-常规日志(general log)
    写给五年前的自己,即还在新手村的你
    Flutter 3.16 发布,快来看有什么更新吧
    架构与思维:微服务架构的思想本质
    全网首发!消息中间件神仙笔记,涵盖阿里十年技术精髓
    乾元通多卡聚合路由设备海上通信应用解决方案
  • 原文地址:https://blog.csdn.net/Linuxhus/article/details/126892789