音视频同步方法、系统及手机直播客户端的制作方法

文档序号:7779097阅读:225来源:国知局
专利名称:音视频同步方法、系统及手机直播客户端的制作方法
技术领域
本发明涉及流媒体技术领域,特别地,涉及一种音视频同步方法、系统及手机直播客户端。
背景技术
据Yankee估计亚太移动互联网2010-2012年最具潜力的四大应用包括手机视频、手机音乐、手机图片和手机广告。随着3G网络的规模化商用,无线网络传输带宽大幅提升,手机终端处理能力不断增强,基于手机终端进行音视频直播已成功实现。该功能可以满足用户进行即时互动与场景分享的需求,并极有可能成为未来移动互联网的杀手级应用。在手机直播中,音频默认设置为每帧的时间长度为20ms,视频默认设置为每帧的时间长度为100ms。但由于手机摄像头采集视频的信息量会不断发生变化,因而不会严格按照设置输出视频数据,直播启动后,稍过一段时间就会出现音频和视频不同步的现象。现有手机流媒体同步技术主要针对互联网视频点播,也有通过比较音视频单元的时间标签来调整视频播放帧率以实现音视频同步,但全部都在接收端进行处理,需在接收端中开辟缓冲区,增加了接收终端的资源消耗;此外,还需采用专用的音视频播放器,因而增加了用户业务的使用门槛。

