总体来讲,音视频开发是有一定的技术门槛的,我觉得至少需要在这个领域踏踏实实积累个3-5年,才能对音视频相关的开发知识有一个整体、深刻的理解。
从技术上来讲,需要从如下两个大类知识点上去积累:

C/C++通用开发知识

音视频开发的主要编程语言就是C和C++。
这块的专业知识积累是通用的,并不局限于某个特定的行业,属于程序员的技术功底。
可以重点关注如下几个方面:

计算机系统的底层工作原理

操作系统原理
程序的编译、链接和加载机制
C/C++语言特性背后蕴含的思想,底层工作原理,适用场景,存在什么样的问题
软件设计原则和设计模式
数据结构和算法
多线程并发编程原理
网络编程
跨平台
操作系统API
软件调试

2. 音视频领域专业知识

这块属于从事音视频行业的专业知识。
这块的专业知识是非常多的,每个功能模块背后涉及很多专业的知识。
音视频的开发可以分为两大块,涉及的内容大致如下:

音视频客户端开发
客户端应用开发
音视频引擎开发
音视频引擎SDK
音视频引擎框架
音视频引擎功能模块
音/视频采集
音/视频渲染
音/视频数据处理
音/视频编/解码
录制
串流
音视频同步
流媒体服务器开发
通用服务器开发知识,需要关注如下几个点
高稳定性
高性能
高并发
高可用
流媒体服务器开发
SFU vs MCU
流媒体协议转换
弱网下的音视频传输协议
录制 & 转码

上述内容中,客户端应用开发、音视频引擎SDK、音视频引擎框架、通用服务器开发等主要涉及C/C++通用开发知识,但要设计好这些部分必须对音视频相关的知识和产品业务有比较深刻的理解才能做到。通常,音视频架构师比较关注这些部分。
而音视频引擎底层功能模块和SFU/MCU流媒体服务器的开发,则和音视频的专业知识密切相关。

已经给大家准备好了安装环境和各种视频资料,资料放在自己的群里面:832218493(需要自取)

视频数据可以通过如下方式获得:
USB摄像头
专业的硬件视频采集卡(有软压卡和硬压卡之分)
网络摄像机(支持RTSP协议)
操作系统提供的屏幕录制API
读取音视频文件并解码
订阅流媒体服务器上的流
音频数据可以通过如下方式获得:
声卡
扬声器播放声音的回环采集(依赖操作系统的API)
读取音视频文件并解码
订阅流媒体服务器上的流
支持音频输入的网络摄像机(支持RTSP协议)
支持音频输入的视频采集卡
在手机上,操作系统的SDK会提供相关的音视频采集接口
音/视频渲染
视频渲染一般需要了解OpenGL,而音频渲染需要了解OpenAL
可以通过开源库SDL来快速实现渲染模块
在Windows下使用DirectShow框架,操作系统提供了对应的视频和音频渲染模块(通过GraphEdit可以看到)
在DirectShow中渲染器会涉及到音视频同步的策略,当然,也完全可以自己去实现音视频同步模块
音/视频数据处理
这些模块基本是在编码前或解码后,对视频或音频的原始数据进行某种算法上的处理
视频处理主要包括分辨率转换、色彩空间转换、帧率转换、图像增强、多路视频拼接、添加字幕、添加LOGO图片等,这块对整体的性能影响比较大,往往需要使用SIMD指令进行汇编优化或使用GPU算法进行加速
音频处理主要包括回声消除、噪声抑制、自动增益、混音等,这块往往会涉及比较多的信号处理和数学知识,是音频中比较复杂的一块
音/视频编/解码
视频编/解码
要理解视频的基本编码原理,熟悉视频编码的关键参数和码流格式
目前使用比较多的是H.264,H.265开始逐步在使用,其他的视频编码也有很多,如AVS、VP8、VP9等
视频编码对音视频引擎的性能影响比较大,这块基本都是需要使用GPU加速的,目前的Intel集显对H.264和H.265支持还是比较好的,NVIDIA的独立显卡在编码上存在路数的限制;手机上一般都有对应的硬件加速模块;在性能较好的硬件上,可以考虑开源的X264
音频编/解码
要理解音频的基本编码原理,熟悉音频的关键参数和码流格式
目前使用比较多的是AAC,其他的音频编码也有很多,如G7.11、G.722、OPUS等
在PC上,一般音频的相关模块对性能的影响不明显,但在海思嵌入式系统上,音频模块对性能的影响就不能忽略,因为海思基本没有提供音频的硬件加速模块,而ARM CPU性能也有点弱
录制
需要理解FLV、MP4、TS等容器格式
对于特殊的录制方式要注意软件的处理方式,例如,加片头和片尾的录制功能,追加录制
MP4录制要注意moov box放在文件开始或结束对录制文件的写入和点播的影响
录制时音视频均匀混合的策略
串流
理解视频互动、直播和点播的工作原理
关键评价指标
延迟
首屏时间
同步
流畅性
画质/音质
理解下述的几种音视频传输协议
RTMP
HTTP + FLV / Websocket + FLV
HLS
RTP & RTCP
RTSP
SIP
WebRTC
H.323
弱网下的音视频传输协议
理解TCP协议栈原理
可靠的UDP传输协议
KCP
SRT
QUIC
FEC + 丢包重传机制(如NACK)
音视频的开发并不是完全从零开始,而是有许多可以依赖的开源库,但要用好这些库,需要对上述的音视频专业知识有深刻的理解。
比较常见的音视频开源库,如下:

