webrtc音视频学习:一种理解音视频架构的方法文章

最近公司在开发音视频方面的项目,这款产品类似于腾讯会议,供应商与买家之间,通过线上渠道,进行面对面的交流,客服在线上会议过程中,充当主持人的角色,沟通两者的需求和产品知识。

音视频开发最开始对我来说,还挺陌生的,而且通过接触,发现要学习相关的技术,其实对于初学者来说,有一定的难度和门槛。

我最开始是学习java,有了这个基础后,开始做移动开发,主攻android方向,刚好参与到公司音视频产品客户端的开发中。

其实音视频开发这一块,要学懂学通学透,确实有难度。但我们学习任何一门知识,都是如此,从简单到复杂,从整体到局部,正所谓纲张目举,有了一个路线图,了解一门技术的整体架构,无异于对之后的细节学习,有着莫大的帮助。

最近看了不少资料,后续也会写一些关于音视频开发方面的文章,和大家一起分享学习的心得,以求相互促进,期待能够交到良师益友。

言归正传,先来说说音视频系统在抽象角度的一个架构,用一张图来表示,就是这样的:


此图来源于李超的《WebRTC音视频实时互动技术:原理、实战与源码分析》一书,目前国内的互联网上,专业全面介绍WebRTC的书籍,寥寥无几,相信从事音视频开发的工作人员,也是对这方面嗤之以鼻,这本书大家有空可以看看,在微信读书里面就能搜索到。

这个图将音视频的一个整体架构,进行了很大程度的抽象。当然,在实际的过程中,有着非常多的细节,需要学习和处理,可能比你想象的更加繁杂和精妙。

但是我在学习的过程中,为了理解这个架构,想到了一个场景,用来辅助自己理解这个框架。

我们理解一个事物,往往会去对应的现实世界,寻找一个原理或流程相似的场景,来对其进行理解,以加强记忆深度和理解宽度,就像计算机语言一样,都是对现实世界的抽象。

我用来加强理解的方式,是将这个架构,看成现实世界的网购系统。

音视频系统大部分情况下,需要达到的目的,是为了将现实场景还原到另一个地方,以实现面对面交流的效果,这是音视频存在的本质。

而要达到这种面对面的效果,我们就需要采用诸多的技术手段,来确保音视频的采集,传输,编解码等工作,都在性能不错的状态下发挥作用。

这整个过程,非常像是现实世界的网购系统。网购系统,有生产者,传输者,消费者等角色,而这些角色,也正好和音视频会议或其他类型的音视频系统,有着相对应的角色和功能。

下面,我就具体说说两者的相似处,以求在宏观上,能够理解音视频系统的整个过程。

进货:音视频的采集

想必网购剁手这种行为,我们都有过。而网购的起点,是卖家通过工厂或者其他供应商,将商品拿来,然后卖给买家(消费者),这个过程就是商品的采集过程。这就相当于音视频系统中,音视频数据,经过麦克风和摄像头,被采集到设备中,以PCM(音频)、YUV(视频)的格式呈现。

而进货的过程,其实就是将原本已经客观存在的商品,拿过来而已,而音视频系统,在采集音视频之前,客观的场景,其实已经存在了,比如你实时直播的是一场演唱会,一场相声表演等。

你通过摄像头和麦克风,将画面和声音捕捉后,那么你与消费者,或者说是系统另一端的用户,便开始建立了实时而奇妙的连接,你们的故事,从采集开始。

打包:音视频的编码

商家采购了商品后,不大可能直接就将商品给到买家,在物理空间相对遥远的情况下,商家需要将商品打包,然后交给物流公司,运输到消费者,即买家的手中。

如果直接发给消费者,要是贵重的东西,磕磕碰碰难免,消费者拿到手的商品,不是自己想要的商品,或者是已经残缺的次品,那他铁定是要退货的。

于是商家就需要将商品精心牢固的打包起来。

这个时候,卖家将商品打包的过程,相当于音视频的编码过程,而在实际的音视频系统中,编码的过程,恰好就是为了传输的效率和便捷。

如果不进行编码,直接将采集到的数据发送到远端,那对不起,你可能永远也没法看到实时呈现的画面,因为经过编码的音视频数据,能够很大程度上,缩小数据的体积,打个比方,你采集到的数据是每帧1M,你一秒钟最少得二三十帧,才能产生实时的画面效果,这么一算,芭比Q了,一分钟得最少1.5G左右的流量。

你就是中东土豪,手机流量也经不住这么损耗呀!

于是得对视频进行压缩,和其他一些技术处理,再传到远端。正如我们的快递包裹,得经过打包,要是易碎物品,还得垫些防震垫,泡沫等东西,防止传输过程中,出现意外磕碰。

这东西必须在技术上,这么处理,毕竟音视频的传输,是没有买运费险的。

物流:音视频的网络传输

商家将商品打包完毕以后,便将商品交给物流公司,物流公司按照包裹上的目的地,对包裹进行分类,然后一起运输到买家的所在地。

运输的过程,相当于经过编码的音视频数据,经过网络,传输到对端。

物流公司拿到需要传输给消费者的快递时,他们会对打包好的包裹进行分拣。

根据包裹上留下的信息,对包裹进行分类,比如送到湖南的包裹归纳到一起,送到河南的又归到另一堆去。

分拣好后,物流公司根据最佳线路进行运输,以期提高效率,降低成本。

比如一车从浙江送到湖南的货物,这时公司里面有一辆车是到湖北,一辆车是到云南,那么物流公司自然会选择从浙江到湖北的路线,顺便将湖南的货物带过去,这是选择最佳线路的过程。

音视频的传输一样有这样的优化机制,选择最佳线路,传输音视频数据。

拆包:音视频的解码

吭哧吭哧,运输车将包裹运输到目的地以后,勤劳的快递小哥,将包裹原封不动的送到消费者的手中,此时他们拿到的,是经过包装的商品。

消费者拿到自己心仪已久的包裹后,自然得拆开来看看,里面的商品有没有损坏,是不是自己买的东西。

于是需要拆开包裹来看看,这个过程,就相当于音视频的解码过程。解码以后,数据还是原来那份数据。

但有时总有例外,我买的是一个塑料娃娃,你给我发个变形金刚模型,那不是我想要的,音视频传输过程中,也会存在丢包,丢帧等现象。

这些存在瑕疵的数据,和原本的数据,有着出入,于是需要进行重传或通过其他方式对数据进行修正。

这些操作,都是为了确保消费者在解开包裹后,确定看到的,就是自己当初想要的商品或想要看到的实时画面。

消费:音视频的渲染

消费者拿到自己的包裹后,一看,嗯,不错,这就是我要的东西,于是心情愉快的拿着自己的东西开始使用起来。

比如一个美女,买的是一条漂亮的裙子,那么她自然要美美的穿出去炸街,这个过程,就是这个商品的使用过程,也就是音视频数据的渲染过程,将音视频数据,通过扬声器,显示器呈现出来,就是对端的消费过程。

各位,音视频的整体架构,是不是非常像一次美妙的网购经历,如果这么理解,那么整个架构是不是就非常容易被记住了!?

当然,这是在宏观层面的理解,如果是深入到细节部分,那自然有着莫大的区别。

比如鲸鱼和鲫鱼都是鱼类,但他们个体上的差异,却是千差万别的。

希望这个理解方式,能够对您学习音视频系统,有哪怕一点点的小帮助。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,504评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,434评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,089评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,378评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,472评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,506评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,519评论 3 413
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,292评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,738评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,022评论 2 329
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,194评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,873评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,536评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,162评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,413评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,075评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,080评论 2 352

推荐阅读更多精彩内容