CN106550248B - 一种音视频同步的方法和设备 - Google Patents
一种音视频同步的方法和设备 Download PDFInfo
- Publication number
- CN106550248B CN106550248B CN201510601566.4A CN201510601566A CN106550248B CN 106550248 B CN106550248 B CN 106550248B CN 201510601566 A CN201510601566 A CN 201510601566A CN 106550248 B CN106550248 B CN 106550248B
- Authority
- CN
- China
- Prior art keywords
- audio
- bandwidth
- time
- sending end
- time difference
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/242—Synchronization processes, e.g. processing of PCR [Program Clock References]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
- H04N21/2385—Channel allocation; Bandwidth allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/4302—Content synchronisation processes, e.g. decoder synchronisation
- H04N21/4305—Synchronising client clock from received content stream, e.g. locking decoder clock with encoder clock, extraction of the PCR packets
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明公开了一种音视频同步的方法,应用于包括至少一个发送端的音视频传输***,该方法包括:管理设备对音视频传输***中的各设备进行同步;所述管理设备获取时间差,并依据所述时间差调整所述发送端与对应接收端之间信道的带宽;其中,所述时间差为:根据所述发送端发出音视频数据包的时刻与所述接收端接收所述音视频数据包的时刻计算得到的差值;所述管理设备将调整后的带宽通知给所述发送端。本发明还同时公开了实现所述方法的设备。
Description
技术领域
本发明涉及通信领域中的音视频同步技术,尤其涉及一种音视频同步的方法和设备。
背景技术
目前,多发送端与多接收端的音视频同步技术面临的问题主要有两个:
1)现有的音视频同步方法适用于只有一个接收端或一个发送端的场景,对于多发送端和多接收端的音视频传输情况,达不到音视频同步的目的;
2)现有实现多发送端或多接收端的音视频同步技术往往需要借助中间服务器来完成,需要通过服务器进行统一的调度来完成音视频的同步,这样会使网络的拓扑结构变得十分复杂,从而增加网络的负担和音视频传输的时延,实时性受到挑战,降低了用户体验。
发明内容
为解决现有存在的技术问题,本发明实施例提供一种音视频同步的方法和设备。
本发明实施例提供了一种音视频同步的方法,应用于包括至少一个发送端的音视频传输***,该方法包括:
管理设备对音视频传输***中的各设备进行同步;
所述管理设备获取时间差,并依据所述时间差调整所述发送端与对应接收端之间信道的带宽;其中,
所述时间差为:根据所述发送端发出音视频数据包的时刻与所述接收端接收所述音视频数据包的时刻计算得到的差值;
所述管理设备将调整后的带宽通知给所述发送端。
本发明实施例还提供了一种音视频同步的方法,应用于包括至少一个发送端的音视频传输***,该方法包括:
发送端基于管理设备的同步操作与音视频传输***中的各设备达到同步;
所述发送端接收所述管理设备基于时间差调整后的、所述发送端与对应接收端之间信道的带宽;
所述时间差为:根据所述发送端发出音视频数据包的时刻与对应接收端接收所述音视频数据包的时刻计算得到的差值。
本发明实施例还提供了一种音视频同步的方法,应用于包括至少一个发送端的音视频传输***,该方法包括:
接收端基于管理设备的同步操作与音视频传输***中的各设备达到同步;
接收端反馈收到音视频数据包的时刻,用于时间差的计算;
所述时间差为:根据发送端发出音视频数据包的时刻与对应所述接收端收到音视频数据包的时刻计算得到的差值,用于所述管理设备调整所述发送端与对应接收端之间信道的带宽。
本发明实施例还提供了一种音视频同步设备,应用于包括至少一个发送端的音视频传输***,该设备包括:
第一同步模块,用于对音视频传输***中的各设备进行同步;
第一收发模块,用于获取时间差;将所述第一调整模块调整后的带宽通知给所述发送端;
第一调整模块,用于依据所述第一收发模块获取的时间差调整所述发送端与对应接收端之间信道的带宽;其中,
所述时间差为:根据所述发送端发出音视频数据包的时刻与所述接收端接收所述音视频数据包的时刻计算得到的差值。
本发明实施例还提供了一种音视频同步设备,应用于包括至少一个发送端的音视频传输***,该设备包括:
第二同步模块,用于基于管理设备的同步操作与音视频传输***中的各设备达到同步;
第二收发模块,用于接收所述管理设备基于时间差调整后的、所述发送端与对应接收端之间信道的带宽;
所述时间差为:根据所述发送端发出音视频数据包的时刻与对应接收端接收所述音视频数据包的时刻计算得到差值。
本发明实施例还提供了一种音视频同步设备,应用于包括至少一个发送端的音视频传输***,该设备包括:
第三同步模块,基于管理设备的同步操作与音视频传输***中的各设备达到同步;
第三收发模块,用于反馈收到音视频数据包的时刻,用于时间差的计算;
所述时间差为:根据发送端发出音视频数据包的时刻与对应所述接收端收到音视频数据包的时刻计算得到的差值,用于所述管理设备调整所述发送端与对应接收端之间信道的带宽。
本发明实施例提供的音视频同步的方法和设备,应用于包括至少一个发送端的音视频传输***,管理设备对音视频传输***中的各设备进行同步;所述管理设备获取时间差,并依据所述时间差调整所述发送端与对应接收端之间信道的带宽;其中,所述时间差为:根据所述发送端发出音视频数据包的时刻与所述接收端接收所述音视频数据包的时刻计算得到的差值;所述管理设备将调整后的带宽通知给所述发送端。可见,本发明实施例通过自适应算法,自动调节发送端的发送时间和码流及带宽,使得在一对多以及多对多的网络结构中,整个网络中的每个接收端可以实现音视频同步,同时发送端和接收端的总体延时分布达到最优。与现有技术相比,本发明不需中间服务器的参与,网络结构相对简单,实时性较高,提高了用户体验。
附图说明
在附图(其不一定是按比例绘制的)中,相似的附图标记可在不同的视图中描述相似的部件。具有不同字母后缀的相似附图标记可表示相似部件的不同示例。附图以示例而非限制的方式大体示出了本文中所讨论的各个实施例。
图1为本发明实施例所述音视频同步的方法实现流程图一;
图2为本发明实施例所述音视频同步的方法实现流程图二;
图3为本发明实施例所述音视频同步的方法实现流程图三;
图4为本发明实施例所述音视频同步的设备实现流程图一;
图5为本发明实施例所述音视频同步的设备实现流程图二;
图6为本发明实施例所述音视频同步的设备实现流程图三;
图7为本发明应用场景中所述设备连接方式示意图;
图8为本发明应用场景中所述设备发现及连接建立过程示意图;
图9为本发明应用场景中所述授时拓扑图;
图10为本发明应用场景中所述授时流程图;
图11为本发明应用场景中所述一个发送端对应多个接收端的网络拓扑图;
图12为本发明应用场景中所述发送端与接收端间的基础延迟更新流程图;
图13为本发明应用场景中所述时延和带宽函数关系示意图;
图14为本发明应用场景中所述带宽迭代过程示意图;
图15为本发明应用场景中所述Group Owner(管理设备)和Source(发送端)的同步交互流程。
具体实施方式
本发明的实施例应用于包括至少一个发送端的音视频传输***,管理设备对音视频传输***中的各设备进行同步;所述管理设备获取时间差,并依据所述时间差调整所述发送端与对应接收端之间信道的带宽;其中,所述时间差为:根据所述发送端发出音视频数据包的时刻与所述接收端接收所述音视频数据包的时刻计算得到的差值;所述管理设备将调整后的带宽通知给所述发送端。
图1为本发明实施例所述音视频同步的方法实现流程图,如图1所示,该方法应用于包括至少一个发送端的音视频传输***,包括:
步骤101:管理设备对音视频传输***中的各设备进行同步;
步骤102:所述管理设备获取时间差,并依据所述时间差调整所述发送端与对应接收端之间信道的带宽;其中,所述时间差为:根据所述发送端发出音视频数据包的时刻与所述接收端接收所述音视频数据包的时刻计算得到的差值;
步骤103:所述管理设备将调整后的带宽通知给所述发送端。
本发明实施例中,所述管理设备可为所述音视频传输***中的任一发送端或任一接收端。
其中,所述时间差可由所述发送端基于自身发出音视频数据包的时刻与所述接收端反馈的接收所述音视频数据包的时刻进行计算;或者,
由所述管理设备基于所述发送端上报的发出音视频数据包的时刻与所述接收端反馈的接收所述音视频数据包的时刻进行计算;或者,
由网络中设置的其他设备基于所述发送端上报的发出音视频数据包的时刻与所述接收端反馈的接收所述音视频数据包的时刻进行计算。
本发明实施例中,所述管理设备对音视频传输***中的各设备进行同步,包括:
所述管理设备向音视频传输***中除自身以外的其他设备发送第一消息,所述第一消息中携带所述管理设备自身的基准时间;
所述管理设备接收所述其他设备反馈的第二消息,所述第二消息中携带所述其他设备反馈第二消息的时刻;
所述管理设备计算所述其他设备反馈第二消息的时刻与所述基准时间的差值,如果所述差值小于预设阈值时,则确定同步操作成功。
本发明实施例中,所述音视频传输***包括一个发送端时,所述依据所述时间差调整所述发送端与对应接收端之间信道的带宽,包括:
将所述音视频传输***总带宽平均分配给所述发送端与对应接收端之间的每个信道;
将所述发送端与每个接收端之间的时间差组成一个矢量T,并计算所述T的期望E(T);
将所述发送端与每个接收端之间的时间差分别与所述E(T)进行比较,如果时间差大于所述E(T),则将所述时间差对应的信道带宽增加一个单位预设步长;否则,减少一个单位预设步长;
所述管理设备获取带宽调整后所述发送端与每个接收端之间的时间差,并形成新的矢量T1;
判断所述T1的均方差是否达到最小值或小于预设的阈值,如果不是,则依据E(T1)与时间差的大小关系继续调整步长,即:继续将所述发送端与每个接收端之间的时间差分别与所述E(T1)进行比较,如果时间差大于所述E(T1),则将所述时间差对应的信道带宽增加一个单位预设步长;否则,减少一个单位预设步长;否则,结束带宽调整操作。
本发明实施例中,所述音视频传输***包括至少两个发送端时,所述依据所述时间差调整所述发送端与对应接收端之间信道的带宽,包括:
确定每个信道的初始带宽;所述初始带宽可由物理层随机分配;
将所述发送端与每个接收端之间的时间差组成一个矢量T’,并计算所述矢量T’的均方差;判断所述T’的均方差是否达到最小值或小于预设的阈值,如果是,则结束带宽调整操作;
如果不是,则计算T’的期望E(T’)以及每个T’(i)的期望E(T’(i)),i=1…,M;所述T’(i)为每个发送端与对应接收端之间的时间差组成的矢量,所述音视频传输***中包括M个发送端;
比较E(T’(i))与E(T’)的大小关系,如果E(T’(i))大于E(T’),则将与所述E(T’)相关的一个发送端所对应的各信道的带宽总量增加一个单位预设步长;否则,减少一个单位预设步长;
所述管理设备获取带宽调整后每个所述发送端与对应接收端之间的时间差,并形成新的矢量T’1;
继续计算所述T’1的均方差,直至所述T’1的均方差达到最小值或小于预设的阈值。
一个实施例中,所述带宽调整之前,该方法还包括:
所述管理设备向发送端发送第三消息;
所述第三消息,用于通知所述发送端已被分配的初始带宽相关信息;所述初始带宽相关信息包括:与该发送端所对应的各信道的带宽总量的信息。
本发明实施例中,所述管理设备将调整后的带宽通知给所述发送端,包括:
所述管理设备向所述发送端发送第四消息;所述第四消息携带调整后的带宽。
本发明实施例中,所述管理设备获取时间差,包括:
所述管理设备向所述发送端发送第五消息;
所述第五消息携带所述管理设备请求所述发送端能力的信息。
本发明实施例还提供了一种音视频同步的方法,如图2所示,该方法应用于包括至少一个发送端的音视频传输***,包括:
步骤201:发送端基于管理设备的同步操作与音视频传输***中的各设备达到同步;
步骤202:所述发送端接收所述管理设备基于时间差调整后的、所述发送端与对应接收端之间信道的带宽;
所述时间差为:根据所述发送端发出音视频数据包的时刻与对应接收端接收所述音视频数据包的时刻计算得到的差值。
一个实施例中,该方法还包括:
所述发送端依据所述时间差调整向对应的各接收端发送音视频数据包的时刻,使所述各接收端收到所述音视频数据包的时刻之间的差值最小。
一个实施例中,该方法还包括:
所述发送端周期性地向对应的各接收端发送第六消息;
所述第六消息,用于检测所述发送端与对应接收端之间的链路是否正常。
其中,所述第六消息中包括:所述管理设备的基准时间(可为所述管理设备当前的时间)、所述发送端发出所述第一消息的时刻t1、所述接收端收到所述第一消息的时刻t2,以及t1与t2差值超过预设阈值的次数。
本发明实施例还提供了一种音视频同步的方法,如图3所示,该方法应用于包括至少一个发送端的音视频传输***,包括:
步骤301:接收端基于管理设备的同步操作与音视频传输***中的各设备达到同步;
步骤302:接收端反馈收到音视频数据包的时刻,用于时间差的计算;
所述时间差为:根据发送端发出音视频数据包的时刻与对应所述接收端收到音视频数据包的时刻计算得到的差值,用于所述管理设备调整所述发送端与对应接收端之间信道的带宽。
一个实施例中,该方法还包括:
所述接收端接收所述发送端周期性发送的第六消息;
所述第六消息,用于检测所述发送端与对应接收端之间的链路是否正常。
可见,本发明实施例通过自适应算法,自动调节发送端的发送时间和码流及带宽,使得在一对多以及多对多的网络结构中,整个网络中的每个接收端可以实现音视频同步,同时发送端和接收端的总体延时分布达到最优。与现有技术相比,本发明不需中间服务器的参与,网络结构相对简单,实时性较高,提高了用户体验。
基于上述方法,如图4所示,本发明实施例还提供了一种音视频同步设备40,该设备应用于包括至少一个发送端的音视频传输***,包括:
第一同步模块401,用于对音视频传输***中的各设备进行同步;
第一收发模块402,用于获取时间差;将所述第一调整模块调整后的带宽通知给所述发送端;
第一调整模块403,用于依据所述第一收发模块获取的时间差调整所述发送端与对应接收端之间信道的带宽;其中,
所述时间差为:根据所述发送端发出音视频数据包的时刻与所述接收端接收所述音视频数据包的时刻计算得到的差值。
本发明实施例中,所述第一同步模块401对音视频传输***中的各设备进行同步,包括:
向音视频传输***中除自身以外的其他设备发送第一消息,所述第一消息中携带所述管理设备自身的基准时间;
接收所述其他设备反馈的第二消息,所述第二消息中携带所述其他设备反馈第二消息的时刻;
计算所述其他设备反馈第二消息的时刻与所述基准时间的差值,如果所述差值小于预设阈值时,则确定同步操作成功。
本发明实施例中,所述音视频传输***包括一个发送端时,所述第一调整模块403依据所述时间差调整所述发送端与对应接收端之间信道的带宽,包括:
将所述音视频传输***总带宽平均分配给所述发送端与对应接收端之间的每个信道;
将所述发送端与每个接收端之间的时间差组成一个矢量T,并计算所述T的期望E(T);
将所述发送端与每个接收端之间的时间差分别与所述E(T)进行比较,如果时间差大于所述E(T),则将所述时间差对应的信道带宽增加一个单位预设步长;否则,减少一个单位预设步长;
获取带宽调整后所述发送端与每个接收端之间的时间差,并形成新的矢量T1;
判断所述T1的均方差是否达到最小值或小于预设的阈值,如果不是,则依据E(T1)与时间差的大小关系继续调整步长;否则,结束带宽调整操作。
本发明实施例中,所述音视频传输***包括至少两个发送端时,所述第一调整模块403依据所述时间差调整所述发送端与对应接收端之间信道的带宽,包括:
确定每个信道的初始带宽;
将所述发送端与每个接收端之间的时间差组成一个矢量T’,并计算所述矢量T’的均方差;判断所述T’的均方差是否达到最小值或小于预设的阈值,如果是,则结束带宽调整操作;
如果不是,则计算T’的期望E(T’)以及每个T’(i)的期望E(T’(i)),i=1…,M;所述T’(i)为每个发送端与对应接收端之间的时间差组成的矢量,所述音视频传输***中包括M个发送端;
比较E(T’(i))与E(T’)的大小关系,如果E(T’(i))大于E(T’),则将与所述E(T’)相关的一个发送端所对应的各信道的带宽总量增加一个单位预设步长;否则,减少一个单位预设步长;
获取带宽调整后每个所述发送端与对应接收端之间的时间差,并形成新的矢量T’1;
继续计算所述T’1的均方差,直至所述T’1的均方差达到最小值或小于预设的阈值。
本发明实施例中,所述第一收发模块402将调整后的带宽通知给所述发送端,包括:
所述管理设备向所述发送端发送第四消息;所述第四消息携带调整后的带宽。
本发明实施例中,所述第一收发模块402获取时间差,包括:
向所述发送端发送第五消息;
所述第五消息携带所述管理设备请求所述发送端能力的信息。
本发明实施例中,所述第一调整模块403调整带宽之前,所述第一收发模块402,还用于所述向发送端发送第三消息;
所述第三消息,用于通知所述发送端已被分配的初始带宽相关信息;所述初始带宽相关信息包括:与该发送端所对应的各信道的带宽总量的信息。
如图5所示,本发明实施例还提供了一种音视频同步设备50,该设备应用于包括至少一个发送端的音视频传输***,包括:
第二同步模块501,用于基于管理设备的同步操作与音视频传输***中的各设备达到同步;
第二收发模块502,用于接收所述管理设备基于时间差调整后的、所述发送端与对应接收端之间信道的带宽;
所述时间差为:根据所述发送端发出音视频数据包的时刻与对应接收端接收所述音视频数据包的时刻计算得到差值。
本发明实施例中,该设备还包括:
第二调整模块503,用于依据所述时间差调整向对应的各接收端发送音视频数据包的时刻,使所述各接收端收到所述音视频数据包的时刻之间的差值最小。
本发明实施例中,所述第二收发模块502,还用于周期性地向对应的各接收端发送第六消息;
所述第六消息,用于检测所述发送端与对应接收端之间的链路是否正常。
其中,所述第六消息中包括:所述管理设备的基准时间、所述发送端发出所述第一消息的时刻t1、所述接收端收到所述第一消息的时刻t2,以及t1与t2差值超过预设阈值的次数。
如图6所示,本发明实施例还提供了一种音视频同步设备60,该设备应用于包括至少一个发送端的音视频传输***,包括:
第三同步模块601,基于管理设备的同步操作与音视频传输***中的各设备达到同步;
第三收发模块602,用于反馈收到音视频数据包的时刻,用于时间差的计算;
所述时间差为:根据发送端发出音视频数据包的时刻与对应所述接收端收到音视频数据包的时刻计算得到的差值,用于所述管理设备调整所述发送端与对应接收端之间信道的带宽。
本发明实施例中,所述第三收发模块602,还用于接收所述发送端周期性发送的第六消息;
所述第六消息,用于检测所述发送端与对应接收端之间的链路是否正常。
下面结合具体应用场景对本发明作进一步详细说明。
场景一
该场景为同步音视频传输***中各设备的时间。
由于时钟是衡量网络延迟的重要指标,因此首先需要将网络中各设备的时钟进行校准,即授时操作。这里,授时操作涉及设备发现以及建立连接,所述设备的连接发现可以参考Wifi-p2p协议以及TDLS协议,连接方式可如图7所示。所述发现及连接建立过程如图8所示。
由Group Owner(即管理设备)进行授时,使得整个***中的设备都与Group Owner同步。对于Group已建立后,再发现的设备在接入网络时,Group Owner便会同步当前时钟,从而保证后进入的设备也保持时钟一致。
这里,所述授时流程可以在连接发现协议中完成,及对图8中的步骤进行扩展。扩展的内容如下:
在M4消息中添加wfd-TimeUS-setting和wfd-NowTime-setting参数,例如:在发送M4请求(request)消息时,可以使用wfd-TimeUS-setting来告知接收端Group Owner的基准时间;接收端在发送M4响应(response)消息时,携带wfd-NowTime-setting参数用于指示接收设备返回时间:
wfd-StandardTime-setting | Group Owner基准时间 |
wfd-NowTime-setting | 接收设备返回时间 |
表1
如果满足条件,Group Owner不再发出此信息,否则继续授时,直到满足条件再继续下面的步骤。这里,授时拓扑图和授时流程图可分别参考图9和图10。
场景二
本应用场景为通过心跳检测网络抖动。
在授时完毕后,多对多模型可以拆解为若干Source-Sink对,对于每个Source-Sink对,在他们的协议心跳包中,加入时间戳,Source可以通过获取各个Sink的心跳包来监控网络抖动,如果心跳包的时间戳和Source接收到的时间存在明显误差,例如大于某个阈值,如果此现象在1-2个心跳包后消失,则不需要考虑其影响,如果持续存在,则此时间差记作该member的误差时间Δt
因为M16被用于周期性的检查链接是否正常工作,因此可以在M16消息中,即心跳包中增加以下信息:
wfd-TimeUs-StandardTime | Group Owner基准时间 |
wfd-TimeUs-NowTime | 接收设备返回时间 |
SeqID | 连续出现大于阈值的次数 |
表2
场景三
本应用场景为一个发送端多个接收端的自适应的音视频同步。
如图11所示,在只有一个Source的场景下,可能存在一个或多个Sink,因为一个Sink可以理解为多个Sink的特例,所以首先要解决一个Source对多个Sink的音视频同步问题。
目前,大多数的音视频同步方案均采用根据时间戳的误差来调整发送端或接收端的处理时间,已达到同步的目的,这样可能会导致实时性受到损害。例如:在同屏过程中,因为source是在进行实时播放,如果多接收设备中有一个存在较大的误差,则可能会导致其他没有时间误差的接收端不得不放慢播放速度以达到同步效果,这样会使整个***的时延加大。本方案可以让***自适应的调整时延,以达到整体最优。
本场景主要利用时间差的反馈机制来综合调节影响延迟的三大因素:音视频源自身时延、带宽造成的时延、码率不匹配造成的时延,使各个设备之间达到动态均衡,从而使多对多网络中延迟控制到最优。
首先,解决因为由授时及心跳检测到的网络抖动引起的第i个Sink的误差时间Δt(i);
随后,R2Source在向Sink发送数据包之前先根据Δt(1)---Δt(N)的大小取折中(这里折中并不是一定的,初始时延给一个随机值就可以,后续可以迭代收敛,只是折中的话收敛速度较快)进行统一的时延,使各个sink在理想状态下的时延尽可能相对较小,实时性也相对较好。
具体的,Source可将发送时间的时间戳打包到A/V数据包中,Sink将接收时间的时间戳打包到A/V数据包中,对应的数据包格式可表示如下:
表3
Sink接收到后,向Source反馈数据包到达时间和发送时间的误差时间Δt(i),这个Δt(i)=网络抖动时延+Sink硬件区别造成的处理时延(不同的硬件处理能力会造成不同的时延)+其他引起的时延,Source将根据新的各个Sink的误差时间Δt(i),i=0…N,来调整发送给各个Sink的数据,这样可以通过几次迭代之后,达到一个网络范围内稳定同步状态。流程如图12所示。
但是该状态是否是最优状态,需要分析延迟产生的原因:
一、网络自身条件,包括抖动、设备等因素引起的确定性延迟Δt;以及,
二、带宽分配和带宽利用率的不同引起的不确定性延迟Δt’。
以上只解决了问题一,而且此时的Δt等于整个网络中source和sink之间的最大延时,实时性比较差,如果想提升实时性就需要对于问题二进行解答。
问题二的起因是因为在网络中设备连接之间的带宽是由物理层分配的,带宽分配有一些规则,这些协议规则导致了带宽分配的不均匀,另外由于网络设备软硬件的生产水平不一致,导致带宽利用率也不一样,这样就导致了问题二带来的延迟。
如果要解决问题二,那么Δt’应该在理想状态下对于各个sink相等,及Δt’的均方差最小。那么可以利用Group Owner获取的各个Sink收到误差时间Δt(i)(上文所述)为参数,动态调整信道分配及流媒体的比特率,使得每个R2Source-Sink的Session上的比特率的函数B(i)与C带到最佳的匹配,从而使得Δt’的均方差达到最小,这样才有可能得到延迟最小的同步,提升实时性,如图13所示。
调整信道带宽和比特率归根结底是调节带宽,因为比特率的最优状况一定是将所分配的带宽使用尽。可以建立一个网络发送的内存,使得这个内存的大小正好可以用尽所有的带宽,每次发送数据时都会把这个内存中的数据按照信道同时发出。这样,只需要将这个内存中的空间分配给各个通道即可。
首先,将这些带宽平均分配给N个Sink,每个Sink获得的带宽记作C(i),接下来需要根据时延Δt,使得带宽自动迭代至最佳分配状态:
可以将Δt(i),i=1,…N记作一个矢量T:
T=[Δt(1),Δt(2),…Δt(N)],
如果Δt的均方差最小,及达到一个稳定状态。
具体的,首先计算T的期望E(T),大于E(T)的延时Δt,认为其带宽不足,而小于E(T)的Δt,认为其带宽有富余;对于带宽不足的信道,将其带宽增加一个单位步长x,对于带宽有富余的信道对其信道减少一个单位步长x,这样的带宽调后,动态调整码率使得码率在此带宽下达到最优,便会产生一个新的矢量T’,如果T’的均方差大于T的均方差则继续迭代,直至获得的T的均方差达到最小值或小于预设的阈值,即可认为得到了一组理想的带宽分配,此时延迟最小。所述迭代过程如图14所示。
对于某些特殊情况,如某些信道限制固定码率,或者某些信道只传输单独的音频数据等,都可以再加上一些外部限定条件后,依然采用以上步骤获得最佳带宽分布。经过对于网络环境产生的延时和带宽分配产生的延时的处理,就可以得到在此网络环境下实时性最好的一种传输方式。
场景四
本应用场景为多个Source下的自适应的音视频同步方法。
对于多个Source下的场景,可以认为是多个场景三中网络模型的叠加:
因此,可以把整个网络中间任意一个网元作为Group Owner,其负责向每个Source同步带宽调整的指令。
可在M4消息中添加下述定义的参数,Group Owner通过利用M4消息广播将此信息发送给R2Source,用于设置R2Source相应的参数,消息包定义如下:
表4
其中,Basic DeltaTime是网络抖动造成的基础延时。
对于多对多的场景,其寻找最佳延迟同步时间的过程也是分为两大部分:
一、网络自身条件,包括抖动、设备等因素引起的确定性延迟Δt;
二、带宽分配和带宽利用率的不同引起的不确定性延迟Δt’。
首先来看问题一、
在多对多的场景下,每个一对多的组成部分,都有一个最大的延时Δt,通过GroupOwner,将最大的Δt通知所有的Source,然后Source可以按照场景三中的方法,调整自己对应的各个信道的发送延时,以达到一个初步的同步。
由场景三的分析可知,此时的同步不是最优的同步,因为实时性很差,所以还要解决问题二,及带宽分配的问题,这时还按照场景三的思路,将整个网络的带宽假设为C。
在场景三一对多的场景下,为了可以控制带宽,每个一对多的source都有一个和最大带宽对应的内存块,每次都会发送出此内存中的数据,而在多对多的场景下,由于其组成部分的每个一对多模型都有不同的最大带宽记作c(i),而c(i)又受制于C,满足
C=c(1)+c(2)+…+c(N),
其中,每个c(i)会随着自己的信道分配到的带宽以及带宽利用率而变化,从而又导致了延迟的变化,因此在多对多的场景下获得最优化的延迟,就需要分成两步进行迭代:首先,要确定每个source分配的总的带宽(如表4所示),即source的发送内存需要多大;然后,再在每个一对多模型中按照第三部分进行迭代,然后获取新的延迟矢量T,重复迭代,直到获得最小均方差。具体步骤:
第一步:假设有M个Source,N个Sink,初始的带宽可以由物理层随机分配,根据场景三中的过程,一对多的局部达到最佳的平衡T(i),所以多对多的网络中,初始状态为:
第二步:计算T的均方差,如果T的均方差没有达到最小值或大于预设阈值,则进行步骤三,否则终止迭代过程,说明达到最优;
第三步:计算T的期望E(T)和每个T(i)的期望E(T(i)),i=1…,M;
第四步:如果E(T(i))>E(T),则说明这个一对多模型的整体延时差于平均水平,则对于这个一对多模型给予更大的带宽,及允许其source的发送内存增加一个单位步长x;如果E(T(i))<E(T),则说明这个一对多模型的整体延时优于平均水平,则对这个一对多模型给予更小的带宽,及允许其source的发送内存减去一个单位步长x;
第五步:每个一对多的模型根据自己新分配的带宽按照场景三的步骤获取新的局部最佳时延T’(i),这就有了新的初始值;
第六步:重复第一步到第五步,直到T满足第二步。
需要说明的是,因为有时候收敛速度太慢,可以设定一个迭代的次数,例如100次,这样可以避免最后在一个很小的区间中的不必要的计算。
这里,可以通过将下面定义的参数添加到M3request消息中实现Group Owner请求Source的能力,随后Source将下面定义的数据结构添加到M3response中并发送给GroupOwner,Group Owner将计算后的参数添加到M4request消息中,并发送给Source,用于重新设置Source的参数。相应流程可如图15所示。
Group Owner和Source之间的协议同步消息定义为:
wfd-TimeLags-DeltaTime | Source对应的每个信道的延迟 |
wfd-TimeLags-Band Ratio | 带宽比例 |
表5
其中,Basic DeltaTime是网络抖动造成的基础延时。
可见,本发明实施例通过自适应算法,自动调节发送端的发送时间和码流及带宽,使得在一对多以及多对多的网络结构中,整个网络中的每个接收端可以实现音视频同步,同时发送端和接收端的总体延时分布达到最优。与现有技术相比,本发明不需中间服务器的参与,网络结构相对简单,实时性较高,提高了用户体验。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (21)
1.一种音视频同步的方法,应用于包括至少一个发送端的音视频传输***,其特征在于,该方法包括:
管理设备对音视频传输***中的各设备进行同步;
所述管理设备获取时间差,并依据所述时间差,通过自适应算法自动调整所述发送端与对应接收端之间信道的带宽,使得带宽达到最佳分配状态;其中,
所述时间差为:根据所述发送端发出音视频数据包的时刻与所述接收端接收所述音视频数据包的时刻计算得到的差值;
所述管理设备将调整后的带宽通知给所述发送端。
2.根据权利要求1所述的方法,其特征在于,所述管理设备为所述音视频传输***中的一发送端或一接收端。
3.根据权利要求1所述的方法,其特征在于,所述管理设备对音视频传输***中的各设备进行同步,包括:
所述管理设备向音视频传输***中除自身以外的其他设备发送第一消息,所述第一消息中携带所述管理设备自身的基准时间;
所述管理设备接收所述其他设备反馈的第二消息,所述第二消息中携带所述其他设备反馈第二消息的时刻;
所述管理设备计算所述其他设备反馈第二消息的时刻与所述基准时间的差值,如果所述差值小于预设阈值时,则确定同步操作成功。
4.根据权利要求1所述的方法,其特征在于,所述音视频传输***包括一个发送端时,所述依据所述时间差,通过自适应算法自动调整所述发送端与对应接收端之间信道的带宽,使得带宽达到最佳分配状态,包括:
将所述音视频传输***总带宽平均分配给所述发送端与对应接收端之间的每个信道;
将所述发送端与每个接收端之间的时间差组成一个矢量T,并计算所述T的期望E(T);
将所述发送端与每个接收端之间的时间差分别与所述E(T)进行比较,如果时间差大于所述E(T),则将所述时间差对应的信道带宽增加一个单位预设步长;否则,减少一个单位预设步长;
所述管理设备获取带宽调整后所述发送端与每个接收端之间的时间差,并形成新的矢量T1;
判断所述T1的均方差是否达到最小值或小于预设的阈值,如果不是,则依据E(T1)与时间差的大小关系继续调整步长;否则,结束带宽调整操作。
5.根据权利要求1所述的方法,其特征在于,所述音视频传输***包括至少两个发送端时,所述依据所述时间差,通过自适应算法自动调整所述发送端与对应接收端之间信道的带宽,使得带宽达到最佳分配状态,包括:
确定每个信道的初始带宽;
将所述发送端与每个接收端之间的时间差组成一个矢量T’,并计算所述矢量T’的均方差;判断所述T’的均方差是否达到最小值或小于预设的阈值,如果是,则结束带宽调整操作;
如果不是,则计算T’的期望E(T’)以及每个T’(i)的期望E(T’(i)),i=1…,M;所述T’(i)为每个发送端与对应接收端之间的时间差组成的矢量,所述音视频传输***中包括M个发送端;
比较E(T’(i))与E(T’)的大小关系,如果E(T’(i))大于E(T’),则将与所述E(T’)相关的一个发送端所对应的各信道的带宽总量增加一个单位预设步长;否则,减少一个单位预设步长;
所述管理设备获取带宽调整后每个所述发送端与对应接收端之间的时间差,并形成新的矢量T’1;
继续计算所述T’1的均方差,直至所述T’1的均方差达到最小值或小于预设的阈值。
6.根据权利要求5所述的方法,其特征在于,所述带宽调整之前,该方法还包括:
所述管理设备向发送端发送第三消息;
所述第三消息,用于通知所述发送端已被分配的初始带宽相关信息;所述初始带宽相关信息包括:与该发送端所对应的各信道的带宽总量的信息。
7.根据权利要求1所述的方法,其特征在于,所述管理设备将调整后的带宽通知给所述发送端,包括:
所述管理设备向所述发送端发送第四消息;所述第四消息携带调整后的带宽。
8.根据权利要求1所述的方法,其特征在于,所述管理设备获取时间差,包括:
所述管理设备向所述发送端发送第五消息;
所述第五消息携带所述管理设备请求所述发送端能力的信息。
9.一种音视频同步的方法,应用于包括至少一个发送端的音视频传输***,其特征在于,该方法包括:
发送端基于管理设备的同步操作与音视频传输***中的各设备达到同步;
所述发送端接收所述管理设备调整后的带宽;
其中,所述调整后的带宽为所述管理设备基于时间差,通过自适应算法自动调整后达到最佳分配状态的所述发送端与对应接收端之间信道的带宽;
所述时间差为:根据所述发送端发出音视频数据包的时刻与对应接收端接收所述音视频数据包的时刻计算得到的差值。
10.根据权利要求9所述的方法,其特征在于,该方法还包括:
所述发送端依据所述时间差调整向对应的各接收端发送音视频数据包的时刻,使所述各接收端收到所述音视频数据包的时刻之间的差值最小。
11.根据权利要求9所述的方法,其特征在于,该方法还包括:
所述发送端周期性地向对应的各接收端发送第六消息;
所述第六消息,用于检测所述发送端与对应接收端之间的链路是否正常。
12.根据权利要求11所述的方法,其特征在于,所述第六消息中包括:所述管理设备的基准时间、所述发送端发出第一消息的时刻t1、所述接收端收到所述第一消息的时刻t2,以及t1与t2差值超过预设阈值的次数。
13.一种音视频同步的方法,应用于包括至少一个发送端的音视频传输***,其特征在于,该方法包括:
接收端基于管理设备的同步操作与音视频传输***中的各设备达到同步;
接收端反馈收到音视频数据包的时刻,用于时间差的计算;
所述时间差为:根据发送端发出音视频数据包的时刻与对应所述接收端收到音视频数据包的时刻计算得到的差值,用于所述管理设备通过自适应算法自动调整所述发送端与对应接收端之间信道的带宽,使得带宽达到最佳分配状态。
14.根据权利要求13所述的方法,其特征在于,该方法还包括:
所述接收端接收所述发送端周期性发送的第六消息;
所述第六消息,用于检测所述发送端与对应接收端之间的链路是否正常。
15.一种音视频同步设备,应用于包括至少一个发送端的音视频传输***,其特征在于,该设备包括:
第一同步模块,用于对音视频传输***中的各设备进行同步;
第一收发模块,用于获取时间差;将第一调整模块调整后的带宽通知给所述发送端;
第一调整模块,用于依据所述第一收发模块获取的时间差,通过自适应算法自动调整所述发送端与对应接收端之间信道的带宽,使得带宽达到最佳分配状态;其中,
所述时间差为:根据所述发送端发出音视频数据包的时刻与所述接收端接收所述音视频数据包的时刻计算得到的差值。
16.根据权利要求15所述的设备,其特征在于,所述第一调整模块调整带宽之前,所述第一收发模块,还用于向所述发送端发送第三消息;
所述第三消息,用于通知所述发送端已被分配的初始带宽相关信息;所述初始带宽相关信息包括:与该发送端所对应的各信道的带宽总量的信息。
17.一种音视频同步设备,应用于包括至少一个发送端的音视频传输***,其特征在于,该设备包括:
第二同步模块,用于基于管理设备的同步操作与音视频传输***中的各设备达到同步;
第二收发模块,用于接收所述管理设备调整后的带宽;
其中,所述调整后的带宽为所述管理设备基于时间差,通过自适应算法自动调整后达到最佳分配状态的所述发送端与对应接收端之间信道的带宽;
所述时间差为:根据所述发送端发出音视频数据包的时刻与对应接收端接收所述音视频数据包的时刻计算得到差值。
18.根据权利要求17所述的设备,其特征在于,该设备还包括:
第二调整模块,用于依据所述时间差调整向对应的各接收端发送音视频数据包的时刻,使所述各接收端收到所述音视频数据包的时刻之间的差值最小。
19.根据权利要求17所述的设备,其特征在于,
所述第二收发模块,还用于周期性地向对应的各接收端发送第六消息;
所述第六消息,用于检测所述发送端与对应接收端之间的链路是否正常。
20.一种音视频同步设备,应用于包括至少一个发送端的音视频传输***,其特征在于,该设备包括:
第三同步模块,基于管理设备的同步操作与音视频传输***中的各设备达到同步;
第三收发模块,用于反馈收到音视频数据包的时刻,用于时间差的计算;
所述时间差为:根据发送端发出音视频数据包的时刻与对应接收端收到音视频数据包的时刻计算得到的差值,用于所述管理设备通过自适应算法自动调整所述发送端与对应接收端之间信道的带宽,使得带宽达到最佳分配状态。
21.根据权利要求20所述的设备,其特征在于,
所述第三收发模块,还用于接收所述发送端周期性发送的第六消息;
所述第六消息,用于检测所述发送端与对应接收端之间的链路是否正常。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510601566.4A CN106550248B (zh) | 2015-09-18 | 2015-09-18 | 一种音视频同步的方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510601566.4A CN106550248B (zh) | 2015-09-18 | 2015-09-18 | 一种音视频同步的方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106550248A CN106550248A (zh) | 2017-03-29 |
CN106550248B true CN106550248B (zh) | 2020-05-01 |
Family
ID=58362354
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510601566.4A Active CN106550248B (zh) | 2015-09-18 | 2015-09-18 | 一种音视频同步的方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106550248B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108462896B (zh) * | 2018-03-23 | 2020-10-02 | 北京潘达互娱科技有限公司 | 直播数据流处理方法、装置及电子设备 |
CN108449630B (zh) * | 2018-04-09 | 2020-05-22 | 歌尔股份有限公司 | 音频同步方法及*** |
CN109729404B (zh) | 2019-01-15 | 2021-06-04 | 晶晨半导体(上海)股份有限公司 | 一种基于嵌入式的播放器的同步调制方法 |
CN111273538B (zh) * | 2020-01-13 | 2021-12-10 | 广东大普通信技术有限公司 | 一种动态适配时钟噪声方法、装置及可读存储介质 |
CN113038224B (zh) * | 2021-03-26 | 2023-03-24 | 北京小米移动软件有限公司 | 音画同步方法及装置 |
CN113225348B (zh) * | 2021-05-19 | 2023-04-07 | 中国建设银行股份有限公司 | 请求防重放校验方法和装置 |
CN115327580B (zh) * | 2022-08-25 | 2024-06-21 | 中山大学 | 一种授时接收机防欺骗方法、装置及授时接收机 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103237203A (zh) * | 2013-04-09 | 2013-08-07 | 广东欧珀移动通信有限公司 | 一种基于移动终端的音视频同步方法及*** |
EP2728858A1 (en) * | 2011-08-12 | 2014-05-07 | Samsung Electronics Co., Ltd. | Receiving apparatus and receiving method thereof |
CN103813175A (zh) * | 2012-11-01 | 2014-05-21 | 索尼公司 | 传输装置、传输方法、接收装置、接收方法和计算机程序 |
CN104079957A (zh) * | 2014-06-25 | 2014-10-01 | 广东欧珀移动通信有限公司 | 一种多媒体设备同步操作的方法及*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2371449A (en) * | 2001-01-22 | 2002-07-24 | Nokia Mobile Phones Ltd | Synchronizing a new device to a synchronized network of devices |
-
2015
- 2015-09-18 CN CN201510601566.4A patent/CN106550248B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2728858A1 (en) * | 2011-08-12 | 2014-05-07 | Samsung Electronics Co., Ltd. | Receiving apparatus and receiving method thereof |
CN103813175A (zh) * | 2012-11-01 | 2014-05-21 | 索尼公司 | 传输装置、传输方法、接收装置、接收方法和计算机程序 |
CN103237203A (zh) * | 2013-04-09 | 2013-08-07 | 广东欧珀移动通信有限公司 | 一种基于移动终端的音视频同步方法及*** |
CN104079957A (zh) * | 2014-06-25 | 2014-10-01 | 广东欧珀移动通信有限公司 | 一种多媒体设备同步操作的方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN106550248A (zh) | 2017-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106550248B (zh) | 一种音视频同步的方法和设备 | |
US9866791B2 (en) | Efficiently distributing video content using a combination of a peer-to-peer network and a content distribution network | |
KR101595526B1 (ko) | 콘텐츠 동기 전송 시스템 및 방법 | |
US8081659B2 (en) | Map message expediency monitoring and automatic delay adjustments in M-CMTS | |
EP3447970B1 (en) | Live broadcast system in peer-to-peer network and node management method | |
CN102281640B (zh) | 一种基于时分复用的信道资源分配方法 | |
US9307298B2 (en) | System and method for video statistical multiplexing adapting to internet protocol networks | |
JP2010512065A5 (zh) | ||
CN108111531B (zh) | 一种增强视频直播质量的方法及装置 | |
JP2014503165A (ja) | セルラーネットワークにおけるピアツーピアトラフィックをスケジューリングするための方法および装置 | |
KR20200053466A (ko) | 데이터 패킷 배포 방법, 송신자 장치, 수신자 장치 및 저장 매체 | |
CN102572706B (zh) | 在无线多播***中用于检测传输时延的方法、设备与*** | |
JP6468193B2 (ja) | 通信装置及び通信装置におけるネットワーク利用可能帯域推定方法、並びにネットワーク利用可能帯域推定プログラム | |
CN110492960A (zh) | 基于以太网的同步通信方法 | |
KR20210078985A (ko) | 복수의 커넥티드 장치 간 디지털 콘텐츠의 재생 동기화를 맞추는 방법 및 이를 이용한 장치 | |
US10524069B1 (en) | System for configuring distribution of audio data to devices based on connection status | |
CN107113754B (zh) | 通过非确定性网络在网络设备之间传输数据的方法 | |
CN115988428A (zh) | 一种动态调整帧结构的自组网方法 | |
US20180026864A1 (en) | Communication apparatus, communication system, and communication method | |
US10149056B1 (en) | System for configuring audio devices to distribute audio data | |
WO2012158161A1 (en) | Efficiently distributing video content using a combination of a peer-to-peer network and a content distribution network | |
JP6469027B2 (ja) | 局内光終端装置、光通信システムおよび光通信方法 | |
WO2017193879A1 (zh) | 数据的传输方法、装置及*** | |
US8724578B2 (en) | Apparatus and method for distributed scheduling in wireless communication system | |
CN105264790B (zh) | 面向用户体验质量的移动视频业务反馈方法、装置和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |