一、音视频传输面临的主要问题
网络音视频数据传输过程中卡顿、花屏、音视频不同步了,主要原因如下:
1、网络不流畅,数据丢失或不能及时到达
2、多媒体同步问题
这些都是AVB面对的问题,区别是我们看的网络视频经广域网传输,而AVB解决的是局域网内的音视频传输问题。
二、如何解决呢
1. 网络传输问题
以太网是基于竞争的“争取最大努力传输”的分组报文网络,没错TCP是可靠的,但他的可靠建立在重传机制基础上,副作用是延时较大。
另外,中间转发节点(比如网络中的交换机、路由器)对报文的传输影响比较大。比如:传输过程中,如果中间的转发节点缓存队列已满,会导致后续数据包丢失。传输时延受转发节点的缓存状态影响,如果缓存队列中数据较多,传输延时就较大,缓存队列中数据较少,传输延时就较小。
如果可以构建这样一个网络,可以为音视频数据预留带宽(类似高速公路上的应急车道),保证音视频数据在规定的时间从源头到达目的地(时间敏感网络的概念),注意,带宽预留是AVB的一个重要组成部分。
2. 多媒体同步问题
多媒体同步包含两个方面的内容:
- 媒体时钟恢复(频率同步),它解决的是按什么样的速度播放的问题
- 播放时间同步(相位同步),它解决的是什么时候播放的问题
1、媒体时钟恢复
现实世界中音视频都是连续的模拟量,而以太网中传输的都是数字量,音视频采集过程中需要采样、量化、编码过程,其中涉及采样频率,而播放的过程中需要相同的频率进行播放,此为媒体时钟恢复。
采样需要确定采样间隔,需要用参考时钟,有的采样系统用系统时钟为参考时钟,有的以外部时钟做参考时钟,可想而知,不采样系统同的参考时钟如果不同呢,必定或多或少不同步(比如A时钟的1ms可能对应实现世界的0.9ms,B时钟的1ms可能对应现实世界额1.1ms)。而且还可能受温度、运行时间等因素影响产生漂移。
问题来了:如何保证采集端的采集速率与播放端的播放速率一致(即如何恢复媒体时钟)?
2、播放时间同步
对于单一的音视频流,解决了媒体时钟恢复的问题,一般就能正常播放了。但是如果一个接收者 同时接收多条音视频流 ,或者一个发送者将音视频发送到 多个接收者同步播放 ,我们还要解决数据流之间的同步问题,保证同一时刻采样的数据在同一时刻播放,这就是播放时间同步。
同样如果参考时钟不同步,就会导致本来先播放的后播放,观众看来就是音视频不同步。
AVB中的精确时钟同步技术,可以让所有节点的本地时钟保持同步,为媒体时钟同步、播放时间同步提供了条件。
三、 AVB体系
AVB被称为时间敏感网络,它主要解决两个问题:
- 延时问题:
通过带宽预留,保证延时小,实时性好(延时可控,最坏情况下的延时不超过一定的阈值) - 同步问题:
媒体时钟同步:不同的媒体类型有自己的媒体时钟,这些媒体时钟都映射到gPTP时间(同一个时间坐标系),接收端可以轻松进行媒体时钟恢复。
播放时间同步:数据发送时指示接收方在未来的某个时间点播放,如果有多个接收者,它们就会在未来的同一时刻同时播放。
3.1 协议框架
全程Audio Video Bridging, 目的是在局域网中高效传输音视频数据。
AVB协议栈如下图所示:
可以看出,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传输协议(Layer 3 Transport Protocol for Time Sensitive Applications in Local Area Networks),它主要是将传统的RTP/RTCP流映射到二层的AVB流,使用二层AVB的性能,从而降低延时、提高同步精度。
3.2 网络拓扑
它主要由两类节点组成:
- End Station: 有时候也称为endpoint,它又分为Listener和Talker两种:
Listener:接收音视频数据的节点
Talker:输出音视频数据的节点 - AV Bridge: 音视频网关
说明:
一个节点可以包含多个Talker,即产生多条音视频数据流
一个节点可以具有Talker和Listener的双重身份,既对外输出,又接收别人的数据
3.3 典型应用场景
a. 车载娱乐系统
车内的DVD Player播放音视频文件,音频传输到扬声器,视频分别传输到后排座椅的两个显示器上。如何保证扬声器和两个显示器的同步,实现音视频同步?
首先,gPTP协议保证了网络中所有节点的时钟是同步的。
其次,SRP协议为音视频数据预留了带宽,保证都能在一定的时间内到达目的地。
那么,如果在Talker端(DVR Player)就约定好,不同目的地的音视频数据在未来的同一时刻播放,是不是就实现了音视频同步?这就是AVTP协议中展示时间戳的意义所在。
b. 大型演唱会现场
大型演唱会现场都会布置多个扬声器来传输声音,那么如何控制这些扬声器同时“发声”?道理一样,大家约定好在未来的同一时刻同时播放,先收到数据的节点把数据缓存起来,等待播放时刻的到来,然后产生“共鸣”。
参考文档:https://blog.coderhuo.tech/2020/03/22/AVB_summury/#3-%E5%85%B8%E5%9E%8B%E5%BA%94%E7%94%A8%E5%9C%BA%E6%99%AF
下一篇:gPTP简介