以下内容是对网上多个博主以及音视频大佬发布的内容进行的总结。

1.音视频开发

1.1音视频开发是做什么的

音视频开发就是将我们摄像机、麦克风采集到的画面(视频像素数据,YUV格式)和声音(音频采用数据,PCM格式),通过编码算法进行压缩后(视频压缩为H.264\MPEG4,音频压AAC/MP3),再进行封装为固定格式(FLV,MP4,AVI),通过网络传输到用户端(rtmp,RTSP),在用户端对封装的数据(FLV,MP4,AVI)进行解封为音频数据AAC/MP3和视频数H.264\MPEG4,再通过解码算法恢复为采集到的格式(PCM,YUV),再通过音频和视频的同步,交给视频驱动(显卡->显示器)和音频驱动(扬声器)后就可以听到了。

说白了,音视频开发,就是要掌握图像、音频、视频的基础知识,并且学会如何对它们进行采集、处理、传输、渲染等一系列的开发和应用。

音视频开发主要有以下步骤:

采集:数据从哪里来(摄像头、麦克风)

处理:数据怎么加工(视频裁剪、缩放、旋转、叠加,音频充采样、去噪、回声消除、混音),编解码

传输:数据怎么共享,直播实时音视频

渲染:数据怎么展现,播放器

1.2音视频开发行业的现状与前景

开发薪水:在BOOS直聘公开统计中,音视频行业的工资10k-20k占12%,20k-30k占45%,30k-k占35%,35k以上占13%。主要分布在20k-35k之间,想要取得一个不错的薪资,如果只是简简单单开发四大组件是不可能拿到这么高薪资的。音视频开发薪资这么高主要就是因为音视频技术人才非常稀缺,很少有人会完整的音视频开发。
就业机会:就业场景分布广。之前学习了音视频高手课的200多位学员就职于全国各大公司。从事音视频相关产品开发,方向主要是直播,短视频,教育直播,AR,VR,云游戏,视频会议等一些场景,方向上没多少变化,只是应用场景上多了一些包装,毕竟随5G带宽硬件加速,以及人们对视频交互的需求日盛,音视频的使用场景应该会越来越多;
开发前景:随着5G落地,音视频在互联网中的比重越来越高,5G宽带的提速,必然加速整个音视频领域的应用,未来音视频人才缺口达30万,音视频高端领域严重短缺
像前几年,我们70%-80%的应用都是在网络请求、UI界面、文字、图片上;在以后,95%的应用场景主要是来自于计算机视觉领域,计算机视觉领域又是跟音视频相关性非常大的领域。所以,未来音视频开发领域绝对是一个风口,是一片蓝海

音视频开发行业的现状

核心竞争力:音视频是程序界的皇冠,掌握音视频意味着拿到通往未来的船票,不用担心会被其他人替代。因为音视频是有一定门槛的,所以也是与其他人拉开差距的分水岭。

高端人才相当缺乏:BOOS直聘中,北上广深很多年薪50W-70W的音视频开发岗位,常年招不到人,月薪2-3万大多是刚从事音视频的入门级开发者

技术迭代慢:H264编码从1995年成为标准至今一直都在使用,属于比较偏底层的技术,而底层技术几十年都不会有太大的改变。
如果大家再仅仅是停留在简简单单的四大组件、UI、网络这一块,那么可替代性是非常高的,不利于打造自身技术护城河

1.3学习音视频开发所需要的基础知识

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

音视频的一些基础原理:视频、音频的基础知识(码率、帧率、颜色空间、声道、刷新率、画质);音视频编解码技术(H.264\MPEG\MP3\AAC);封装格式(avi\flv)

音视频各个步骤需要掌握的知识

采集:音、视频怎么采集(各系统(windows等)采集接口、采集参数的含义以及怎么配置,摄像头、麦克风输出视频像素数据格式)

处理:做哪些处理(美颜、水印、贴纸、滤镜、连麦,混音、降噪、声音特效、自定义处理等),这些手段的原理、以及怎么实现、实现方法、实现的第三方库(视频:OpenGL,OpenCV,libyuv,ffmpeg\音频speexdsp,ffmpeg)、第三方库的原理和使用方法。编解码的原理,编解码采用的第三方库,第三方库的原理和使用方法(视频:x264,OpenH264,ffmpeg,音频libfaac,opus,speex,ffmpeg )

 传输传输分类、传输过程(推流、拉流、)、研究音视频传输的协议(推流RTMP,RSTP;拉流:RTMP,HLS,HDL,RTSP; UDP 的协议RTP/RTCP,QUIC )、协议的工作原理。

渲染数据怎么展现的(图像视频绘制到视图上、音频输出到扬声器);系统提供了哪些 API 可以绘制一张图片或者一帧 YUV 图像数据的 ?(Windows:DirectDraw, Direct3D, GDI,OpenGL 等Linux: GDI, OpenGL 等Android:ImageView,SurfaceView,TextureView,OpenGL 等iOS: CoreGraphics,OpenGL 等)系统提供了哪些 API 可以播放一个 mp3 或者 pcm 数(Windows:DirectSound 等Linux:ALSA & OSS 等Android:AudioTrack 等iOS: AudioQueue 等)

