曾经在一家做Infotaiment的公司工作,工作和AVB相关,写过Linux的核心模块,也写过爬虫测试程序从几十G的音视频网络数据里找线索,曾作为最早的人听着阿黛尔的歌声从新协议新系统里悠扬而出而感到兴奋喜悦,也有过一个问题大家踢来踢去找不出问题的焦急。后来离开了这家公司,虽然仍然在从事车载以太网的工作,却放下了AVB,闲来无事想再回头看看,捡起这块快忘了的AVB。
AVB是Audio Video Bridging的缩写,直译过来是音视频桥的意思,说到桥Bridging就一般和以太网交换机switch有联系。AVB是一组用于实现同步,低延迟,稳定以太网通信的技术标准的统称。大白话就是通过车载网线连接多个音视频设备,实现高质量的音视频流通信。
说到AVB就意味着以太网Ethernet,AVB也总是构建于以太网之上,AVB位于OSI7层结构的第二层MAC层,也可以把它看成是普通标准Ethernet的增强。AVB实现了在LAN上传输音频,视频流媒体。
相对于通过传统以太网传输音视频流,AVB实现了更低的延迟,以更平滑的方式实现了低抖动(Jitter),也就是在根本上解决音视频的卡顿,播放更加高质平滑。AVB的音视频流是单一方向的,可以把传输AVB流的以太网简单的想成单行线,从一个音视频源,可以同步的传输到1个或者多个音视频播放终端。
音视频源,一般叫做Talker,而播放终端也可以叫Listener。在音频领域,有时候也会遇到叫Source和Sink的,Source也是说源头,Sink则指代Output,播放设备。要我看来,Input = Talker = Source (麦克风,音视频文件播放器), Output = Listener = Sink(音响,耳机)。
IEEE定义了以太网标准,也定义了AVB。AVB宏观上又可以看成是一组IEEE的标准协议:
这包括狭义上的AVB,IEEE802.1BA2011 AVB本尊。包含IEEE1722-2016 AVTP,也定义了音视频数据的映射(data mapping)。IEEE802.1AS-2011 gPTP 定义了设备间的精密时间同步。IEEE802.1Q-2011包含了,以太网Frame,优先级,SRP(带宽预留), FQTSS(排队和队列转发)等等。
我们熟知的IP协议在第三层网络层,TCP协议在第四层传输层,实时聊天软件用的RTP协议在第七层,而我们的AVB在且仅在第二层数据链路层。每一层都被其下部的层所支持,但完成通讯并不需要所有层的参与。所以AVB既不需要IP协议,也不需要TCP协议,所以AVB的传输不需要IP地址,也不需要TCP端口号。
以太网是用来传输数据的,以太网有了AVB的加持就能更好的传输音视频数据,同步性,低延迟性,低卡顿都得到了保证。但是AVB并不负责播放音视频,它仅仅是音视频数据在以太网传输的一个方式方法标准。
关于AVB相关的内容远不止于此,今天简单说了说总览和几个特点,挖个坑,自己继续总结学习回顾,慢慢展开。谢谢关注。
本文首发于零束开发者论坛。
作者:心泉
文章来源:上汽零束SOA开发者论坛
原文链接:https://bbs.z-onesoft.com/omp/community/front/api/page/mainTz?articleId=7684