CN109565466B - 多设备间唇音同步方法及设备 - Google Patents
多设备间唇音同步方法及设备 Download PDFInfo
- Publication number
- CN109565466B CN109565466B CN201780049030.3A CN201780049030A CN109565466B CN 109565466 B CN109565466 B CN 109565466B CN 201780049030 A CN201780049030 A CN 201780049030A CN 109565466 B CN109565466 B CN 109565466B
- Authority
- CN
- China
- Prior art keywords
- rtcp
- slave
- equipment
- slave device
- port
- 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
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- 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/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/643—Communication protocols
- H04N21/6437—Real-time Transport Protocol [RTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
- H04J3/0658—Clock or time synchronisation among packet nodes
- H04J3/0673—Clock or time synchronisation among packet nodes using intermediate nodes, e.g. modification of a received timestamp before further transmission to the next packet node, e.g. including internal delay time or residence time into the packet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0685—Clock or time synchronisation in a node; Intranode synchronisation
- H04J3/0697—Synchronisation in a packet node
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2854—Wide area networks, e.g. public data networks
- H04L12/2856—Access arrangements, e.g. Internet access
- H04L12/2869—Operational details of access network equipments
- H04L12/287—Remote access server, e.g. BRAS
- H04L12/2874—Processing of data for distribution to the subscribers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/28—Timers or timing mechanisms used in protocols
-
- 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/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/4307—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
- H04N21/43072—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of multiple content streams on the same device
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
- H04N5/91—Television signal processing therefor
- H04N5/92—Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
- H04N5/926—Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback by pulse code modulation
- H04N5/9265—Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback by pulse code modulation with processing of the sound signal
- H04N5/9267—Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback by pulse code modulation with processing of the sound signal using time division multiplex of the PCM audio and PCM video signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供一种多设备间唇音同步方法及设备,该方法包括:从设备接收主设备发送的RTCP报文,根据RTCP报文中的PCR、主设备节目时钟频率、从设备的节目时钟频率和RTCP时延校正自身的STC,接着接收主设备发布的RTP,将RTP拼接成完整的音频数据帧放入从设备的PCM缓存,输出PCM缓存中的音频数据帧。
Description
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种多设备间唇音同步方法及设备。
背景技术
随着WIFI音箱和蓝牙音箱的广泛应用,音视频播放设备通过无线连接的方式将音频数据发送到WIFI音箱或蓝牙音箱,由音视频播放设备播放视频,WIFI音箱或蓝牙音箱播放音频的这一应用得到越来越多的用户青睐。该应用中,最重要的问题是要保证唇音同步,才能给用户带来良好的使用体验。
在现有的蓝牙音箱的使用过程中,音视频播放设备中的蓝牙驱动模块从自身的音频脉冲编码调制(Pulse Code Modulation,PCM)缓存中读取音频PCM数据,并通过蓝牙协议实时发送到蓝牙音箱,蓝牙音箱的蓝牙音频驱动模块基于蓝牙协议接收PCM数据,并将PCM数据实时发送到蓝牙音箱的音频PCM缓存,蓝牙音箱的PCM播放驱动模块直接从蓝牙音箱的音频PCM缓存读取音频PCM数据播放输出。
可以看出,蓝牙音箱只解决了音频跨设备输出的问题,不能实现设备间的唇音同步,上述方法应用到WIFI音箱亦是如此,且对于WIFI音箱而言,由于WIFI路由器转发时延导致音视频输出不同步进一步加剧,如何实现多设备间唇音同步,是一个需要解决的问题。
发明内容
本发明实施例提供一种多设备间唇音同步方法及设备,解决多设备间同步播放视频和音频时如何实现唇音同步的问题。
第一方面,本发明实施例提供一种多设备间唇音同步方法,用于一个主设备同步输出音频和视频到至少一个从设备中,方法包括:从设备接收主设备发送的实时控制协议RTCP报文,RTCP报文中的实时流分组RTP时间戳头域携带主设备周期性采集的节目时钟参考PCR,RTCP报文中的网络时间协议NTP域携带RTCP报文的发送时间点;从设备根据PCR、主设备节目时钟频率、从设备的节目时钟频率和RTCP时延校正自身的***时钟STC;从设备根据主设备发送的组播服务地址和端口接收主设备发布的RTP,将RTP拼接成完整的音频数据帧,并从RTP分组的时间戳头域获取音频数据帧对应的显示时间戳PTS,将音频数据帧放入从设备的音频脉冲编码调制PCM缓存;从设备根据自身的STC和音频数据帧显示时间戳输出音频PCM缓存中的音频数据帧。从而,实现了主设备带动从设备同步输出音视频数据,实现主设备和从设备间的唇音同步,给用户带来良好的使用体验。
在一种可能的设计中,RTCP报文中携带RTCP会话标识,从设备根据PCR、主设备节目时钟频率、从设备的节目时钟频率和RTCP时延校正自身的***时钟STC之前,还包括:从设备向主设备发送加入RTCP会话请求,以使主设备向从设备发送RTCP会话标识。
在一种可能的设计中,从设备根据PCR、主设备节目时钟频率、从设备的节目时钟频率和RTCP时延校正自身的***时钟STC,包括:从设备根据如下公式计算出从设备的STC校正值scr_correct:
scr_correct=scr_srv*scf_clt/scf_srv+(ntp_rcv-ntp_snd)*scf_clt/1000
其中,scf_clt为从设备节目时钟频率,scf_srv主设备节目时钟频率,ntp_rcv为接收到RTCP报文的时刻,scr_srv和ntp_snd分别为PCR和RTCP报文的发送时间点;
从设备根据计算出的STC校正值校正自身的STC。
在一种可能的设计中,从设备接收主设备发送的实时控制协议RTCP报文之前,还包括:从设备接收主设备发送的媒体描述信息,媒体描述信息包括简单网络时间协议SNTP服务地址和端口、RTCP服务地址和端口、组播服务地址和端口、主设备节目时钟频率、媒体格式和时戳频率;从设备根据SNTP服务地址和端口进行***时间同步;
从设备接收主设备发送的实时控制协议RTCP报文,包括:
从设备根据RTCP服务地址和端口接收主设备发送的RTCP报文。
第二方面,本发明实施例提供一种多设备间唇音同步方法,用于一个主设备同步输出音频和视频到至少一个从设备中,方法包括:主设备根据预设采集周期采集节目时钟参考PCR;主设备在确定满足预设条件时向从设备发送实时控制协议RTCP报文,RTCP报文中的实时流分组RTP时间戳头域携带PCR,RTCP报文中的网络时间协议NTP域携带RTCP报文的发送时间点,以使从设备根据PCR、主设备节目时钟频率、从设备的节目时钟频率和RTCP时延校正从设备的***时钟STC;主设备从主设备的音频脉冲编码调制PCM缓存中复制出音频数据帧并打包成实时流分组RTP,将RTP发布到组播服务地址和端口,RTP的时间戳头域携带了音频数据帧对应的显示时间戳,用于从设备根据组播服务地址和端口接收RTP。从而,实现了主设备带动从设备同步输出音视频数据,实现主设备和从设备间的唇音同步,给用户带来良好的使用体验。
在一种可能的设计中,RTCP报文中携带RTCP会话标识,主设备在确定满足预设条件时向从设备发送实时控制协议RTCP报文之前,还包括:主设备接收从设备发送的加入RTCP会话请求,并向从设备发送RTCP会话标识。
在一种可能的设计中,主设备根据预设采集周期采集节目时钟参考PCR之前,还包括:主设备向从设备发送媒体描述信息,媒体描述信息包括简单网络时间协议SNTP服务地址和端口、RTCP服务地址和端口、组播服务地址和端口、主设备节目时钟频率、媒体格式和时戳频率,SNTP服务地址和端口用于从设备进行***时间同步,RTCP服务地址和端口用于从设备根据RTCP服务地址和端口接收主设备发送的RTCP报文。
在一种可能的设计中,预设条件为:主设备实际采集PCR的时间间隔与预设采集周期之间的偏差大于预设阈值。
在一种可能的设计中,预设阈值为20ms,预设条件为:
(scr_curr-scr_last)*1000/scf_srv<(cycle_read_x-20)或
(scr_curr-scr_last)*1000/scf_srv>(cycle_read_x+20);
其中,scr_curr为当前采集时钟值,scr_last为上一个采集时钟值,scf_srv为主设备节目时钟频率,cycle_read_x为预设采集周期。
第三方面,本发明实施例提供一种从设备,包括:
第一接收模块,用于接收主设备发送的实时控制协议RTCP报文,RTCP报文中的实时流分组RTP时间戳头域携带主设备周期性采集的节目时钟参考PCR,RTCP报文中的网络时间协议NTP域携带RTCP报文的发送时间点;校正模块,用于根据PCR、主设备节目时钟频率、从设备的节目时钟频率和RTCP时延校正自身的***时钟STC;第二接收模块,用于根据主设备发送的组播服务地址和端口接收主设备发布的RTP;处理模块,用于将RTP拼接成完整的音频数据帧,并从RTP分组的时间戳头域获取音频数据帧对应的显示时间戳PTS,将音频数据帧放入从设备的音频脉冲编码调制PCM缓存;输出模块,用于根据自身的STC和音频数据帧显示时间戳输出音频PCM缓存中的音频数据帧。从而,实现了主设备带动从设备同步输出音视频数据,实现主设备和从设备间的唇音同步,给用户带来良好的使用体验。
在一种可能的设计中,RTCP报文中携带RTCP会话标识,从设备还包括:发送模块,用于在校正模块根据PCR、主设备节目时钟频率、从设备的节目时钟频率和RTCP时延校正自身的***时钟STC之前,向主设备发送加入RTCP会话请求,以使主设备向从设备发送RTCP会话标识。
在一种可能的设计中,校正模块具体用于:根据如下公式计算出从设备的STC校正值scr_correct:
scr_correct=scr_srv*scf_clt/scf_srv+(ntp_rcv-ntp_snd)*scf_clt/1000
其中,scf_clt为从设备节目时钟频率,scf_srv主设备节目时钟频率,ntp_rcv为接收到RTCP报文的时刻,scr_srv和ntp_snd分别为PCR和RTCP报文的发送时间点;
根据计算出的STC校正值校正自身的STC。
在一种可能的设计中,第一接收模块还用于:在接收主设备发送的实时控制协议RTCP报文之前,接收主设备发送的媒体描述信息,媒体描述信息包括简单网络时间协议SNTP服务地址和端口、RTCP服务地址和端口、组播服务地址和端口、主设备节目时钟频率、媒体格式和时戳频率;处理模块还用于根据SNTP服务地址和端口进行***时间同步;
第一接收模块具体用于:根据RTCP服务地址和端口接收主设备发送的RTCP报文。
第四方面,本发明实施例提供一种主设备,包括:采集模块,用于根据预设采集周期采集节目时钟参考PCR;发送模块,用于在确定满足预设条件时向从设备发送实时控制协议RTCP报文,RTCP报文中的实时流分组RTP时间戳头域携带PCR,RTCP报文中的网络时间协议NTP域携带RTCP报文的发送时间点,以使从设备根据PCR、主设备节目时钟频率、从设备的节目时钟频率和RTCP时延校正从设备的***时钟STC;处理模块,用于从主设备的音频脉冲编码调制PCM缓存中复制出音频数据帧并打包成实时流分组RTP,将RTP发布到组播服务地址和端口,RTP的时间戳头域携带了音频数据帧对应的显示时间戳,用于从设备根据组播服务地址和端口接收RTP。从而,实现了主设备带动从设备同步输出音视频数据,实现主设备和从设备间的唇音同步,给用户带来良好的使用体验。
在一种可能的设计中,RTCP报文中携带RTCP会话标识,主设备还包括:接收模块,用于在发送模块在确定满足预设条件时向从设备发送实时控制协议RTCP报文之前,接收从设备发送的加入RTCP会话请求,并向从设备发送RTCP会话标识。
在一种可能的设计中,发送模块还用于:在采集模块根据预设采集周期采集节目时钟参考PCR之前,向从设备发送媒体描述信息,媒体描述信息包括简单网络时间协议SNTP服务地址和端口、RTCP服务地址和端口、组播服务地址和端口、主设备节目时钟频率、媒体格式和时戳频率,SNTP服务地址和端口用于从设备进行***时间同步,RTCP服务地址和端口用于从设备根据RTCP服务地址和端口接收主设备发送的RTCP报文。
在一种可能的设计中,预设条件为:主设备实际采集PCR的时间间隔与预设采集周期之间的偏差大于预设阈值。
在一种可能的设计中,预设阈值为20ms,预设条件为:
(scr_curr-scr_last)*1000/scf_srv<(cycle_read_x-20)或
(scr_curr-scr_last)*1000/scf_srv>(cycle_read_x+20);
其中,scr_curr为当前采集时钟值,scr_last为上一个采集时钟值,scf_srv为主设备节目时钟频率,cycle_read_x为预设采集周期。
第五方面,本发明实施例提供一种终端,包括:接收器、处理器和发送器;接收器用于从所述终端外部接收数据,发送器用于向外部设备发送数据;处理器用于执行上述第一方面或第二方面任一所述的方法。
本发明实施例还提供了一种计算机存储介质,用于储存为上述任一方面中从设备或主设备所用的计算机软件指令,其包含用于执行上述各方面所设计的方法或程序。
本发明实施例还提供了一种数据处理***,包括用于执行上述第一方面或第二方面提供的各方法的模块。
本发明实施例还提供了一种计算机程序,用于执行上述第一方面或第二方面提供的各方法。
附图说明
图1为本发明实施例提供的多设备间唇音同步方法实施例一的流程示意图;
图2为本发明实施例提供的多设备间唇音同步方法实施例二的流程示意图;
图3为本发明实施例提供的多设备间唇音同步方法的原理示意图;
图4为主设备启动媒体共享服务时各个模块的交互流程图;
图5为从设备查询媒体共享资源时各个模块的交互流程图;
图6为从设备同步播放共享媒体资源时各个模块的交互流程图;
图7为本发明实施例从设备实施例一的结构示意图;
图8为本发明实施例从设备实施例二的结构示意图;
图9为本发明实施例主设备实施例一的结构示意图;
图10为本发明实施例主设备实施例二的结构示意图;
图11为本发明实施例从设备实施例三的结构示意图;
图12为本发明实施例主设备实施例三的结构示意图;
图13为本发明实施例主设备实施例四的结构示意图。
具体实施方式
本发明实施例的技术方案,可以应用于无线蜂窝网络的各种通信***,例如:全球移动通信(Global System of Mobile communication,GSM)***,码分多址(CodeDivision Multiple Access,CDMA)***,宽带码分多址(Wideband Code DivisionMultiple Access Wireless,WCDMA)***,通用分组无线业务(General Packet RadioService,GPRS)***,LTE***,通用移动通信***(Universal MobileTelecommunications System,UMTS)等,本发明实施例并不限定。
本发明实施例的技术方案主要应用于一个主设备和一个或多个从设备同步播放视频数据和音频数据时如何保证唇音同步的场景。唇音同步是指主设备播放视频数据与从设备播放音频数据同步,用户观看视频时可以达到口型与声音同步的播放效果。主设备与从设备之间通过WIFI等方式连接,由主设备播放视频数据,从设备播放音频数据,主设备支持音视频同步输出,如手机、机顶盒(Set-Top Box,STB)、电视盒子(Over The Top,OTT)盒子等。从设备可以为WIFI音箱等设备,从设备可以播放音频数据。
本发明实施例提出的多设备间唇音同步方法及设备,可实现一个主设备带动多个从设备同步输出音视频数据,实现主设备和从设备间的唇音同步,给用户带来良好的使用体验。用于下面结合附图详细说明本发明实施例提供的技术方案。
图1为本发明实施例提供的多设备间唇音同步方法实施例一的流程示意图,用于一个主设备同步输出音频和视频到至少一个从设备中,如图1所示,该方法包括:
S101、主设备根据预设采集周期采集节目时钟参考(Program Clock Reference,PCR)。
S102、主设备根据采集的PCR确定是否满足预设条件,在满足预设条件时向从设备发送实时控制协议(Real Time Control Protocol,RTCP)报文,RTCP报文中的实时流分组RTP时间戳头域携带PCR,RTCP报文中的网络时间协议(Network Time protocol,NTP)域携带RTCP报文的发送时间点。
其中,预设条件为:主设备实际采集PCR的时间间隔与预设采集周期之间的偏差大于预设阈值。预设阈值例如为-60ms-20ms之间的值。以20ms为例,预设条件为:
(scr_curr-scr_last)*1000/scf_srv<(cycle_read_x-20)或
(scr_curr-scr_last)*1000/scf_srv>(cycle_read_x+20);
其中,scr_curr为当前采集时钟值,scr_last为上一个采集时钟值,scf_srv为主设备节目时钟频率,cycle_read_x为预设采集周期。
S103、从设备接收主设备发送的RTCP报文,从设备根据PCR、主设备节目时钟频率、从设备的节目时钟频率和RTCP时延校正自身的***时钟(System Time Clock,STC)。
其中,从设备接收到RTCP报文后,由于RTCP报文中的实时流分组RTP时间戳头域携带PCR,RTCP报文中的NTP域携带RTCP报文的发送时间点,因此从设备可获取到PCR、RTCP报文的发送时间点以及接收到RTCP报文的时刻。RTCP时延就是RTCP传输时延,为RTCP报文的发送时间点与接收到RTCP报文的时刻之差。
其中,RTCP报文中携带RTCP会话标识,RTCP会话标识是主设备用于区分不同的从设备所分配的标识,具体地,从设备向主设备发送加入RTCP会话请求,主设备接收到加入RTCP会话请求后向该从设备发送RTCP会话标识,之后在主设备向该从设备发送的RTCP报文中携带RTCP会话标识。
具体地,从设备可以根据如下公式计算出从设备的STC校正值scr_correct:
scr_correct=scr_srv*scf_clt/sct_srv+(ntp_rcv-ntp_snd)*scf_clt/1000
其中,scf_clt为从设备节目时钟频率,scf_srv主设备节目时钟频率,ntp_rcv为接收到RTCP报文的时刻,scr_srv和ntp_snd分别为PCR和RTCP报文的发送时间点。
接着从设备根据计算出的STC校正值校正从设备的STC。
S104、主设备从主设备的音频脉冲编码调制(Pulse Code Modulation,PCM)缓存中复制出音频数据帧并打包成实时流分组(Real Time Packet,RTP),将RTP发布到组播服务地址和端口,RTP的时间戳头域携带了该音频数据帧对应的显示时间戳。
S105、从设备根据主设备发送的组播服务地址和端口接收主设备发布的RTP,将RTP拼接成完整的音频数据帧,并从RTP分组的时间戳头域获取该音频数据帧对应的显示时间戳,将该音频数据帧放入从设备的PCM缓存。音频数据帧例如为音频帧。
S106、从设备根据自身的STC和音频数据帧显示时间戳输出音频PCM缓存中的音频数据帧。
具体地,从设备根据音频数据帧显示时间戳,参考自身的STC同步播放音频PCM缓存中的音频数据帧。
本实施例提供的多设备间唇音同步方法,通过主设备根据预设周期采集PCR,在确定满足预设条件(也即需要进行时间校正)时向从设备发送RTCP报文,RTCP报文携带所采集的PCR和RTCP报文的发送时间点,从设备根据该PCR、主设备节目时钟频率、从设备的节目时钟频率和RTCP时延校正自身的STC。然后从设备根据主设备发送的组播服务地址和端口接收主设备发布的RTP,将RTP拼接成完整的音频数据帧,并从RTP分组的时间戳头域获取该音频数据帧对应的显示时间戳,将该音频数据帧放入从设备的PCM缓存。最后从设备参考自身的STC和音频数据帧显示时间戳输出音频PCM缓存中的音频数据帧。从而实现了主设备带动从设备同步输出音视频数据,实现主设备和从设备间的唇音同步,给用户带来良好的使用体验。
图2为本发明实施例提供的多设备间唇音同步方法实施例二的流程示意图,如图2所示,本实施例的方法在图1所示实施例的基础上,其中,若从设备与主设备是非第一次同步输出音视频数据,则主设备节目时钟频率可以是在第一次同步输出音视频数据后存储在从设备中,同时可以存储相应的主设备的标识,则在二次同步输出时可直接使用。若从设备与主设备是第一次同步输出音视频数据,则在S103之前,主设备要向从设备发送主设备节目时钟频率。同样的,若从设备与主设备是非第一次同步输出音视频数据,则用于从设备进行***时间同步的简单网络时间协议(Simple Network Time protocol,SNTP)服务地址和端口、用于从设备接收RTCP报文的RTCP服务地址和端口、组播服务地址和端口、主设备节目时钟频率、媒体格式和时戳频率可以是在第一次同步输出音视频数据后存储在从设备中,同时可以存储相应的主设备的标识,则在二次同步输出时可直接使用。若从设备与主设备是第一次同步输出音视频数据,则在S101之前,还可以包括:
S107、主设备向从设备发送媒体描述信息,媒体描述信息包括SNTP服务地址和端口、RTCP服务地址和端口、组播服务地址和端口、主设备节目时钟频率、媒体格式和时戳频率。具体地,主设备可以通过超文本传输协议发布媒体描述信息,
S108、从设备接收主设备发送的媒体描述信息。通过解析媒体描述信息获取SNTP服务地址和端口、RTCP服务地址和端口、组播服务地址和端口、主设备节目时钟频率、媒体格式和时戳频率,然后根据SNTP服务地址和端口进行***时间同步,之后根据RTCP服务地址和端口接收主设备发送的RTCP报文。组播服务地址和端口用于从设备接收主设备发布的RTP。媒体格式为主设备对音频数据帧压缩编码索使用的格式,用于从设备确定相应的解码格式。时戳频率用于从设备根据主设备的两个帧之间间隔的时戳调整从设备的两个帧之间间隔的时戳。
后面的流程与图1所示的相同,此处不再赘述。
本实施例提供的多设备间唇音同步方法,主设备向从设备发送媒体描述信息,从设备根据媒体描述信息中的SNTP服务地址和端口进行***时间同步,接着通过主设备根据预设周期采集PCR,在确定满足预设条件(也即需要进行时间校正)时向从设备发送RTCP报文,RTCP报文携带所采集的PCR和RTCP报文的发送时间点,从设备根据该PCR、主设备节目时钟频率、从设备的节目时钟频率和RTCP时延校正自身的STC。然后从设备根据主设备发送的组播服务地址和端口接收主设备发布的RTP,将RTP拼接成完整的音频数据帧,并从RTP分组的时间戳头域获取该音频数据帧对应的显示时间戳,将该音频数据帧放入从设备的PCM缓存。最后从设备参考自身的STC和音频数据帧显示时间戳输出音频PCM缓存中的音频数据帧。从而实现了主设备带动从设备同步输出音视频数据,实现主设备和从设备间的唇音同步,给用户带来良好的使用体验。
下面结合附图,结合主设备以及从设备内部的模块构成以及模块之间的交互过程详细说明主设备音频输出至从设备的原理示意图。
图3为本发明实施例提供的多设备间唇音同步方法的原理示意图,如图3所示,对于主设备,本发明实施例在现有主设备(媒体播放器)的基础上,新增加媒体信息发布模块、***时间服务端、节目时钟服务端和RTP分组服务端,在现有从设备的基础上,新增加媒体信息下载模块、***时间客户端、节目时钟客户端、RTP分组客户端和节目时钟驱动模块。其中,媒体信息发布模块、***时间服务端、节目时钟服务端和RTP分组服务端以及媒体信息下载模块、***时间客户端、节目时钟客户端RTP分组客户端和节目时钟驱动模块都可以是软件模块。媒体信息发布模块用于发布媒体描述信息,媒体描述信息包括SNTP服务地址和端口、RTCP服务地址和端口、组播服务地址和端口、主设备节目时钟频率、媒体格式和时戳频率。媒体信息下载模块用于接收媒体描述信息。***时间服务端和***时间客户端实现从设备与主设备之间的时间同步。节目时钟服务端和节目时钟客户端实现从设备与主设备的节目时钟的高精度同步,例如确保节目时钟偏差低于20ms(约1帧PCM输出时延)。如果节目时钟客户端没法将时钟频率调制到与节目时钟服务端一致时,应对SCR和PTS进行相应的时钟频率转换。RTP分组服务端与RTP分组客户端建立了音频数据帧从主设备传输到从设备的RTP通道。从设备节目时钟驱动模块用于在PCM播放驱动模块播放音频数据时参靠节目时钟客户端时钟输出。
需要说明的是,如图3所示,主设备原有的PCM播放驱动模块在连接了从设备后可以断开不使用,由从设备播放同步输出的音频,从设备连接了主设备后,从设备原有的音频目标解码器与音频PCM缓存(FIFO)也断开,播放主设备输出的音频。
具体来说,主设备的音视频同步过程为:主设备的音视频同步模块基于目标节目的同步策略(PCR基准、视频流基准、音频流基准或音视频参考基准)和纯音同步算法,根据输入的PCR、音频显示时间戳(Presentation Timestamp,PTS)和视频PTS计算出节目时钟参考值,接着音视频同步模块将节目时钟参考值和当前***时钟采样(SCR)比较,当偏移超过门限值(通常100ms~200ms)时,则使用节目时钟参考值校正***时钟,得到经过校正的PCR。音频、视频等媒体流输出时,对比PTS和SCR安排显示输出时序。如,当PTS小于或等于当前采样SCR时,则输出当前音频帧,否则不输出。主设备与从设备连接后,视频正常输出,音频不通过PCM播放驱动模块播放,而是通过RTP分组服务端输出至从设备,由从设备同步输出音频。
图4为主设备启动媒体共享服务时各个模块的交互流程图,如图4所示,包括:
S201、主设备的监控模块连接上从设备或者发现从设备后,启动媒体共享服务流程,包括启动***时间同步(***时间服务端执行)、启动节目时钟同步(节目时钟服务端执行)、启动组播(RTP分组服务端执行)、启动媒体信息发布(媒体信息发布模块执行)。
S202、媒体信息发布模块发布媒体描述信息,媒体描述信息包括SNTP服务地址和端口、RTCP服务地址和端口、组播服务地址和端口、主设备节目时钟频率、媒体格式和时戳频率。
接着,***时间服务端根据SNTP服务地址和端口进行***时间同步,节目时钟服务端根据RTCP服务地址和端口接收主设备发送的RTCP报文,根据RTCP报文进行节目时钟同步,RTP分组服务端根据组播服务地址和端口发布RTP。
图5为从设备查询媒体共享资源时各个模块的交互流程图,如图5所示,包括:
S301、从设备的监控模块向媒体信息下载模块发送查询服务端媒体信息的请求。
S302、媒体信息下载模块向媒体信息发布模块发送媒体描述信息请求,媒体信息发布模块返回媒体描述信息请求响应,携带媒体描述信息,媒体描述信息包括SNTP服务地址和端口、RTCP服务地址和端口、组播服务地址和端口、主设备节目时钟频率、媒体格式和时戳频率。
S303、媒体信息下载模块解析媒体描述信息获得所有服务地址和端口、主设备节目时钟频率、媒体格式和时戳频率。
S304、从设备的监控模块配置SNTP服务地址和端口,启动时间客户端进行SNTP时间同步。
最后,时间客户端与***时间服务端之间进行***时间同步。
图6为从设备同步播放共享媒体资源时各个模块的交互流程图,如图6所示,包括:
S401、从设备的监控模块向节目时钟客户端发送同步节目时钟请求。
S402、节目时钟客户端向节目时钟服务端发送加入RTCP会话请求,节目时钟服务端返回RTCP会话标识。
S403、节目时钟服务端根据预设采集周期采集PCR,并在满足预设条件时向节目时钟客户端发送PCR采样值。
S404、节目时钟客户端根据PCR、主设备节目时钟频率、从设备的节目时钟频率和RTCP时延校正自身的STC。
S405、从设备的监控模块向RTP分组客户端发送启动音频数据帧接收请求。
S406、RTP分组客户端向RTP分组服务端发送加入组播组请求。
S407、RTP分组服务端向RTP分组客户端发送RTP。
S408、RTP分组客户端接收RTP,将RTP拼接成完整的音频数据帧,并从RTP分组的时间戳头域获取该音频数据帧对应的显示时间戳,将该音频数据帧放入从设备的PCM缓存。
S409、PCM播放驱动模块根据从设备的STC和音频数据帧显示时间戳输出音频PCM缓存中的音频数据帧。
本发明实施例可以根据上述方法示例对主设备和从设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例各实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
图7为本发明实施例从设备实施例一的结构示意图,如图7所示,本实施例的从设备可以包括:第一接收模块11、校正模块12、第二接收模块13、处理模块14和输出模块15,其中,第一接收模块11用于接收主设备发送的RTCP报文,RTCP报文中的RTP时间戳头域携带主设备周期性采集的节目时钟参考PCR,RTCP报文中的网络时间协议NTP域携带RTCP报文的发送时间点。校正模块12用于根据PCR、主设备节目时钟频率、从设备的节目时钟频率和RTCP时延校正自身的***时钟STC。第二接收模块13用于根据主设备发送的组播服务地址和端口接收主设备发布的RTP。处理模块14用于将RTP拼接成完整的音频数据帧,并从RTP分组的时间戳头域获取音频数据帧对应的显示时间戳PTS,将音频数据帧放入从设备的音频脉冲编码调制PCM缓存。输出模块15用于根据自身的STC和音频数据帧显示时间戳输出音频PCM缓存中的音频数据帧。
图8为本发明实施例从设备实施例二的结构示意图,如图8所示,在图7所示的从设备的基础上,进一步地,本实施例的从设备还可以包括:发送模块16,发送模块16用于在校正模块12根据PCR、主设备节目时钟频率、从设备的节目时钟频率和RTCP时延校正自身的***时钟STC之前,向主设备发送加入RTCP会话请求,以使主设备向从设备发送RTCP会话标识。
进一步地,校正模块12具体用于:根据如下公式计算出从设备的STC校正值scr_correct:
scr_correct=scr_srv*scf_clt/scf_srv+(ntp_rcv-ntp_snd)*scf_clt/1000
其中,scf_clt为从设备节目时钟频率,scf_srv主设备节目时钟频率,ntp_rcv为接收到RTCP报文的时刻,scr_srv和ntp_snd分别为PCR和RTCP报文的发送时间点。根据计算出的STC校正值校正自身的STC。
进一步地,第一接收模块11还用于:在接收主设备发送的实时控制协议RTCP报文之前,接收主设备发送的媒体描述信息,媒体描述信息包括SNTP服务地址和端口、RTCP服务地址和端口、组播服务地址和端口、主设备节目时钟频率、媒体格式和时戳频率;处理模块14还用于根据SNTP服务地址和端口进行***时间同步;第一接收模块11具体用于:根据RTCP服务地址和端口接收主设备发送的RTCP报文。
图7或图8所示实施例的从设备,可以用于执行图1或图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图9为本发明实施例主设备实施例一的结构示意图,如图9所示,本实施例的主设备可以包括:采集模块21、发送模块22和处理模块23,其中,采集模块21用于根据预设采集周期采集节目时钟参考PCR。发送模块22用于在确定满足预设条件时向从设备发送实时控制协议RTCP报文,RTCP报文中的实时流分组RTP时间戳头域携带PCR,RTCP报文中的网络时间协议NTP域携带RTCP报文的发送时间点,以使从设备根据PCR、主设备节目时钟频率、从设备的节目时钟频率和RTCP时延校正从设备的***时钟STC。处理模块23用于从主设备的音频脉冲编码调制PCM缓存中复制出音频数据帧并打包成实时流分组RTP,将RTP发布到组播服务地址和端口,RTP的时间戳头域携带了音频数据帧对应的显示时间戳,用于从设备根据组播服务地址和端口接收RTP。
图10为本发明实施例主设备实施例二的结构示意图,如图10所示,在图9所示的主设备的基础上,进一步地,本实施例的主设备还可以包括:接收模块24,该接收模块24用于在发送模块22在确定满足预设条件时向从设备发送RTCP报文之前,接收从设备发送的加入RTCP会话请求,并向从设备发送RTCP会话标识。
进一步地,发送模块22还用于:在采集模块21根据预设采集周期采集节目时钟参考PCR之前,向从设备发送媒体描述信息,媒体描述信息包括SNTP服务地址和端口、RTCP服务地址和端口、组播服务地址和端口、主设备节目时钟频率、媒体格式和时戳频率,SNTP服务地址和端口用于从设备进行***时间同步,RTCP服务地址和端口用于从设备根据RTCP服务地址和端口接收主设备发送的RTCP报文。
其中,预设条件为主设备实际采集PCR的时间间隔与预设采集周期之间的偏差大于预设阈值。
可选的,预设阈值为20ms,预设条件为:
(scr_curr-scr_last)*1000/scf_srv<(cycle_read_x-20)或
(scr_curr-scr_last)*1000/scf_srv>(cycle_read_x+20);
其中,scr_curr为当前采集时钟值,scr_last为上一个采集时钟值,scf_srv为主设备节目时钟频率,cycle_read_x为预设采集周期。
图9和图10所示实施例的主设备,可以用于执行图1或图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图11为本发明实施例从设备实施例三的结构示意图,如图11所示,本实施例的从设备可以包括:接收器31、处理器32和发送器33,其中,接收器31用于接收主设备发送的RTCP报文,RTCP报文中的RTP时间戳头域携带主设备周期性采集的节目时钟参考PCR,RTCP报文中的网络时间协议NTP域携带RTCP报文的发送时间点。处理器32用于根据PCR、主设备节目时钟频率、从设备的节目时钟频率和RTCP时延校正自身的***时钟STC。接收器31还用于根据主设备发送的组播服务地址和端口接收主设备发布的RTP。处理器32还用于将RTP拼接成完整的音频数据帧,并从RTP分组的时间戳头域获取音频数据帧对应的显示时间戳PTS,将音频数据帧放入从设备的音频脉冲编码调制PCM缓存。发送器33用于根据自身的STC和音频数据帧显示时间戳输出音频PCM缓存中的音频数据帧。
进一步地,发送器33还用于在校正模块根据PCR、主设备节目时钟频率、从设备的节目时钟频率和RTCP时延校正自身的***时钟STC之前,向主设备发送加入RTCP会话请求,以使主设备向从设备发送RTCP会话标识。
进一步地,处理器32具体用于:根据如下公式计算出从设备的STC校正值scr_correct:
scr_correct=scr_srv*scf_clt/scf_srv+(ntp_rcv-ntp_snd)*scf_clt/1000
其中,scf_clt为从设备节目时钟频率,scf_srv主设备节目时钟频率,ntp_rcv为接收到RTCP报文的时刻,scr_srv和ntp_snd分别为PCR和RTCP报文的发送时间点。根据计算出的STC校正值校正自身的STC。
进一步地,接收器31还用于:在接收主设备发送的实时控制协议RTCP报文之前,接收主设备发送的媒体描述信息,媒体描述信息包括SNTP服务地址和端口、RTCP服务地址和端口、组播服务地址和端口、主设备节目时钟频率、媒体格式和时戳频率;处理器32还用于根据SNTP服务地址和端口进行***时间同步;接收器31具体用于:根据RTCP服务地址和端口接收主设备发送的RTCP报文。
本实施例的从设备,可以用于执行图1或图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图12为本发明实施例主设备实施例三的结构示意图,如图12所示,本实施例的主设备可以包括:处理器41和发送器42,其中,处理器41用于根据预设采集周期采集节目时钟参考PCR。发送器42用于在确定满足预设条件时向从设备发送实时控制协议RTCP报文,RTCP报文中的实时流分组RTP时间戳头域携带PCR,RTCP报文中的网络时间协议NTP域携带RTCP报文的发送时间点,以使从设备根据PCR、主设备节目时钟频率、从设备的节目时钟频率和RTCP时延校正从设备的***时钟STC。处理器41还用于从主设备的音频脉冲编码调制PCM缓存中复制出音频数据帧并打包成实时流分组RTP,将RTP发布到组播服务地址和端口,RTP的时间戳头域携带了音频数据帧对应的显示时间戳,用于从设备根据组播服务地址和端口接收RTP。
图13为本发明实施例主设备实施例四的结构示意图,如图13所示,在图12所示的主设备的基础上,进一步地,本实施例的主设备还可以包括:接收器43,该接收器43用于在发送器42在确定满足预设条件时向从设备发送RTCP报文之前,接收从设备发送的加入RTCP会话请求,并向从设备发送RTCP会话标识。
进一步地,发送器42还用于:在处理器41根据预设采集周期采集节目时钟参考PCR之前,向从设备发送媒体描述信息,媒体描述信息包括SNTP服务地址和端口、RTCP服务地址和端口、组播服务地址和端口、主设备节目时钟频率、媒体格式和时戳频率,SNTP服务地址和端口用于从设备进行***时间同步,RTCP服务地址和端口用于从设备根据RTCP服务地址和端口接收主设备发送的RTCP报文。
其中,预设条件为主设备实际采集PCR的时间间隔与预设采集周期之间的偏差大于预设阈值。
可选的,预设阈值为20ms,预设条件为:
(scr_curr-scr_last)*1000/scf_srv<(cycle_read_x-20)或
(scr_curr-scr_last)*1000/scf_srv>(cycle_read_x+20);
其中,scr_curr为当前采集时钟值,scr_last为上一个采集时钟值,scf_srv为主设备节目时钟频率,cycle_read_x为预设采集周期。
图12和图13所示实施例的主设备,可以用于执行图1或图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***或装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员将会理解,本发明实施例的各个方面、或各个方面的可能实现方式可以被具体实施为***、方法或者计算机程序产品。因此,本发明实施例的各方面、或各个方面的可能实现方式可以采用完全硬件实施例、完全软件实施例(包括固件、驻留软件等等),或者组合软件和硬件方面的实施例的形式,在这里都统称为“电路”、“模块”或者“***”。此外,本发明实施例的各方面、或各个方面的可能实现方式可以采用计算机程序产品的形式,计算机程序产品是指存储在计算机可读介质中的计算机可读程序代码。
计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质包含但不限于电子、磁性、光学、电磁、红外或半导体***、设备或者装置,或者前述的任意适当组合,如随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或者快闪存储器)、光纤、便携式只读存储器(CD-ROM)。
计算机中的处理器读取存储在计算机可读介质中的计算机可读程序代码,使得处理器能够执行在流程图中每个步骤、或各步骤的组合中规定的功能动作;生成实施在框图的每一块、或各块的组合中规定的功能动作的装置。
计算机可读程序代码可以完全在用户的本地计算机上执行、部分在用户的本地计算机上执行、作为单独的软件包、部分在用户的本地计算机上并且部分在远程计算机上,或者完全在远程计算机或者服务器上执行。也应该注意,在某些替代实施方案中,在流程图中各步骤、或框图中各块所注明的功能可能不按图中注明的顺序发生。例如,依赖于所涉及的功能,接连示出的两个步骤、或两个块实际上可能被大致同时执行,或者这些块有时候可能被以相反顺序执行。
Claims (16)
1.一种多设备间唇音同步方法,用于一个主设备同步输出音频和视频到至少一个从设备中,其特征在于,所述方法包括:
所述从设备接收所述主设备发送的实时控制协议RTCP报文,所述RTCP报文中的实时流分组RTP时间戳头域携带所述主设备周期性采集的节目时钟参考PCR,所述RTCP报文中的网络时间协议NTP域携带所述RTCP报文的发送时间点;
所述从设备根据所述PCR、所述主设备节目时钟频率、所述从设备的节目时钟频率和RTCP时延校正自身的***时钟STC;
所述从设备根据所述主设备发送的组播服务地址和端口接收所述主设备发布的RTP,将所述RTP拼接成完整的音频数据帧,并从所述RTP分组的时间戳头域获取所述音频数据帧对应的显示时间戳PTS,将所述音频数据帧放入所述从设备的音频脉冲编码调制PCM缓存;
所述从设备根据自身的STC和音频数据帧显示时间戳输出所述音频PCM缓存中的音频数据帧;
所述从设备根据所述PCR、所述主设备节目时钟频率、所述从设备的节目时钟频率和RTCP时延校正自身的***时钟STC,包括:
所述从设备根据如下公式计算出所述从设备的STC校正值scr_correct:
scr_correct=scr_srv*scf_clt/scf_srv+(ntp_rcv–ntp_snd)*scf_clt/1000
其中,scf_clt为所述从设备节目时钟频率,scf_srv所述主设备节目时钟频率,ntp_rcv为接收到RTCP报文的时刻,scr_srv和ntp_snd分别为所述PCR和所述RTCP报文的发送时间点;
所述从设备根据计算出的STC校正值校正自身的STC。
2.根据权利要求1所述的方法,其特征在于,所述RTCP报文中携带RTCP会话标识,所述从设备根据所述PCR、所述主设备节目时钟频率、所述从设备的节目时钟频率和RTCP时延校正自身的***时钟STC之前,还包括:
所述从设备向所述主设备发送加入RTCP会话请求,以使所述主设备向所述从设备发送RTCP会话标识。
3.根据权利要求1或2所述的方法,其特征在于,所述从设备接收所述主设备发送的实时控制协议RTCP报文之前,还包括:
所述从设备接收所述主设备发送的媒体描述信息,所述媒体描述信息包括简单网络时间协议SNTP服务地址和端口、RTCP服务地址和端口、所述组播服务地址和端口、所述主设备节目时钟频率、媒体格式和时戳频率;
所述从设备根据所述SNTP服务地址和端口进行***时间同步;
所述从设备接收所述主设备发送的实时控制协议RTCP报文,包括:
所述从设备根据所述RTCP服务地址和端口接收所述主设备发送的RTCP报文。
4.一种多设备间唇音同步方法,用于一个主设备同步输出音频和视频到至少一个从设备中,其特征在于,所述方法包括:
所述主设备根据预设采集周期采集节目时钟参考PCR;
所述主设备在确定满足预设条件时向所述从设备发送实时控制协议RTCP报文,所述RTCP报文中的实时流分组RTP时间戳头域携带所述PCR,所述RTCP报文中的网络时间协议NTP域携带所述RTCP报文的发送时间点,以使所述从设备根据所述PCR、所述主设备节目时钟频率、所述从设备的节目时钟频率和RTCP时延校正所述从设备的***时钟STC;
所述主设备从所述主设备的音频脉冲编码调制PCM缓存中复制出音频数据帧并打包成实时流分组RTP,将所述RTP发布到组播服务地址和端口,所述RTP的时间戳头域携带了所述音频数据帧对应的显示时间戳,用于所述从设备根据所述组播服务地址和端口接收所述RTP。
5.根据权利要求4所述的方法,其特征在于,所述RTCP报文中携带RTCP会话标识,所述主设备在确定满足预设条件时向所述从设备发送实时控制协议RTCP报文之前,还包括:
所述主设备接收所述从设备发送的加入RTCP会话请求,并向所述从设备发送RTCP会话标识。
6.根据权利要求4或5所述的方法,其特征在于,所述主设备根据预设采集周期采集节目时钟参考PCR之前,还包括:
所述主设备向所述从设备发送媒体描述信息,所述媒体描述信息包括简单网络时间协议SNTP服务地址和端口、RTCP服务地址和端口、所述组播服务地址和端口、所述主设备节目时钟频率、媒体格式和时戳频率,所述SNTP服务地址和端口用于所述从设备进行***时间同步,所述RTCP服务地址和端口用于所述从设备根据所述RTCP服务地址和端口接收所述主设备发送的RTCP报文。
7.根据权利要求4或5所述的方法,其特征在于,所述预设条件为:
所述主设备实际采集PCR的时间间隔与所述预设采集周期之间的偏差大于预设阈值。
8.根据权利要求7所述的方法,其特征在于,所述预设阈值为20ms,所述预设条件为:
(scr_curr–scr_last)*1000/scf_srv<(cycle_read_x–20)或
(scr_curr–scr_last)*1000/scf_srv>(cycle_read_x+20);
其中,scr_curr为当前采集时钟值,scr_last为上一个采集时钟值,scf_srv为所述主设备节目时钟频率,cycle_read_x为所述预设采集周期。
9.一种从设备,其特征在于,包括:
第一接收模块,用于接收主设备发送的实时控制协议RTCP报文,所述RTCP报文中的实时流分组RTP时间戳头域携带所述主设备周期性采集的节目时钟参考PCR,所述RTCP报文中的网络时间协议NTP域携带所述RTCP报文的发送时间点;
校正模块,用于根据所述PCR、所述主设备节目时钟频率、所述从设备的节目时钟频率和RTCP时延校正自身的***时钟STC;
第二接收模块,用于根据所述主设备发送的组播服务地址和端口接收所述主设备发布的RTP;
处理模块,用于将所述RTP拼接成完整的音频数据帧,并从所述RTP分组的时间戳头域获取所述音频数据帧对应的显示时间戳PTS,将所述音频数据帧放入所述从设备的音频脉冲编码调制PCM缓存;
输出模块,用于根据自身的STC和音频数据帧显示时间戳输出所述音频PCM缓存中的音频数据帧;
所述校正模块具体用于:
根据如下公式计算出所述从设备的STC校正值scr_correct:
scr_correct=scr_srv*scf_clt/scf_srv+(ntp_rcv–ntp_snd)*scf_clt/1000
其中,scf_clt为所述从设备节目时钟频率,scf_srv所述主设备节目时钟频率,ntp_rcv为接收到RTCP报文的时刻,scr_srv和ntp_snd分别为所述PCR和所述RTCP报文的发送时间点;
根据计算出的STC校正值校正自身的STC。
10.根据权利要求9所述的从设备,其特征在于,所述RTCP报文中携带RTCP会话标识,所述从设备还包括:
发送模块,用于在所述校正模块根据所述PCR、所述主设备节目时钟频率、所述从设备的节目时钟频率和RTCP时延校正自身的***时钟STC之前,向所述主设备发送加入RTCP会话请求,以使所述主设备向所述从设备发送RTCP会话标识。
11.根据权利要求9或10所述的从设备,其特征在于,所述第一接收模块还用于:
在接收所述主设备发送的实时控制协议RTCP报文之前,接收所述主设备发送的媒体描述信息,所述媒体描述信息包括简单网络时间协议SNTP服务地址和端口、RTCP服务地址和端口、所述组播服务地址和端口、所述主设备节目时钟频率、媒体格式和时戳频率;
所述处理模块还用于根据所述SNTP服务地址和端口进行***时间同步;
所述第一接收模块具体用于:根据所述RTCP服务地址和端口接收所述主设备发送的RTCP报文。
12.一种主设备,其特征在于,包括:
采集模块,用于根据预设采集周期采集节目时钟参考PCR;
发送模块,用于在确定满足预设条件时向从设备发送实时控制协议RTCP报文,所述RTCP报文中的实时流分组RTP时间戳头域携带所述PCR,所述RTCP报文中的网络时间协议NTP域携带所述RTCP报文的发送时间点,以使所述从设备根据所述PCR、所述主设备节目时钟频率、所述从设备的节目时钟频率和RTCP时延校正所述从设备的***时钟STC;
处理模块,用于从所述主设备的音频脉冲编码调制PCM缓存中复制出音频数据帧并打包成实时流分组RTP,将所述RTP发布到组播服务地址和端口,所述RTP的时间戳头域携带了所述音频数据帧对应的显示时间戳,用于所述从设备根据所述组播服务地址和端口接收所述RTP。
13.根据权利要求12所述的主设备,其特征在于,所述RTCP报文中携带RTCP会话标识,所述主设备还包括:
接收模块,用于在所述发送模块在确定满足预设条件时向所述从设备发送实时控制协议RTCP报文之前,接收所述从设备发送的加入RTCP会话请求,并向所述从设备发送RTCP会话标识。
14.根据权利要求12或13所述的主设备,其特征在于,所述发送模块还用于:
在所述采集模块根据预设采集周期采集节目时钟参考PCR之前,向所述从设备发送媒体描述信息,所述媒体描述信息包括简单网络时间协议SNTP服务地址和端口、RTCP服务地址和端口、所述组播服务地址和端口、所述主设备节目时钟频率、媒体格式和时戳频率,所述SNTP服务地址和端口用于所述从设备进行***时间同步,所述RTCP服务地址和端口用于所述从设备根据所述RTCP服务地址和端口接收所述主设备发送的RTCP报文。
15.根据权利要求12或13所述的主设备,其特征在于,所述预设条件为:
所述主设备实际采集PCR的时间间隔与所述预设采集周期之间的偏差大于预设阈值。
16.根据权利要求15所述的主设备,其特征在于,所述预设阈值为20ms,所述预设条件为:
(scr_curr–scr_last)*1000/scf_srv<(cycle_read_x–20)或
(scr_curr–scr_last)*1000/scf_srv>(cycle_read_x+20);
其中,scr_curr为当前采集时钟值,scr_last为上一个采集时钟值,scf_srv为所述主设备节目时钟频率,cycle_read_x为所述预设采集周期。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2017/077925 WO2018170852A1 (zh) | 2017-03-23 | 2017-03-23 | 多设备间唇音同步方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109565466A CN109565466A (zh) | 2019-04-02 |
CN109565466B true CN109565466B (zh) | 2020-11-06 |
Family
ID=63584723
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780049030.3A Active CN109565466B (zh) | 2017-03-23 | 2017-03-23 | 多设备间唇音同步方法及设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11146611B2 (zh) |
EP (1) | EP3591908B9 (zh) |
CN (1) | CN109565466B (zh) |
WO (1) | WO2018170852A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE112019006635T5 (de) * | 2019-01-08 | 2021-09-30 | Sony Group Corporation | Empfangsvorrichtung und verfahren, und übertragungsvorrichtung und verfahren |
CN111954050B (zh) * | 2019-05-14 | 2022-08-30 | 福州瑞芯微电子股份有限公司 | 一种多设备间视频同步的方法及*** |
US11394480B2 (en) * | 2019-08-23 | 2022-07-19 | Bose Corporation | Systems and methods for synchronizing device clocks |
US11005585B1 (en) | 2019-12-31 | 2021-05-11 | Juniper Networks, Inc. | Transporting client timing information across a network |
CN113519146B (zh) * | 2020-02-12 | 2023-06-23 | 深圳元戎启行科技有限公司 | 流媒体网络时延确定方法、装置、计算机设备、可读存储介质和远程驾驶*** |
CN112130616B (zh) * | 2020-09-28 | 2022-08-23 | 北京小米松果电子有限公司 | 时钟同步方法、装置及存储介质 |
CN112887773A (zh) * | 2021-01-22 | 2021-06-01 | 昆腾微电子股份有限公司 | 一种音频设备的同步方法及装置 |
CN114827696B (zh) * | 2021-01-29 | 2023-06-27 | 华为技术有限公司 | 一种跨设备的音视频数据同步播放的方法和电子设备 |
CN113613125B (zh) * | 2021-04-26 | 2024-07-09 | 珠海市杰理科技股份有限公司 | 音频同步控制方法、装置及音频设备、*** |
CN113676470B (zh) * | 2021-08-17 | 2023-02-07 | 维沃移动通信有限公司 | 获取rtcp报告信息的方法和装置 |
CN115801859B (zh) * | 2022-11-10 | 2024-06-04 | 广东美的智能科技有限公司 | 组态设备之间的连接方法、工业控制装置和*** |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102421035A (zh) * | 2011-12-31 | 2012-04-18 | 青岛海信宽带多媒体技术有限公司 | 数字电视音视频同步的实现方法及装置 |
CN102547299A (zh) * | 2010-12-30 | 2012-07-04 | 福建星网视易信息***有限公司 | 基于mpeg-2视频流的音视频同步控制方法 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3255308B2 (ja) | 1992-12-18 | 2002-02-12 | ソニー株式会社 | データ再生装置 |
US5486864A (en) | 1993-05-13 | 1996-01-23 | Rca Thomson Licensing Corporation | Differential time code method and apparatus as for a compressed video signal |
JPH11261958A (ja) | 1998-03-09 | 1999-09-24 | Sony Corp | 映像編集装置及び映像編集方法 |
US20030066094A1 (en) * | 2001-09-29 | 2003-04-03 | Koninklijke Philips Electronics N.V. | Robust method for recovering a program time base in MPEG-2 transport streams and achieving audio/video sychronization |
US7657645B2 (en) * | 2004-02-05 | 2010-02-02 | Sharp Laboratories Of America, Inc. | System and method for transporting MPEG2TS in RTP/UDP/IP |
CN1286314C (zh) | 2004-08-05 | 2006-11-22 | 联合信源数字音视频技术(北京)有限公司 | 视频解码***中保持显示同步的方法及其装置 |
CN101036389B (zh) * | 2004-09-02 | 2012-05-02 | 索尼株式会社 | 内容接收器、视频/音频输出定时控制方法和内容提供*** |
US8068515B2 (en) * | 2005-06-22 | 2011-11-29 | Cisco Technology, Inc. | Faster multimedia synchronization of broadcast streams using router caching of RTCP packets |
US20070047590A1 (en) | 2005-08-26 | 2007-03-01 | Nokia Corporation | Method for signaling a device to perform no synchronization or include a synchronization delay on multimedia stream |
CN100442858C (zh) * | 2005-10-11 | 2008-12-10 | 华为技术有限公司 | 分组网络中多媒体实时传输的唇同步方法及其装置 |
CN101438256B (zh) * | 2006-03-07 | 2011-12-21 | 索尼株式会社 | 信息处理设备、信息通信***、信息处理方法 |
CN101179484A (zh) | 2006-11-09 | 2008-05-14 | 华为技术有限公司 | 一种不同媒体流间的同步方法及*** |
CN101123611B (zh) | 2007-09-25 | 2012-05-23 | 中兴通讯股份有限公司 | 一种流媒体数据的发送方法 |
CN100579238C (zh) * | 2008-02-22 | 2010-01-06 | 上海华平信息技术股份有限公司 | 音视频缓存同步播放的方法 |
EP2254342A1 (de) * | 2009-05-18 | 2010-11-24 | Albis Technologies AG | Verfahren zur Audio-/Videosynchronisation |
CN101710997A (zh) | 2009-11-04 | 2010-05-19 | 中兴通讯股份有限公司 | 基于mpeg-2***实现视、音频同步的方法及*** |
CN101848396B (zh) | 2009-11-30 | 2012-10-17 | 深圳市华曦达科技股份有限公司 | 传输流音视频同步及防抖动方法 |
CN102665141B (zh) * | 2012-05-16 | 2014-04-09 | 哈尔滨工业大学深圳研究生院 | 一种基于rtp封装的avs音视频预同步方法 |
CN103888813A (zh) | 2012-12-21 | 2014-06-25 | 北京计算机技术及应用研究所 | 一种音视频同步的实现方法及*** |
US9978395B2 (en) * | 2013-03-15 | 2018-05-22 | Vocollect, Inc. | Method and system for mitigating delay in receiving audio stream during production of sound from audio stream |
WO2015004131A1 (en) * | 2013-07-09 | 2015-01-15 | Koninklijke Kpn N.V. | Synchronized data processing between receivers |
CN103428584A (zh) | 2013-08-01 | 2013-12-04 | 珠海全志科技股份有限公司 | 多媒体播放平台上保持音视频同步的方法及设备 |
WO2015105391A1 (en) * | 2014-01-13 | 2015-07-16 | Lg Electronics Inc. | Apparatuses and methods for transmitting or receiving a broadcast content via one or more networks |
EP3226570A1 (en) * | 2016-03-31 | 2017-10-04 | Thomson Licensing | Synchronizing audio and video signals rendered on different devices |
-
2017
- 2017-03-23 US US16/496,306 patent/US11146611B2/en active Active
- 2017-03-23 EP EP17902312.2A patent/EP3591908B9/en active Active
- 2017-03-23 CN CN201780049030.3A patent/CN109565466B/zh active Active
- 2017-03-23 WO PCT/CN2017/077925 patent/WO2018170852A1/zh unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102547299A (zh) * | 2010-12-30 | 2012-07-04 | 福建星网视易信息***有限公司 | 基于mpeg-2视频流的音视频同步控制方法 |
CN102421035A (zh) * | 2011-12-31 | 2012-04-18 | 青岛海信宽带多媒体技术有限公司 | 数字电视音视频同步的实现方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2018170852A1 (zh) | 2018-09-27 |
CN109565466A (zh) | 2019-04-02 |
EP3591908A4 (en) | 2020-01-08 |
US20200099734A1 (en) | 2020-03-26 |
US11146611B2 (en) | 2021-10-12 |
EP3591908B9 (en) | 2022-04-06 |
EP3591908B1 (en) | 2022-02-09 |
EP3591908A1 (en) | 2020-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109565466B (zh) | 多设备间唇音同步方法及设备 | |
JP7120997B2 (ja) | オーディオとビデオのマルチモード同期レンダリング | |
CN111147907B (zh) | 多智能终端同步播放的方法、装置、***及智能终端 | |
US20210067874A1 (en) | Method, device, loudspeaker equipment and wireless headset for playing audio synchronously | |
US8155157B2 (en) | Method and apparatus for synchronizing applications of terminals in communication network | |
JP2019024214A (ja) | 再生同期 | |
KR20210032988A (ko) | 수신기들로의 협정 세계시의 일방향 시간 전송을 위한 브로드캐스트 물리적 계층의 이용 | |
CN105656616B (zh) | 多设备间数据同步的方法、装置、发送端及接收端 | |
US10595075B2 (en) | Automatic timing of production devices in an internet protocol environment | |
AU2013217470A1 (en) | Method and apparatus for converting audio, video and control signals | |
CN111629158B (zh) | 一种音频流和视频流同步切换方法及装置 | |
US20130063659A1 (en) | Transmitting device, receiving device, communication system, transmission method, reception method, and program | |
JP7247707B2 (ja) | 送信ノード、放送局システム、制御ノード及び送信制御方法 | |
JP2015056732A (ja) | 無線通信システム、無線通信方法、プログラム、及び記録媒体 | |
US10805664B2 (en) | Wireless audio synchronization | |
JP2018182617A (ja) | 情報処理装置、情報処理方法、プログラム、および記録媒体製造方法 | |
CN114554242B (zh) | 直播方法和可读存储介质 | |
CN112564837B (zh) | 多路数据流同步方法及多路数据流同步的逐级传输*** | |
CN116455497B (zh) | 移动通信网络与电视广播网络的计时同步方法装置、电子设备及计算机可读存储介质 | |
JP7334442B2 (ja) | 放送信号処理システム及び放送信号処理方法 | |
JP7247706B2 (ja) | 送信ノード、放送局システム、制御ノード及び送信制御方法 | |
JP2010183237A (ja) | コンテンツ同期再生システム、コンテンツ同期再生方法、再生端末、再生端末の制御方法、及び制御プログラム | |
US20220360845A1 (en) | Reception apparatus, reception method, and transmission and reception system | |
JP2013065958A (ja) | パケット伝送システムおよび方法 | |
JP2008283300A (ja) | 受信装置 |
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 |