1.4常见的音视频开源库

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来实现(利用硬件编解码)。

1.5相关书籍推荐

《音视频开发进阶指南》--展晓凯

《FFmpeg从入门到精通》

《新一代视频压缩编码标准 H.264/AVC(第二版)》(白皮书,有难度)

《新一代高效视频编码H.265/HEVC:原理、标准与实现》

《WebRTC权威指南(原书第3版)》

《WebRTC技术详解:从0到1构建多人视频会议系统》

1.6实战演练

一阶段:

FFMPEG命令实战

a.命令分类查询;b视频录制命令;c多媒体文件的分解/复用命令;d裁剪与合并命令;e图片/视频互转命令;e直播相关命令;g各种滤镜命令;h音视频文件提取

SDL音视频渲染实战

SDL开发环境搭建;SDL窗口显示;SDL事件处理;SDL线程处理;YUV视频播放实战;PCM声音播放实战

FFMpeg解封装解码实战

FLV封装格式剖析;FLV封装实战;MP4封装格式剖析;MP4解封装实战;AAC ADTS分析;音频解码实战;H.264 NALU分析;视频解码实战;

FFMPEG编码封装实战

视频编码实战;音频编码实战;音视频FLV合成实战;音视频MP4合成实战;MP4转FLV实战;MP4转FLV重编码实战

FFMPEG过滤器实战

FFMPEG过滤器架构分析;音频过滤器实战;视频过滤器实战

播放器实战

播放器框架分析;音频输出模块;视频输出模块;音频解码模块;视频解码实战;音视频同步模块;音视频控制

FFPLAY播放器剖析

a.掌握ffplay.c的意义b.ffplay框架分析c.ffplay数据结构d.ffplay音频输出e.ffplay视频输出f.ffplay音视频同步g.ffplay图像格式转换h.ffplay音频重采样iffplay播放控制

FFMPEG多媒体转换器剖析

a.掌握ffmpeg.c的意义b.ffmpeg框架分析c.转封装流程分析d.转码流程分析e.提取音视频流程分析f.MP4转FLV实战g.FLV转TS实战h.H264转H265实战i.AAC转MP3实战j.H264提取实战k.AAC提取实战

二阶段:

RTMP流媒体实战

a.RTMP框架分析b.RTMP流媒体服务器搭c.RTMP协议详解d.H264封装e.AAC封装f.RTMP推流实战g.RTMP拉流实战h.RTMP抓包分析

HLS流媒体实战

A.HLS框架分析B.HLS流媒体服务器搭建C.HTTP协议分析Dm3u8协议详解E.TS协议解析F.hls拉流实战G.hls抓包分析i.hls多码率机制手

HTTP-FLV流媒体实战

a.HTTP-FLV框架分析b.HTTP-FLV流媒体服务器搭建c.HTTP-FLV拉流实战d.HTTP-FLV抓包分析

SRS流媒体服务器分析

a.整体框架分析b.rtmp拉流分析c.rtmp推流分析d.hls拉流分析e.hls推流分析f.http-flv拉流分析g.http-flv推流分析h.FFmpeg转码分析i.首屏秒开技术分析j.forward集群源码分析k.edge集群源码分析l.负载均衡部署方式

RTSP流媒体实战

a.HTTP-FLV框架分析b.RTP协议分析C.RTCP协议分析d.RTSP流媒体服务器搭建e.RTSP推流实战f.RTSP拉流实战g.wireshark抓包分析h.RTSP流媒体服务器分析

WEBRTC中级实战

a.WebRTC通话原理分析b.WebRTC开发环境搭建c.coturn最佳搭建方法d.如何采集音视频数据e.- -对一通话时序分析f.信令服务器设计g.Web- -对一-通话h.Web和Android通话i.AppRTC快速演示

WEBRTC高级开发

自定义摄像头分辨率b.码率限制C.调整编码器顺序d.Mesh模型多方通话eJanus框架分析f.Janus Web客户端源码分析g.Janus Android客户端源码分析h.基于Janus实现会议系统i.Janus Windows客户端源码分析j.Janus信令设计k.WebRTC源码编译l.拥塞控制算法m.FECnijitter buffer

Janus服务器源码分析

.a源码结构f.sdp分析k.turn分析b.插件机制g.rtp分析c.线程分析h.srtp分析d.信令交互过程i.rtcp分析e.videoroom分析j.stun分析

三阶段

1.7音视频开发的学习计划

(1)音视频系统入门阶段:巩固C/C++知识,学习音视频基础知识(各种编码格式、封装格式)、学习ffmpeg的命令行工具(用时7~10天),了解安卓、windows的一些接口和SDK调用,最后制作一个视频播放器(编解码与封装),对应实战的第一阶段

(2)学习webRTC入门,了解实时互动直播产品学习相关网络协议协议,并了解相关安卓开发。(用时20天),对应实战的二阶段

(3)学习opengl做一些渲染,然后基于安卓完成整个流程。(采集、处理、传输、渲染)

1.8相关知识