ffmpeg

可以直接使用ffmpeg的命令行实现转码、切片等常见功能
可以基于FFmpeg API封装开发自己的音视频模块
live555
比较完善的RTSP库
x264
比较常用的H.264编码库
fdkaac
比较常用的AAC编解码库
librtmp
支持rtmp协议,产品化时需要自己进一步完善
pjsip
支持sip协议
webrtc
google开源的webrtc库,有比较好的音/视频引擎,对网络状态的实时评估可以借鉴,回声消除模块也是比较有名的
SDL
比较有名的音视频渲染库
SRS
国内比较知名的RTMP流媒体服务器,支持HLS、HTTP+FLV,4.0版本开始支持WebRTC
OWT
Intel开源的WebRTC套件,支持了WebRTC客户端SDK和分布式的WebRTC MCU服务器
OpenCV
著名的视频算法库
另外,视频的编码和解码可以基于Intel Media SDK和NVIDIA的NVENC来实现。
在海思嵌入式上,海思芯片(如Hi3531D等)提供了硬件的音视频采集、音视频渲染、视频编/解码、视频图像处理等核心功能,这就需要借助于海思提供的SDK进行开发了。

顺便给大家推荐一个学习音视频的学习大纲 需要自取:

从事音视频开发,需要学习哪些知识点?相关推荐

  1. 音视频开发工程师学习之路

    在虎牙工作已经两年了,一开始做的事情杂且乱,左边看一点,右边看一点,最近好多了,可能是领导氛围和能力都优质了不少吧.在这过去的一年里,我从一个连c/cpp都不一定写的完整的人,到如今,Objectiv ...

  2. 微信多媒体团队访谈:音视频开发的学习、微信的音视频技术和挑战等

    内容概述 腾讯多媒体内核中心高级研究员时永方接受了LiveVideoStack的邮件采访,谈及了个人成长中的关键时刻,学习多媒体开发的三点核心,以及在5G和高清时代下,微信多媒体团队面临的挑战. Q: ...

  3. Android音视频开发基础(六):学习MediaCodec API,完成视频H.264的解码

    前言 在Android音视频开发中,网上知识点过于零碎,自学起来难度非常大,不过音视频大牛Jhuster提出了<Android 音视频从入门到提高 - 任务列表>.本文是Android音视 ...

  4. 2022全网最详细的音视频开发学习路线,零基础到项目实战,从小白到音视频专家

    前言 音视频的历史与前景在这里就不介绍了,小编之前的文章里面都有讲到. 行业现状分析 核心竞争力:定义音视频是程序届的皇冠,掌握音视频意味着拿到通往未来的船票,不用担心会被其他人替代.音视频是有门槛的 ...

  5. 音视频开发调研和学习路线

    以下内容是对网上多个博主以及音视频大佬发布的内容进行的总结. 1.音视频开发 1.1音视频开发是做什么的 音视频开发就是将我们摄像机.麦克风采集到的画面(视频像素数据,YUV格式)和声音(音频采用数据 ...

  6. 谈谈对Android音视频开发的探究

    ​ 在日常生活中,视频类应用占据了我们越来越多的时间,各大公司也纷纷杀入这个战场,不管是抖音.快手等短视频类型,虎牙.斗鱼等直播类型,腾讯视频.爱奇艺.优酷等长视频类型,还是Vue.美拍等视频编辑美颜 ...

  7. 音视频开发——通信直播协议和视频推流丨RTMP-RTSP

    近年来直播已成为互联网行业的大热话题,直播答题.游戏直播.竞赛直播,抖音直播,直播教育等层出不穷,直播早已成为人们耳熟能详的技术.事实上直播的兴起不仅与新时代人们要求为自己代言的心理有关,同时也得益于 ...

  8. Android音视频开发从入门到精通,我这一路走来的经验分享

    前不久,在国家统计局针对北京市进行的农民工市民化状况进行的调研中,从事信息技术,软件技术等IT服务业的人员也被当做农民工. 编程的门槛不高,薪资水平也还可观.这一直是"三百六十行,行行转IT ...

  9. 重磅音视频开发资料库!!!

    为了更好的阅读请前往GitBook 一.前言 这里整理有着丰富的音视频开发的学习资源.开发工具.优秀书籍.教程和开源项目,旨在帮助开发者和爱好者更好地学习.实践和工作.而下图是开发处理的过程: 二.学 ...

  10. ffmpeg前景_5G时代音视频开发前景怎么样?音视频开发需要掌握哪些技术?

    前言 从历史来看,2G打开了了移动互联网天下,3G带来了即时通信,诞生了QQ 微信等巨头,4G 带来了短视频兴起.字节跳动等公司崛起.2 3 4G的出现促成了移动互联网10年繁荣.而5G的出现,也会促 ...

最新文章

  1. 列标题 如何删除gridcontrol_DEV控件GridControl常用属性设置(转)
  2. linux下rsync+inotify实现服务器之间文件实时同步
  3. tomcat,JVM内存设置
  4. IntelliJ IDEA(一、下载,安装与激活)
  5. [BZOJ 2424][HAOI2010]订货(费用流)
  6. java 解密后为空_java RSA加密解密
  7. Arts 第十九周(7/22 ~ 7/28)
  8. CF1110E-Magic Stones【结论题,差分】
  9. 函数式编程 -- 纯函数、柯里化函数
  10. 4.1 深层神经网络
  11. 小时光扫地机器人圆圆_小时光:圆圆录像功能已开启,无死角录制林一霸道总裁一面,超甜...
  12. VSFTPD (500 Illegal PORT command 500 OOPS: vsf_sysutil_bind) 错误解决方法
  13. 2018网络小说年度热词盘点
  14. 缓解焦虑,这9种食物必不可少!
  15. magisk安装失败_俄罗斯官改MIUI MiRoom安装刷入教程
  16. 第二天:Kafka API操作
  17. Java用户注册手机短信验证码校验功能实现
  18. 隆中对,程序员修炼之道,技术学习前进之路
  19. 尚硅谷2020微服务分布式电商项目《谷粒商城》-商品搜索
  20. R语言作图——Pie chart(饼图)

热门文章

  1. 64注意力机制 10章
  2. Linux目录结构与Windows对比
  3. mac 隐藏文件(隐藏文件夹)怎么取消隐藏,显示文件(夹)
  4. C++中的switch语句
  5. 如何将安卓手机WiFI镜像投屏到电脑
  6. PS--怎么取消之前选择的工具?
  7. 数据仓库和数据集市的概念、区别与联系
  8. QGis 使用高德 画KML
  9. C语言#判断今天是工作日还是休息日
  10. Web自动化测试-Protractor基础(二)