转瞬间,2022已慢慢步入深冬,回首过去一年,音视频技术在经历一番风浪的侵袭过后,变得逐渐相对平静下来。 内卷之外,大家似乎更多了一份理性指导我们去做一些正确的事,追求技术在商业中的更高价值。具体体现在我们要思考如何才能将自身能力更多、更快、更好的转化为产品。无论是从技术优化创新、提高服务质量,或是从降低成本、提升效率等方面考虑,都力求为客户实现更高的价值和收益。 全真互联时代,音视频技术已然成为企业数字化进程中的关键路径,实时、高清、沉浸的互动体验在各行各业中起到了至关重要的连接与沟通价值。相信开发者们也可以明确感知到目前市场上对于音视频人才的需求,市场招聘音视频岗位薪资亦是水涨船高。 先来了解一下音视频运作流程:音视频运作流程 音视频生产端:音视频的采集预处理编码封装网络发送 音视频消费端:网络接收解封装解码渲染1、音视频采集 Android平台上的音频采集一般就三种:利用android内置的应用程序使用MediaRecorder进行音频捕获使用AudioRecord进行音频捕获。 此3种方式的灵活性逐渐增大,相应的所需要做的工作也逐渐增多。2、预处理 视频数据的预处理一般包括视频图像的滤镜处理、美颜处理、加字幕,绿幕抠图。 音频的预处理一般包括声音的3A算法和变速变调处理,这个在WebRTC里面有详细的介绍和实现。AGC:自动增益补偿〕功能(AutomaticGainControl)ANS:背景噪音抑制功能〕(AutomaticNoiseSuppression)AEC:回声消除器〕(AcousticEchoCanceller)3、编码 音频的编码标准:AACOpusmp3 视频的编码标准:H264H265VP8VP9AV1 以我目前的工作经验最常用的视频编码是h264音频编码是AAC编码。4、封装 音视频编码后需要将音视频包以某种容器封装起来,这个步骤成为音视频的封装。常见的封装格式flvmp4tsrtp ffmepg支持非常丰富的媒体封装格式。查看ffmepg支持的封装格式命令如下ffmpegmuxers5、传输 常见的音视频的网络传输协议有rtmphttpflvrtspsrthlsrtcudp,各有优劣,这里不做详细对比。感兴趣可以百度google搜索了解。6、解封装 解封装是上面介绍的封装的逆操作,从音视频的容器中将音频包、视频包分离出来放到各自的队列,等待各自的解码线程去解码渲染视频,播放音频。7、解码 编码的逆操作,将视频包解码成原始的视频帧,将音频包解码成原始的pcm音频数据。8、渲染 视频的渲染windows平台下可以使用Direct3D技术渲染视频,macOS,Android和Linux可以使用OpenGL、OpenGLES技术渲染视频。拓展知识:FFmpeg进阶 要学习音视频,无论是直播还是音视频处理,ffmpeg和webrtc基本是绕不过去的,相对webrtc来说,ffmpeg应用的更广。 音视频岗位确实吃香,但学习音视频有一个点避免不了,那就是音视频学习难度比较大!在这我也努力为大家解决这些学习痛点,整理了一份音视频开发进阶文档,让初学者可以比较柔顺丝滑地入门,即使是老司机也能得到不少收获。 (此文档包括CC,Linux,FFmpegwebRTCopenglrtmphlsrtspffplay) 获取方法:关注公众号spanstylecolor:C7254E;ttdarkmodecolor:CB2650;Android苦做舟span领取这些开发文档 1。Android高级开发工程师必备基础技能2。Android性能优化核心知识笔记3。Android音视频进阶开发面试题冲刺合集4。Android音视频开发入门到实战学习手册5。AndroidFramework精编内核解析6。Flutter实战进阶技术手册7。近百个Android录播视频音视频视频dome8。AndroidHandler机制解析以下是这份开发文档的部分章节:音视频初级入门开发 音视频入门开发(一):三种方式绘制图片音视频入门开发(二):AudioRecord采集音频PCM并保存音视频入门开发(三):AudioTrack播放PCM音频音视频入门开发(四):CameraAPI采集视频数据音视频入门开发(五):MediaExtractor和MediaMuxerAPI解析与封装音视频入门开发(六):MediaCodecAPI详解音视频入门开发(七):音视频录制流程总结音视频中级进阶:OpenSLES学习 OpenGLES中级开发(一):OpenGLES介绍OpenGLES中级开发(二):OpenGLES环境搭建OpenGLES中级开发(三):OpenGLES定义形状OpenGLES中级开发(四):OpenGLES绘制形状OpenGLES中级开发(五):OpenGLES使用投影和相机视图OpenGLES中级开发(六):OpenGLES添加运动效果OpenGLES中级开发(七):OpenGLES响应触摸事件OpenGLES中级开发(八):OpenGLES着色器语言GLSLAndroid音视频开发高级探究篇 音视频编解码技术:音频编码技术流媒体协议多媒体文件格式FFmpeg学习 获取方法:关注公众号spanstylecolor:C7254E;ttdarkmodecolor:CB2650;Android苦做舟span领取这些开发文档。1。Android高级开发工程师必备基础技能2。Android性能优化核心知识笔记3。Android音视频进阶开发面试题冲刺合集4。Android音视频开发入门到实战学习手册5。AndroidFramework精编内核解析6。Flutter实战进阶技术手册7。近百个Android录播视频音视频视频dome