Android多媒体原理(第1章 三种方式绘制图片第2章 AudioRecord录制PCM音频第3章 AudioTrack播放PCM音频第4章 Camera视频采集第5章 MediaExtractor MediaMuxer 实现视频的解封装与合成第6章 MediaCodec硬编解流程与实践)、windos多媒体原理

OPENGLES

JNI&NDK( JNI与NDK的学习和使用第18章 JNI - 引用类型、异常处理、函数注册第19章 NDK构建方式 ndk-build与cmake第20章 指针、内存模型、引用第21章 运算符重载、继承、多态、模版第22章 STL 之 容器

FFMPEG +OPENSL ES实现音频解码和播放、FFMPEG + OPENGLES 边解码边播放视频、VLC

音视频开发调研和学习路线相关推荐

  1. 音视频开发技术的进阶路线

    1. 音视频开发包括哪些内容 虽然一篇文章无法把音视频开发的知识点都介绍清楚,但是大概的学习路线还是可以梳理一下的,我们先看看下面这张图: 其实说白了,音视频开发,就是要掌握图像.音频.视频的基础知识 ...

  2. 洽谈 5G 时代“音视频”开发前景及学习方向

    前言 相信大家可以从日常生活感受到视频类的 APP 已经占据了我们大部分的时间,例如:抖音.快手.最右.小红书.哔哩哔哩等等短视频类型的 APP,亦或者是像虎牙.斗鱼等等直播类型的 APP,还有像腾讯 ...

  3. 从事音视频开发,需要学习哪些知识点?

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

  4. “铜三铁四“来一套程序员内卷超车赛道-音视频开发

    往年的金三银四,今年被戏称为"铜三铁四".知名的大厂HR们都在不断的裁员,能被保住不被裁掉可能就万事大吉了,赛道越来越窄,都在预测未来计算机行业是不是下一个土木工程? 其实每一个行 ...

  5. 音视频开发系列(19)玩转 WebRTC 安全通信:一文读懂 DTLS 协议

    在 WebRTC 中,为了保证媒体传输的安全性,引入了 DTLS 来对通信过程进行加密.DTLS 的作用.原理与 SSL/TLS 类似,都是为了使得原本不安全的通信过程变得安全.它们的区别点是 DTL ...

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

    音视频涉及语音信号处理.数字图像处理.信息论.封装格式.编解码.流媒体协议.网络传输.渲染.算法等.在现实生活中,音视频发挥着越来越重要的作用,如视频会议.直播.短视频.播放器.语音聊天等.所以从事音 ...

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

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

  8. 【音视频开发技术概要】技术背景、学习路线、业界大拿、岗位行业分析

    音视频的知识纷繁复杂,自学非常困难,既需要非常扎实的基础知识,又需要有很多的工程经验:本文就从音视频开发,开源框架,视频,业界大神,书籍推荐,就业方向分析,为广大开发者学习音视频技术提供便利. 首先我 ...

  9. C/C++音视频开发技术要点与学习路线

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

最新文章

  1. 华师大数据科学考研_2020年华东师范大学行政管理专业考研报录比、参考书目、考研经验分享...
  2. POJ 2236 Wireless Network (并查集)
  3. 手机psp模拟器哪个好_功能强大,手机微信群控系统和云控哪个好?
  4. windows 守护进程
  5. 2fsk调制解调原理框图_数字调制解调输出什么 数字调制解调输出特点介绍【图文】...
  6. 安全HCIP之eSight
  7. 虚拟机安装win10未找到驱动程序
  8. c语言中power是什么变量,c语言学习新手必看 power by vcok.com[转载]
  9. 未来教育计算机二级答案,未来教育计算机二级操作题答案.docx
  10. bzoj1597: [Usaco2008 Mar]土地购买
  11. python 弧度制和角度制相互转换(math库和numpy库);计算反正余弦正切值
  12. VK1628 LED数显芯片,LED驱动显示液晶驱动兼用TM1628
  13. Scacanner类
  14. PHP取整,四舍五入取整、向上取整、向下取整、小数截取
  15. HDU2188——悼念512汶川大地震遇难同胞——选拔志愿者(Bash Game巴士博弈)(我去,名字肿么这么长)
  16. #2021年底大盘点#普通大专的普通学生的普通大二学年
  17. Mdeditor编辑器
  18. ZSD017出货达成率
  19. 二极管反向恢复时间和反向恢复电流
  20. java雪人程序_java的几种引用类型

热门文章

  1. 基于springboot的音乐网站的设计与实现(带论文)
  2. 快速了解医院四项测评
  3. ONNX 模型的静态量化和动态量化
  4. onnx动态模型转静态模型
  5. 小陈js基础 输入输出语句
  6. Windows DockerDesktop启动失败,闪退解决方法
  7. 三菱FX3SA PLC通过FX3G-485BD模块及变频器通信指令和三菱D700变频器进行通讯记录
  8. XctNet:从单个X射线图像重建体积图像的网络
  9. 区分计算机网络和互联网的概念,移动互联网和互联网和PC互联网的含义和区别是什么...
  10. Cybercom 攀登4姑娘山2峰的体能测试报告