一种P2P系统中音视频数据的同步方法,其特征在于,所述方法包括下述步骤: 发布端对音频数据和视频数据进行同步调整,编码生成流媒体数据包; 播放端获取所述流媒体数据包后,对流媒体数据包进行解析和解压缩,按时间片同步解码播放流媒体数据包中的音频数据和视频数据。
【技术实现步骤摘要】
本专利技术属于流士某体传输领域,尤其涉及一种P2P系统中音视频数据的同步 方法。
技术介绍
流々某体(Stream Media)是指采用流式传输的方式在Internet/Intranet插-i文 的媒体格式,如音频、视频或多媒体文件。流媒体在播放前并不下载整个文件, 只将开始部分内容存入内存,在计算机中对数据包进行緩存并使流媒体数据正 确地输出。流式传输主要指将整个音频和视频及三维媒体等多媒体文件经过特 定的压缩方式解析成一个个压缩包,由视频服务器向用户计算机顺序或实时传 送。在采用流式传输方式的系统中,用户不必像采用下载方式那样等到整个文 件全部下载完毕,而是只需经过几秒或几十秒的启动延时即可在用户的计算机 上利用解压设备对压缩的多媒体文件解压后进行播放和观看。此时多媒体文件 的剩余部分将在后台的服务器内继续下载。与单纯的下载方式相比,这种对多 ^某体文件边下载边^入的流式传输方式不仅使启动延时大幅度地缩短,而且对 系统緩存容量的需求也大大降低,极大地减少用户用在等待的时间。目前,流 媒体技术已经广泛应用在互联网领域中。与客户端/服务器(C/S)方式不同,点对点(PeertoPeer, P2P )是指网络 中任何两个用户节点之间通讯,不再通过传统的服务器进行中转,而是在两个 节点之间建立直连通道,直接传输数据。在P2P系统中实现流媒体传输时,其中的一个重要技术难点就是如何保证 视频、音频数据的同步传输,并在网络环境不稳定的情况下,能继续保证视频、 音频数据的同步,使得播放端的用户能看到高质量的同步的音视频节目。在C/S系统中,由于流媒体数据由服务器统一进行周转,所以在数据的流畅性、完整性方面可以由服务器控制。但在P2P方式下,由于数据本身是由客户端到客户端来传递的,所以这些流i某体数据将更容易出现数据的不可控和不能及时达到等情况。在现有的P2P系统中, 一般都直接采用了现有的流媒体技术,即在播放方 面并不关心使用了哪种编码器或者解码器,而是将在流i某体技术下的视频、音 频数据同步直接交给对应的播放器软件本身来处理。这种方式在前期可以减少 系统开发的难度,但是系统的后期开发将受制于播放器软件中的编码器和解码时,对于编码器解码失败或者编码中有错误的节目无法调节。
技术实现思路
本专利技术的目的在于提供一种P2P系统中视音频数据的同步方法,旨在解决 现有P2P系统由于采用现有的流媒体播放器软件解决视、音频数据的同步,造 成系统的后期开发受^番放器软件中的编码器和解码器的影响较大,节目的编解 码难以优化的问题。本专利技术是这样实现的, 一种P2P系统中音视频数据的同步方法,所述方法 包括下述步骤发布端对音频数据和视频数据进行同步调整,编码生成流媒体数据包;播放端获取所述流媒体数据包后,对流媒体数据包进行解析和解压缩,按 时间片同步解码播放流媒体数据包中的音频数据和视频数据。发布端对音频数据和视频数据进行同步调整时,对于在现场采集的流媒体 数据,将音频数据和视频数据分为不同长度的流媒体数据信息,同时根据参考 时钟生成音频数据和视频数据的时间信息,将音频数据和视频数据打上时间戳。发布端对音频数据和视频数据进行同步调整时,对于现场采集的数据,采用采集时间戳;对于非现场采集的数据,提取媒体文件中的时间戳。播放端对音频数据队列中的音频数据进行播放时,将音频数据的时间戳与 参考时钟的当前时间对比,当音频数据已经到播放时间时解码播放音频数据。播放端对岸见频数据队列中的视频数据进行播放时,将视频数据的时间戳与 当前正在播放的音频数据的时间戳进行对比,当同时的音频数据播放时,同步 播放该视频数据。所述按时间片同步解码播放流媒体数据包中的音频数据和视频数据的步骤具体为6.1判断获取的P2P流媒体数据包是否与上一个P2P流媒体数据包连续, 是则执行步骤6.3,否则执行步骤6.2;6.2设置視频数据解码为删除P帧模式,并继续执行步骤6.3;6.3根据流媒体数据包中的流媒体数据小包的包头判断该流媒体数据小包 是否是视频数据,是则执行步骤6.5,否则执行步骤6.4;6.4将该流々某体数据小包进行音频解码,并将解码后的数据加入音频播放队列;6.5判断是否为删除P帧模式,是则执行步骤6.7,否则执行步骤6.6; 6.6判断当前的视频播放是否为加快模式,是则执行步骤6.7,否则执行步 骤6.8;6.7判断数据包是否为I帧,是则执行步骤6.8,否则执行步骤6.9;6.8将该流媒体数据小包进行视频解码,并将解码后的数据加入视频播放队列;6.9丟弃该流媒体数据小包,并把带有时间戳的空数据加入视频播放队列。 所述按时间片同步解码播放流媒体数据包中的音频数据和视频数据的步骤 具体为7.1判断当前播放的视频数据的时间戳与当前播放的音频数据的时间戳的 差是否大于设置的阈值,是则执行步骤7.2,否则执行步骤7.4;7.2判断当前视频数据的播放模式是否为快进播放模式,是则执行步骤7.3,否则执行步骤7.7;7.3通知一见频解码线程取消快进播放模式;7.4判断当前播放的音频数据的时间戳与当前播放的视频数据的时间戳的 差是否大于设置的阈值,是则执行步骤7.5,否则执行步骤7.7;7.5判断当前视频数据的播放模式是否为快进播放模式,是则执行步骤7.7, 否则执行步骤7.6;7.6通知岸见频解码线程设置为快进播放模式;7.7解码播放纟见频数据。发布端将同步调整后的音频数据和视频数据进行编码时,采取视频包和音 频包交替的方式。播放端获取所述流媒体数据包后,按照视频包和音频包交替的方式对流媒 体数据包进行解析。在本专利技术中,发布端对流媒体数据包同步调整,编码生成流媒体数据包, 播放端获取发布端同步调整后的流媒体数据包后,对流媒体数据包进行解析, 按时间片同步解码播放音频数据和视频数据,并在网络状况不稳定或者播放端 资源不足的情况下通过跳帧方式保持音频数据和视频数据播放的同步,使得系 统的后期开发不会受到媒体压缩格式的不同而必须使用不同的编解码器来同步 的影响。附图说明图1是本专利技术中播放端播放流媒体数据时的数据播放队列示意图; 图2是本专利技术中播放端对收到的流媒体数据进行播放处理的实现流程图; 图3是本专利技术中播放端解码播放音频数据的实现流程图; 图4是本专利技术中播放端播放视频频数据的实现流程图 图5是本专利技术中当网络状况不稳定时,播放端同步播放音视频数据的实现 流程图6是本专利技术中在播放端播放资源不足的情况下同步播放音视频数据的实现流程图。 具体宍施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实 施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅 仅用以解释本专利技术,并不用于限定本专利技术。在本专利技术中,发布端对流媒体数据包同步编码,生成流媒体数据包,播放 端获取发布端同步调整后的流媒体数据包后,对流媒体数据包进行解析,按时 间片同步解码播放音频数据和视频数据,并在网络状况不稳定或者播放端资源 不足的情况下通过跳帧方式保持音频数据和视频数据播放的同步。由于P2P系统中流媒体数据的传输并不采取传统的C/S模式,所以在P2P 系统中,必然存在一个特殊的节点来产生流4某体数据,可以抽象的认为该节点 是整个在P2P系统中的流媒体数据的源头,称为发布端。发布端本文档来自技高网...
【技术保护点】
【技术特征摘要】
1、一种P2P系统中音视频数据的同步方法,其特征在于,所述方法包括下述步骤发布端对音频数据和视频数据进行同步调整,编码生成流媒体数据包;播放端获取所述流媒体数据包后,对流媒体数据包进行解析和解压缩,按时间片同步解码播放流媒体数据包中的音频数据和视频数据。2、 如权利要求1所述的P2P系统中音视频数据的同步方法,其特征在于, 发布端对音频数据和视频数据进行同步调整时,对于在现场采集的流媒体数据, 将音频数据和视频数据分为不同长度的流媒体数据信息,同时根据参考时钟生 成音频数据和视频数据的时间信息,将音频数据和视频数据打上时间戳。3、 如权利要求1所述的P2P系统中音视频数据的同步方法,其特征在于, 发布端对音频数据和 >频数据进行同步调整时,对于现场采集的数据,采用采 集时间戳;对于非现场采集的数据,提取々某体文件中的时间戳。4、 如权利要求2或3所述的P2P系统中音视频数据的同步方法,其特征 在于,播放端对音频数据队列中的音频数据进行播放时,将音频数据的时间戳 与参考时钟的当前时间对比,当音频数据已经到播放时间时解码播放音频数据。5、 如权利要求2或3所述的P2P系统中音视频数据的同步方法,其特征 在于,播放端对视频数据队列中的视频数据进行播放时,将视频数据的时间戳 与当前正在播放的音频数据的时间戳进行对比,当同时的音频数据播放时,同 步播放该视频数据。6、 如权利要求l、 2或3所述的P2P系统中音视频数据的同步方法,其特 征在于,所述按时间片同步解码播放流媒体数据包中的音频数据和视频数据的 步骤具体为6.1判断获取的P2P流媒体数据包是否与上一个P2P流媒体数据包连续, 是则执行步骤6.3,否则执行步骤6.2;6.2设置视频数据解码为删除P帧模式,并继续执行步骤6.3; 6.3根据流i某体数据包中的流媒体数据小包的包头判...
【专利技术属性】
技术研发人员:刘一兰,吴波,方斌,张宝和,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。