- 一、音视频传输面临的主要问题
- 二、如何解决这些问题
- 1. 网络传输问题
- 2. 媒体时钟同步问题
- 三、AVB体系
- 1.协议框架
- 2. 网络拓扑
- 3. 典型应用场景
- a. 车载娱乐系统
- b. 大型演唱会现场
- 四、参考资料
本文是AVB系列文章的第一篇,简单介绍车载以太网中的AVB技术。
一、音视频传输面临的主要问题
大家想一下,在观看网络视频的时候,经常遇到的问题是什么?
- 卡顿
- 花屏
- (实时直播)延时大
- 音视频不同步
假设音视频源正常的,造成以上问题的原因是什么呢?
- 卡顿:网络不流畅、数据不能及时到达。
- 花屏:视频数据丢失、错误。然而这只是表面原因,根本原因也是网络不流畅、数据不能及时到达。
- (实时直播)延时大:网络不流畅、数据不能及时到达。
- 音视频不同步:网络网络不流畅、数据不能及时到达会造成这种现象,另外,媒体时钟不同步也会造成这种现象。
这样看来,影响网络音视频观看体验的主要原因基本上就下面两点:
- 网络不流畅,数据丢失或不能及时到达
- 媒体时钟不同步
这也是AVB要解决的主要问题。不同的是,我们观看网络视频一般是经由广域网传输,而AVB解决的是局域网内的音视频传输问题。
二、如何解决这些问题
1. 网络传输问题
我们知道,传统以太网是基于竞争的“尽最大努力传输”的分组报文网络。有人可能会说TCP是可靠的,不错,但它的可靠性是建立在重传机制上的,带来的副作用是延时加大。
另外,中间转发节点(比如网络中的交换机、路由器)对报文的传输影响比较大。比如:
- 传输过程中,如果中间的转发节点缓存队列已满,会导致后续数据包丢失。
- 传输时延受转发节点的缓存状态影响,如果缓存队列中数据较多,传输延时就较大,缓存队列中数据较少,传输延时就较小。
如果可以构建这样一个网络,它可以为音视频数据预留带宽(类似高速公路上的专用应急车道),那么不仅解决了竞争问题,还保证了音视频数据可以在规定的时间内从源头传输到目的地(时间敏感网络的概念)。
没错,带宽预留是AVB的一个重要组成部分。
2. 媒体时钟同步问题
以太网中传输的音视频都是离散的数字信号,而现实世界中的音视频都是连续的模拟信号。在音视频采集设备中,需要对模拟信号进行采样、量化、编码,才能转换为数字信号(简称模数转换,即A/D转换)。A/D转换过程中涉及到采样频率,即间隔多久采样一次。接收端收到数据后,按同样的频率进行播放。这就是媒体时钟同步。
媒体时钟必须有个参考时钟,这样它才能知道从上次采集到现在过了多久,是否该进行下次采样。有的采集系统以系统时钟作为参考时钟,而有的采集系统以外部信号作为参考时钟。不同参考时钟很有可能是不同步的,比如A时钟的1ms可能对应实现世界的0.9ms,B时钟的1ms可能对应现实世界额1.1ms。另外,时钟都不是绝对稳定的,受温度、运行时间等因素影响都会产生漂移(就像手表,有的过段时间变慢了,有的过段时间变快了)。
问题来了,接收端怎么保证自己的播放速率和采集端的采集频率一致(即如何恢复媒体时钟)?如果没有一个统一的参考时钟,这是很难做到的。如果参考时钟不同步,就有可能导致本来该先播放的音频后播放,或者本该先播放的视频后播放,在观众看来就是音视频不同步。
AVB中的精确时钟同步技术,可以让所有节点的时钟保持同步,进而为媒体时钟同步提供了条件。
三、AVB体系
AVB被称为时间敏感网络,主要包含两方面含义:
- 延时小,实时性好
- 延时可控,最坏情况下的延时不超过一定的阈值
1.协议框架
AVB的全称是Audio Video Bridging,由一系列IEEE标准组成,目的是在局域网中高效传输音视频数据。
AVB协议栈如下图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/6cabe3a57d8783b30c77c73d4590d7bd.png)
可以看出,AVB主要是链路层的协议,它和传统的TCP/IP协议栈是并列共存的关系。
AVB协议栈不仅包括了前面提到的带宽预留和时钟同步协议,还包括其他一些辅助协议,主要协议如下:
- IEEE Std 802.1AS-2011:精确时钟同步协议(Generalized Precision Time Protocol,简称gPTP),用来将网络内所有节点的时钟同步同步到同一个主时钟。
- IEEE Std 802.1 Qat:带宽预留协议(Stream Reservation Protocol,简称SRP),目前被整合在IEEE Std 802.1Q-2011 第35章。
- IEEE Std 802.1 Qav:流量整形协议(Forwarding and Queuing for time-sensitive streams,简称FQTSS),负责对流量进行排队、转发管理,目前被整合在IEEE Std 802.1Q-2011 第34章。
- IEEE Std 1722-2016:音视频传输协议(Audio Video Transport Protocol,简称AVTP)。
- IEEE Std 1722.1-2013:音视频管理协议(Audio Video Discovery, Enumeration, Connection management, and Control protocol,简称AVDECC),负责服务发现,节点能力遍历,链接管理等控制功能。
- IEEE Std 1733-2011:基于AVB的RTP/RTCP传输协议(Transport Protocol for Time-Sensitive Applications in Local Area Networks),它主要用于协调网络中的多个设备,比如以下场景:网络中有多个Talker且位于不同设备,接收端需要同步播放这些Talker的音视频数据。
2. 网络拓扑
AVB的网络拓扑如下所示:
![](https://i-blog.csdnimg.cn/blog_migrate/1e09093030a3eb3ff91ac1df7f0ed7d9.jpeg)
它主要由两类节点组成:
- End Station: 有时候也称为endpoint,它又分为Listener和Talker两种:
- Listener:接收音视频数据的节点
- Talker:输出音视频数据的节点
- AV Bridge: 音视频网关
说明:
- 一个节点可以包含多个Talker,即产生多条音视频数据流
- 一个节点可以具有Talker和Listener的双重身份,既对外输出,又接收别人的数据
3. 典型应用场景
目前AVB主要应用在对时间敏感的场景中,比如工业控制,车载娱乐系统。下面简单举两个例子。
a. 车载娱乐系统
![](https://i-blog.csdnimg.cn/blog_migrate/2922e6a1da235e05e52af37ffc43eeae.png)
如上图所示,车内的DVD Player播放音视频文件,音频传输到扬声器,视频分别传输到后排座椅的两个显示器上。如何保证扬声器和两个显示器的同步,实现音视频同步?
- 首先,gPTP协议保证了网络中所有节点的时钟是同步的。
- 其次,SRP协议为音视频数据预留了带宽,保证都能在一定的时间内到达目的地。
- 那么,如果在Talker端(DVR Player)就约定好,不同目的地的音视频数据在未来的同一时刻播放,是不是就实现了音视频同步?这就是AVTP协议中展示时间戳的意义所在。
b. 大型演唱会现场
大型演唱会现场都会布置多个扬声器来传输声音,可以简化成下面的模型。 那么如何控制这些扬声器同时“发声”? 道理一样,大家约定好在未来的同一时刻同时播放,先收到数据的节点把数据缓存起来,等待播放时刻的到来,然后产生“共鸣”。
![](https://i-blog.csdnimg.cn/blog_migrate/3467dc515f11d20f915147868a91ba41.png)