发明内容
本发明要解决的一个技术问题是提供一种音视频同步方法、系统及手机直播客户端,能够实现手机直播的音视频同步。根据本发明的一方面,提出了一种音视频同步方法,包括手机直播客户端实时采集音视频数据;根据起始码分离音频数据和视频数据,实时更新当前音频总帧数、当前视频总帧数、当前音频总时长和当前视频总时长,并根据当前视频帧时间长度和设置的音频帧时间长度为分离出的每个视频帧和每个音频帧打上发送时间戳,并存储每个视频帧的当前视频帧时间长度和每个音频帧的音频帧时间长度;判断当前音频总帧数是否达到预定帧数,如果达到,则判断当前音频总时长与当前视频总时长之差的绝对值是否大于预定时间门限,如果大于,则进一步判断当前音频总时长与当前视频总时长的关系;在当前音频总时长大于当前视频总时长的情况下,增大当前视频帧时间长度,在当前音频总时长小于当前视频总时长的情况下,减小当前视频帧时间长度;手机直播客户端通过流媒体分发装置将每个音频帧、每个视频帧、每个音频帧的发送时间戳、每个视频帧的发送时间戳以及每个音频帧的音频帧时间长度和每个视频帧的当前视频帧时间长度发送至音视频播放器,以根据发送时间戳、每个音频帧的音频帧时间长度和每个视频帧的当前视频帧时间长度实现音频数据与视频数据的同步播放。根据本发明的另一方面,还提出了一种手机直播客户端,包括采集单元,用于实时采集音视频数据;数据搜索单元,与采集单元相连,用于根据起始码分离音频数据和视频数据,实时更新当前音频总帧数、当前视频总帧数、当前音频总时长和当前视频总时长,并根据当前视频帧时间长度和设置的音频帧时间长度为分离出的每个视频帧和每个音频帧打上发送时间戳,并存储每个视频帧的当前视频帧时间长度和每个音频帧的音频帧时间长度;音视频同步单元,与数据搜索单元相连,用于判断当前音频总帧数是否达到预定帧数,如果达到,则判断当前音频总时长与当前视频总时长之差的绝对值是否大于预定时间门限,如果大于,则进一步判断当前音频总时长与当前视频总时长的关系,在当前音频总时长大于当前视频总时长的情况下,增大当前视频帧时间长度,在当前音频总时长小于当前视频总时长的情况下,减小当前视频帧时间长度;数据传送单元,与数据搜索单元相连,用于通过流媒体分发装置将每个音频帧、每个视频帧、每个音频帧的发送时间戳、每个视频帧的发送时间戳以及每个音频帧的音频帧时间长度和每个视频帧的当前视频帧时间长度发送至音视频播放器,以根据发送时间戳、每个音频帧的音频帧时间长度和每个视频帧的当前视频帧时间长度实现音频数据与视频数据的同步播放。根据本发明的又一方面,还提出了一种音视频同步系统,包括流媒体分发装置、音视频播放器和手机直播客户端,其中,流媒体分发装置,通过网络与手机直播客户端相连,用于接收并转发每个音频帧、每个视频帧、每个音频帧的发送时间戳、每个视频帧的发送时间戳以及每个音频帧的音频帧时间长度和每个视频帧的当前视频帧时间长度;音视频播放器,通过网络与流媒体分发装置相连,用于对音视频数据进行接收、解码和播放。本发明提供的音视频同步方法、系统及手机直播客户端,以固定的音频帧时间长度为参考,直接在发起方的手机直播客户端中比较音视频总时长差,根据音视频总时长差调整当前视频帧时间长度,进而控制接收方的音视频播放器播放每个视频帧的起始时间和每个视频帧播放的持续时间,达到音视频同步的目的。此外,本发明的音视频同步在发起方的手机直播客户端中进行处理,无需对接收方播放器进行任何改动。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分。在附图中:图1是本发明音视频同步方法的一个实施例的流程示意图。图2是本发明音视频同步方法的另一实施例的流程示意图。图3是本发明数据搜索过程的一个实例的流程示意图。图4是本发明音视频同步过程的一个实施例的流程示意图。图5是本发明手机直播客户端的一个实施例的结构示意图。图6是本发明音视频同步系统的一个实施例的结构示意图。图7是本发明首视频同步系统的另一实施例的结构不意图。
具体实施例方式下面参照附图对本发明进行更全面的描述,其中说明本发明的示例性实施例。本发明的示例性实施例及其说明用于解释本发明,但并不构成对本发明的不当限定。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。本发明的下述实施例以音频帧时间长度为基准,根据当前音频总时长与当前视频总时长的差值控制对当前视频帧时间长度的调整,以达到音视频同步的目的。图1是本发明音视频同步方法的一个实施例的流程示意图。如图1所示,可以包括以下步骤:S102,手机直播客户端实时采集音视频数据;S104,由于音频帧与视频帧具有不同的起始码,所以可以根据起始码从采集的音视频数据文件中分离出音频数据和视频数据,根据分离出的音频帧和视频帧数实时更新当前音频总帧数和当前视频总帧数,根据当前音频总帧数、当前视频总帧数、音频帧时间长度(为固定,不更新)和当前视频帧时间长度(随时间更新,具体更新算法参见下述S106和S108)更新当前音频总时长和当前视频总时长,并根据当前视频帧时间长度和设置的音频帧时间长度为分离出的每个视频帧和每个音频帧打上发送时间戳,并存储每个视频帧的当前视频帧时间长度和每个音频帧的音频帧时间长度;S106,判断当前音频总帧数是否达到预定帧数(例如,500帧的倍数),如果达到,则判断当前音频总时长与当前视频总时长之差的绝对值是否大于预定时间门限,否则不进行当前视频帧时间长度的调整,如果当前音频总时长与当前视频总时长之差的绝对值大于预定时间门限,则进一步判断当前音频总时长与当前视频总时长的关系,否则也不进行当前音视频时间长度的调整(即,认为当前处于同步状态),其中,预定时间门限可以为3秒,但并不限于此,可以根据人的视觉感受进行调整;S108,在当前音频总时长大于当前视频总时长的情况下,即,当前音频较视频超前,所以可以增大当前视频帧时间长度以增大视频帧总时长、缩短音频与视频的总时长差,进而达到同步的效果;在当前音频总时长小于当前视频总时长的情况下,即,视频较音频超前,所以可以减小当前视频巾贞时间长度以减小视频巾贞总时长、缩短首频与视频的总时长差,进而达到同步的效果;在更新完当前视频帧时间长度后,S104步骤中新分离出的视频帧将采用S108更新后的当前视频帧时间长度;S110,手机直播客户端通过流媒体分发装置将每个音频帧、每个视频帧、每个音频帧的发送时间戳、每个视频帧的发送时间戳以及每个音频帧的音频帧时间长度和每个视频帧的当前视频帧时间长度发送至音视频播放器,以根据发送时间戳、每个音频帧的音频帧时间长度和每个视频帧的当前视频帧时间长度实现音频数据与视频数据的同步播放。该实施例以固定的音频帧时间长度为参考,直接在发起方的手机直播客户端中比较音视频总时长差,根据音视频总时长差调整当前视频帧时间长度,进而控制接收方的音视频播放器播放每个视频帧的起始时间和每个视频帧播放的持续时间,达到音视频同步的目的。此外,本发明的音视频同步在发起方的手机直播客户端中进行处理,无需对接收方播放器进行任何改动。其中,在步骤S106中,如果未采集到视频数据或音频数据,则不对当前视频帧时间长度进行调整。此外,手机直播客户端所采用的编码方式与接收方的音视频播放器所采用的编码方式可能不同,如果不同,可以由流媒体分发装置实现编码方式的转换。具体地,在发起方与接收方的编码方式不同时,流媒体分发装置首先对来自发起方的音视频数据进行解码,然后再根据接收方的编码方式进行相应的编码处理,从而使得接收方只要使用普通的音视频播放器就能够接收发起方的手机直播媒体流。
图2是本发明音视频同步方法的另一实施例的流程示意图。如图2所示,可以包括以下步骤:S202,手机直播客户纟而启动手机自带摄像头和声首米集设备,输出首视频数据,生成音视频数据文件;S204,手机直播客户端从音视频数据文件中读取音视频数据,进行音视频数据的搜索和同步处理,具体的搜索过程参见下述图3的流程,同步过程参见下述图4的流程;S206,手机直播客户端根据建立的索引发送音视频数据到流媒体分发装置,同时传递每个视频帧的当前视频帧时间长度vd值,其中,索引表可以包括音频索引表和视频索引表,音频索引表可以包括每个音频帧的帧号、每个音频帧的发送时间戳(由帧号和音频帧时间长度联合确定)、每个音频帧时间长度(在本申请中作为参考值,固定不变);视频索引表可以包括每个视频帧的帧号、每个视频帧的发送时间戳(由帧号和当前视频帧时间长度联合确定)、每个视频帧的当前视频帧时间长度;S208,如果发起方与接收方的编码方式不同,流媒体分发装置还对接收到的音视频数据进行转码处理,转码后再进行分发处理,同时,利用标准流媒体协议将当前视频帧时间长度vd值作为视频帧播放持续时间转发;S210,音视频播放器接收音视频数据和同步控制参数,并根据同步控制参数控制视频帧播放的持续时间,以达到音视频同步的效果。图3是本发明数据搜索过程的一个实例的流程示意图。如图3所示,可以包括以下步骤:S302,从音视频数据文件中读取音视频数据,并分别填充到对应的缓存区内,初始化当前音频总巾贞数ac = O,当前视频总巾贞数vc = O,当前音频总时长at = O,当前视频总时长 vt = O ;S304,根据数据帧的起始码分别查找音视频帧,例如,MPEG4格式的视频间隔位(即,视频起始码)为:000001B6,AMR (Adaptive Mult1-Rate)格式的音频间隔位(即,音频起始码)为:3C ;S306,对查找到的当前数据帧进行判断,如果为音频帧,则转步骤S308,如果为视频帧,则转步骤S310 ;S308,获取当前音频帧时间长度ad值,在本发明中ad值固定不变,可以设置为20ms,转 S312 ;S310,从下述图4的同步算法中获取当前视频帧时间长度vd值,该值可能会被调整,具体调整方法参见图4所示的流程,可以将初始vd值设置为100ms,转S314 ;S312,设置每个音频帧在整个音频数据中的偏移量、大小,根据ad值设置时间戳,相关信息记入音频索引表,转S316 ;S314,设置每个视频帧在整个视频数据中的偏移量、大小,根据vd值设置时间戳,相关信息记入视频索引表,转S318 ;S316,当前音频总巾贞数ac = ac+Ι,当前音频总时长at = at+ad ;S318,当前视频总巾贞数vc = vc+Ι,当前视频总时长vt = vt+vd ;S320,判断缓存区是否为空,如果为空,转步骤S302,如果不为空,则转步骤S304。图4是本发明音视频同步过程的一个实施例的流程示意图。
如图4所示,可以包括以下步骤:S402,初始化视频帧时间长度迭代参数needCalc = 0,初始化临时变量:音频时长Iat = O,视频巾贞数Ivc = O,音视频总时长差diff = O,音频时间差atdiff = O,视频包差vcdiff = O ;S404,从图3的流程中获取当前音频总巾贞数ac、当前视频总巾贞数vc、当前音频总时长at、当前视频总时长vt等数据值;S406, η=向下取整(ac/500),将η与迭代参数needCalc值进行比较,如果η比needCalc大1,则转步骤S408,否则转步骤S404,即,在当前音频总帧数为500的倍数时,转步骤S408,否则转步骤S404 ;S408,更新迭代参数 needCalc = η ;S410,如果无音频帧或无视频帧,则转S404,否则,转S412 ;S412,计算音视频总时长差 diff = ac * ad_vt, atdiff = ac * ad-lat, vcdiff=vc-lvc, vd = atdiff/vcdiff, Ivc = vc, Iat = ac * ad ;S414,假设预定时间门限为3秒,判断音视频总时长差是否大于预定时间门限,如果小于预定时间门限,则不对vd进行调整并转S404,否则,在音频总时长比视频总时长大3秒的情况下转步骤S416,在视频总时长比音频总时长大3秒的情况下转步骤S418 ;S416,计算vd值,vd = vd+(diff-3000) /300,以平滑地实现音视频同步;S418,计算vd值,vd = vd+(diff+3000) /300,以平滑地实现音视频同步;S420,更新并输出当前视频帧时间长度vd。本领域普通技术人员可以理解,实现上述方法实施例的全部和部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算设备可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤,而前述的存储介质可以包括ROM、RAM、磁碟和光盘等各种可以存储程序代码的介质。图5是本发明手机直播客户端的一个实施例的结构示意图。如图5所示,该实施例的客户端500可以包括:采集单元502,用于实时采集音视频数据;数据搜索单元504,与采集单元相连,用于根据起始码分离音频数据和视频数据,实时更新当前音频总帧数、当前视频总帧数、当前音频总时长和当前视频总时长,并根据当前视频帧时间长度和设置的音频帧时间长度为分离出的每个视频帧和每个音频帧打上发送时间戳,并存储每个视频帧的当前视频帧时间长度和每个音频帧的音频帧时间长度;音视频同步单元506,与数据搜索单元相连,用于判断当前音频总帧数是否达到预定帧数,如果达到,则判断当前音频总时长与当前视频总时长之差的绝对值是否大于预定时间门限,如果大于,则进一步判断当前音频总时长与当前视频总时长的关系,在当前音频总时长大于当前视频总时长的情况下,增大当前视频帧时间长度,在当前音频总时长小于当前视频总时长的情况下,减小当前视频帧时间长度,其中,预定时间门限可以为3秒;数据传送单元508,与数据搜索单元相连,用于通过流媒体分发装置将每个音频帧、每个视频帧、每个音频帧的发送时间戳、每个视频帧的发送时间戳以及每个音频帧的音频帧时间长度和每个视频帧的当前视频帧时间长度发送至音视频播放器,以根据发送时间戳、每个音频帧的音频帧时间长度和每个视频帧的当前视频帧时间长度实现音频数据与视频数据的同步播放。图6是本发明音视频同步系统的一个实施例的结构示意图。如图6所示,该实施例的系统600可以包括:手机直播客户端602,可以部署在支持音视频获取功能的手机终端上、计算机或其它具备上网功能的智能终端上,提供音视频采集、编码和上传的功能,实现音视频数据的实时采集、实时上传,进行音视频数据搜索和同步处理,并将调整后的当前视频帧时间长度发送给流媒体分发装置,具体地可以通过图5所示的实施例实现;流媒体分发装置604,通过网络与手机直播客户端相连,用于接收、存储并转发每个音频帧、每个视频帧、每个音频帧的发送时间戳、每个视频帧的发送时间戳以及每个音频帧的音频帧时间长度和每个视频帧的当前视频帧时间长度;具体地,流媒体分发装置可以包括数据接收单元、流媒体分发单元,其中,数据接收单元实时接收手机直播客户端发送的流数据和传递的当前视频帧时间长度Vd值,将接收的流数据保存为规定格式的流媒体文件,存储到文件系统中相关位置,供观者点播观看;流媒体分发单元实时将数据接收单元接收到的流数据向所有接收者的音视频播放器转发,并利用标准流媒体协议将当前视频帧时间长度vd值作为视频帧播放持续时间转发;音视频播放器606,通过网络与流媒体分发装置相连,用于对音视频数据进行接收、解码和播放,具体地,该音视频播放器可以是具备上网功能的各类终端上使用的通用的音视频播放器。该实施例以固定音频帧时间长度为参考,手机直播客户端通过比较音视频总时长差来调整视频帧时间长度,进而控制视频的发送帧率和接收方音视频播放器播放每个视频帧的持续时间,达到音视频同步的目的。其中,在手机直播客户端与音视频播放器采用不同编码方式时,流媒体分发装置还用于实现编码方式的转换。相应地,手机直播客户端还包括音视频编码单元,用于对完成音视频同步处理的音视频数据进行实时编码。图7是本发明首视频同步系统的另一实施例的结构不意图。如图7所示,与图6中的实施例相比,该实施例的系统700还可以包括:直播管理服务器702,通过网络与手机直播客户端、流媒体分发装置和音视频播放器相连,用于接收手机直播客户端发起的直播请求、并分配流媒体分发资源,还管理为手机直播客户端提供的直播频道地址。具体地,直播管理服务器可以包括业务鉴权单元、媒体分发调度单元、直播频道地址管理单元,其中,业务鉴权单元审核手机直播客户端是否具有直播权限以及可以获得的媒体分发能力,审核接收方是否具有收看直播内容的权限;媒体分发调度单元与流媒体分发装置协商,为手机直播客户端提供所需的媒体分发服务能力(包括传输带宽、传输时间等);直播频道地址管理单元维护和解析直播频道地址,并为音视频播放器重定向到手机直播源所在的位于流媒体分发装置上的某服务器地址。相应地,手机直播客户端还可以包括:通信单元,用于与直播管理服务器协商所需的媒体分发能力。本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同和相似的部分可以相互参见。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处可以参见方法实施例部分的说明。虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员应该理解,可在不脱离本发明的范围和精神的情况下,对以上实施例进行修改。本发明的范围由所附权利要求来限定。
权利要求
1.一种音视频同步方法,其特征在于,包括: 手机直播客户端实时采集音视频数据; 根据起始码分离音频数据和视频数据,实时更新当前音频总帧数、当前视频总帧数、当前音频总时长和当前视频总时长,并根据当前视频帧时间长度和设置的音频帧时间长度为分离出的每个视频帧和每个音频帧打上发送时间戳,并存储每个视频帧的当前视频帧时间长度和每个音频帧的音频帧时间长度; 判断当前音频总帧数是否达到预定帧数,如果达到,则判断当前音频总时长与当前视频总时长之差的绝对值是否大于预定时间门限,如果大于,则进一步判断当前音频总时长与当前视频总时长的关系; 在当前音频总时 长大于当前视频总时长的情况下,增大当前视频帧时间长度,在当前音频总时长小于当前视频总时长的情况下,减小当前视频帧时间长度; 所述手机直播客户端通过流媒体分发装置将每个音频帧、每个视频帧、每个音频帧的发送时间戳、每个视频帧的发送时间戳以及每个音频帧的音频帧时间长度和每个视频帧的当前视频帧时间长度发送至音视频播放器,以根据发送时间戳、每个音频帧的音频帧时间长度和每个视频帧的当前视频帧时间长度实现音频数据与视频数据的同步播放。
2.根据权利要求1所述的音视频同步方法,其特征在于,所述方法还包括: 在未采集到视频数据或音频数据的情况下不对当前视频帧时间长度进行调整。
3.根据权利要求1所述的音视频同步方法,其特征在于,所述方法还包括: 在所述手机直播客户端与所述音视频播放器采用不同编码方式时,由所述流媒体分发装置实现编码方式的转换。
4.根据权利要求1所述的音视频同步方法,其特征在于,所述预定时间门限为3秒。
5.一种手机直播客户端,其特征在于,包括, 采集单元,用于实时采集音视频数据; 数据搜索单元,与所述采集单元相连,用于根据起始码分离音频数据和视频数据,实时更新当前音频总帧数、当前视频总帧数、当前音频总时长和当前视频总时长,并根据当前视频帧时间长度和设置的音频帧时间长度为分离出的每个视频帧和每个音频帧打上发送时间戳,并存储每个视频帧的当前视频帧时间长度和每个音频帧的音频帧时间长度; 音视频同步单元,与所述数据搜索单元相连,用于判断当前音频总帧数是否达到预定帧数,如果达到,则判断当前音频总时长与当前视频总时长之差的绝对值是否大于预定时间门限,如果大于,则进一步判断当前音频总时长与当前视频总时长的关系,在当前音频总时长大于当前视频总时长的情况下,增大当前视频帧时间长度,在当前音频总时长小于当前视频总时长的情况下,减小当前视频帧时间长度; 数据传送单元,与所述数据搜索单元相连,用于通过流媒体分发装置将每个音频帧、每个视频帧、每个音频帧的发送时间戳、每个视频帧的发送时间戳以及每个音频帧的音频帧时间长度和每个视频帧的当前视频帧时间长度发送至音视频播放器,以根据发送时间戳、每个音频帧的音频帧时间长度和每个视频帧的当前视频帧时间长度实现音频数据与视频数据的同步播放。
6.根据权利要求5所述的手机直播客户端,其特征在于,所述预定时间门限为3秒。
7.一种音视频同步系统,其特征在于,包括流媒体分发装置、音视频播放器和权利要求5或6所述的手机直播客户端,其中, 所述流媒体分发装置,通过网络与所述手机直播客户端相连,用于接收并转发每个音频帧、每个视频帧、每个音频帧的发送时间戳、每个视频帧的发送时间戳以及每个音频帧的音频帧时间长度和每个视频帧的当前视频帧时间长度; 所述音视频播放器,通过网络与所述流媒体分发装置相连,用于对音视频数据进行接收、解码和播放。
8.根据权利要求7所述的音视频同步系统,其特征在于,在所述手机直播客户端与所述音视频播放器采用不同编码方式时,所述流媒体分发装置还用于实现编码方式的转换。
9.根据权利要求7所述的音视频同步系统,其特征在于,所述系统还包括: 直播管理服务器,通过网络与所述手机直播客户端、所述流媒体分发装置和所述音视频播放器相连 ,用于接收所述手机直播客户端发起的直播请求、并分配流媒体分发资源。
全文摘要
本发明公开了一种音视频同步方法、系统及手机直播客户端。其中,该方法包括实时采集音并分离视频数据,为分离出的每个视频帧和每个音频帧打上发送时间戳,并存储每个视频帧的当前视频帧时间长度和每个音频帧的音频帧时间长度;判断当前音频总帧数是否达到预定帧数,如果达到,则判断当前音频总时长与当前视频总时长之差的绝对值是否大于预定时间门限,如果大于,则进一步判断当前音频总时长与当前视频总时长的关系;在当前音频总时长大于当前视频总时长的情况下,增大当前视频帧时间长度,在当前音频总时长小于当前视频总时长的情况下,减小当前视频帧时间长度;将音视频数据和同步控制参数发送至音视频播放器,以实现音视频的同步播放。
文档编号H04N21/462GK103167320SQ20111041875
公开日2013年6月19日 申请日期2011年12月15日 优先权日2011年12月15日
发明者嵇正鹏, 汪敏娟, 袁海, 胡仲刚 申请人:中国电信股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1