前景一片蓝海,Android音视频开发必备基础知识汇总
转瞬间,2022 已慢慢步入深冬,回首过去一年,音视频技术在经历一番风浪的侵袭过后,变得逐渐相对平静下来。
"内卷"之外 ,大家似乎更多了一份"理性"指导我们去做一些正确的事,追求技术在商业中的更高价值。具体体现在我们要思考如何才能将自身能力更多、更快、更好的转化为产品。无论是从技术优化创新、提高服务质量,或是从降低成本、提升效率等方面考虑,都力求为客户实现更高的价值和收益。
全真互联时代,音视频技术已然成为企业数字化进程中的关键路径,实时、高清、沉浸的互动体验在各行各业中起到了至关重要的连接与沟通价值。 相信开发者们也可以明确感知到目前市场上对于音视频人才的需求, 市场招聘音视频岗位薪资亦是水涨船高。
先来了解一下音视频运作流程: 音视频运作流程
音视频生产端: 音视频的采集 ->预处理-> 编码 -> 封装 -> 网络发送
音视频消费端: 网络接收 -> 解封装 -> 解码 -> 渲染 1、音视频采集
Android平台上的音频采集一般就三种: 利用android内置的应用程序 使用MediaRecorder进行音频捕获 使用AudioRecord进行音频捕获。
此3种方式的灵活性逐渐增大,相应的所需要做的工作也逐渐增多。2、预处理
视频数据的预处理一般包括视频图像的滤镜处理、美颜处理、加字幕,绿幕抠图。
音频的预处理一般包括声音的3A算法和变速变调处理,这个在 WebRTC里面有详细的介绍和实现。AGC:自动增益补偿]功能(Automatic Gain Control) ANS:背景噪音抑制功能](Automatic Noise Suppression) AEC:回声消除器](Acoustic Echo Canceller)3、编码
音频的编码标准:AAC Opus mp3
视频的编码标准:H264 H265 VP8 VP9 AV1
以我目前的工作经验最常用的视频编码是 h264 音频编码是 AAC 编码。4、封装
音视频编码后需要将音视频包以某种容器封装起来,这个步骤成为音视频的封装。常见的封装格式flv mp4 ts rtp
ffmepg支持非常丰富的媒体封装格式。查看 ffmepg 支持的封装格式命令如下ffmpeg -muxers5、传输
常见的音视频的网络传输协议有 rtmp http-flv rtsp srt hls rtc udp ,各有优劣,这里不做详细对比。 感兴趣可以百度 google搜索了解。6、解封装
解封装是上面介绍的封装的逆操作,从音视频的容器中将音频包、视频包分离出来放到各自的队列,等待各自的解码线程去解码渲染视频,播放音频。7、解码
编码的逆操作,将视频包解码成原始的视频帧,将音频包解码成原始的pcm音频数据。8、渲染
视频的渲染 windows 平台下可以使用 Direct3D 技术渲染视频,macOS,Android 和 Linux 可以使用 OpenGL 、OpenGLES 技术渲染视频。拓展知识:FFmpeg进阶
要学习音视频,无论是直播还是音视频处理,ffmpeg和webrtc 基本是绕不过去的,相对webrtc 来说,ffmpeg 应用的更广。
音视频岗位确实吃香,但学习音视频有一个点避免不了,那就是音视频学习难度比较大! 在这我也努力为大家解决这些学习痛点,整理了一份音视频开发进阶文档 ,让初学者可以比较"柔顺丝滑"地入门,即使是老司机也能得到不少收获。
(此文档包括C/C++,Linux,FFmpeg webRTC opengl rtmp hls rtsp ffplay )
获取方法: 关注公众号<Android苦做舟 > 领取这些开发文档
1.Android高级开发工程师必备基础技能 2.Android性能优化核心知识笔记 3.Android+音视频进阶开发面试题冲刺合集 4.Android 音视频开发入门到实战学习手册 5.Android Framework精编内核解析 6.Flutter实战进阶技术手册 7.近百个Android录播视频+音视频视频dome 8.Android Handler机制解析以下是这份开发文档的部分章节:音视频初级入门开发
音视频入门开发(一):三种方式绘制图片音视频入门开发(二):AudioRecord 采集音频PCM并保存音视频入门开发(三):AudioTrack 播放PCM音频音视频入门开发(四):Camera API 采集视频数据音视频入门开发(五):MediaExtractor 和 MediaMuxer API 解析与封装音视频入门开发(六):MediaCodec API 详解音视频入门开发(七):音视频录制流程总结……音视频中级进阶:OpenSL ES 学习
OpenGL ES 中级开发(一): OpenGL ES 介绍OpenGL ES 中级开发(二): OpenGL ES 环境搭建OpenGL ES 中级开发(三): OpenGL ES 定义形状OpenGL ES 中级开发(四): OpenGL ES 绘制形状OpenGL ES 中级开发(五): OpenGL ES 使用投影和相机视图OpenGL ES 中级开发(六): OpenGL ES 添加运动效果OpenGL ES 中级开发(七): OpenGL ES 响应触摸事件OpenGL ES 中级开发(八): OpenGL ES 着色器语言GLSL……Android音视频开发高级探究篇
音视频编解码技术: 音频编码技术流媒体协议多媒体文件格式FFmpeg 学习
获取方法: 关注公众号<Android苦做舟 > 领取这些开发文档。1.Android高级开发工程师必备基础技能 2.Android性能优化核心知识笔记 3.Android+音视频进阶开发面试题冲刺合集 4.Android 音视频开发入门到实战学习手册 5.Android Framework精编内核解析 6.Flutter实战进阶技术手册 7.近百个Android录播视频+音视频视频dome
对越反击战刘伯承和粟裕尚在,邓小平为何选75岁的许世友挂帅?论年纪,三人中粟裕最年轻,比许世友还小两岁论资历,刘伯承是共和国十大元帅之一,粟裕是十个大将之首,他们都比许世友的上将军衔要高,作战经验也更丰富,包括许世友在内也很认可。1955年
只交过一个月的社保老了可以领钱嘛?可以领,前提是一你这个月交的养老保险费,是一次性补交15年灵活就业者的养老保险,到法定退休年龄可以领取养老金二一次性交满15年的城乡居民的养老保险费,到60周岁可以享受养老金的待遇
你相信因果吗?老一辈的人经常说,人在做天在看,善恶终有报,不是不报时候未到。佛家也说,三世因果因,有的是前世因今生果,有的是今生因来世果,因果报应近在自身远在儿孙。所以说,人要多多行善,算是为自
追忆童年,一路陪伴你成长的动画片,你还记得哪些呢?给你留下了什么回忆?六十年代,我是少年时期,喜欢看孙悟空大闹天宫,西游记虽然系神话或民间故事,还好!对懵懵懂懂的年纪,知道了真善,美。为什么呢?在茫茫天际间有一块巨石,突然电闪雷鸣,石头炸开,裂缝里跳
宝宝一到晚上只要妈妈抱,为什么?您好,很高兴有机会回答您的提问,并且希望我们的回答对您有所帮助。首先,宝宝到晚上就想要找妈妈,其实这种事情非常的平常,而且很多的宝宝都会出现这种情况的,甚至是会黏着妈妈,离开一分钟
孕妇晚上饿了,吃什么好些?孕妇们处在妊娠这个特殊时期,常会感到饥饿,那么如果孕妇睡前感到肚子饿的话,吃些什么东西比较合适呢?1小碗粥粥类质地软烂,容易消化,孕妇在晚上饿的时候喝上一小碗,既可以增加饱腹感,又
晚上九点睡,早上四点多五点左右就醒了,这算有病吗?睡眠是否正常的问题,应该从睡眠质量与睡眠时间上去分析。题主说到的情况,依我看,是属于非常好的一个睡眠状态。头天晚上九点开始睡觉,第二天早上四五点钟醒来,这不太正常了吗!哪里会有什么
你赞同把一岁多的孩子留给爷爷奶奶带,自己出去打工吗?按照常理是不好的。孩子小应该妈妈带,对孩子大人都好。如果为了生计没有别的办法,要只有让爷爷奶奶带了。这是现实情况。小孩应该父母自己带,有利于孩子身心健康,对于父母也是一种责任。能够
宝宝在妈妈肚子里是怎样打嗝的?怀大宝的时候,第一次感觉到胎儿打嗝,那是孕晚期了,当时还以为是胎动频繁呢。把自己吓得不行。宝宝在妈妈肚子里是怎样打嗝的?胎儿打嗝一般情况下会出现在孕晚期,尤其是28周以后。之所以会
怀孕肚子长毛怎么回事?怀孕肚子长毛怎么回事?怀孕肚子长毛与孕妇体内激素水平变化有关,不是疾病,多为正常生理现象。怀孕后,孕妇体内类固醇激素睾酮分泌增加,可导致体毛增多增粗,除腹部毛发生长外,还可有阴毛腋
4岁女宝腺样体肥大,怎么办,怕脸部变形?回答这个问题之前,我们首先了解一下腺样体,腺样体也叫咽扁桃体,位于鼻咽部顶部与咽后壁处,属于淋巴组织,表面呈桔瓣样。出生后随着年龄的增长而逐渐长大,由于小孩免疫系统没有发育完善,局