首页 / 专利库 / 资料储存系统 / 数字音频文件 / 音轨 / 一种基于HTML5的不同帧率音视频的同步方法及装置

一种基于HTML5的不同率音视频的同步方法及装置

阅读:646发布:2020-05-08

专利汇可以提供一种基于HTML5的不同率音视频的同步方法及装置专利检索,专利查询,专利分析的服务。并且本 发明 提供了一种基于HTML5的不同 帧 率音视频同步方法及装置,其中的方法包括:从服务端接收 视频流 和 音频流 ;基于 采样 率对音频流中包含的音频帧数据按照固定时长进行播放;实时监测 视频帧 帧率,以音频帧数据的播放时长为基准,调整每帧视频数据的播放时长,实现不同帧率音视频的同步。本发明提供的方法中,视频帧可以以音频帧时间轴为参考,实现视音频同步播放。,下面是一种基于HTML5的不同率音视频的同步方法及装置专利的具体信息内容。

1.一种基于HTML5的不同率音视频的同步方法,其特征在于,所述方法包括:
从服务端接收视频流音频流
基于采样率对音频流中包含的音频帧数据按照固定时长进行播放;
实时监测视频帧帧率,以音频帧数据的播放时长为基准,调整每帧视频数据的播放时长,实现不同帧率音视频的同步。
2.如权利要求1所述的方法,其特征在于,从服务端接收视频流和音频流,包括:
采用websocket从服务端接收h264视频流和aac音频流。
3.如权利要求1所述的方法,其特征在于,基于采样率对音频流中包含的音频帧数据按照固定时长进行播放,包括:
基于预设封装规则对接收的视频流和音频流分视轨音轨进行封装,设置音频帧的封装参数,对音频流中包含的音频帧数据按照固定时长进行播放。
4.如权利要求3所述的方法,其特征在于,封装参数包括时间单元数和封装的音频帧的时间长度,设置音频帧的封装参数,对音频流中包含的音频帧数据按照固定时长进行播放,包括:
根据音频的采样率计算当前音频帧的播放时间;
确定音频帧播放的时间单元数;
根据当前音频帧的播放时间和音频帧播放的时间单元数,确定封装的音频帧的时间长度,并根据封装的音频帧的时间长度对音频流中包含的音频帧数据进行播放。
5.如权利要求4所述的方法,其特征在于,实时监测视频帧帧率,以音频帧数据的播放时长为基准,调整每帧视频数据的播放时长,包括:
记录视频帧数据之间的时间间隔,实时监测视频帧帧率;
根据实时监测的视频帧帧率和音频帧播放的时间单元数,确定视频帧的封装时间长度,并根据视频帧的封装时间长度调整每帧视频数据的播放时长,实现不同帧率音视频的同步。
6.如权利要求5所述的方法,其特征在于,记录视频帧数据之间的时间间隔,实时监测视频帧帧率,包括:
根据音频帧播放的时间单元数和视频帧帧率计算出封装的视频帧的时间长度,并以音频帧播放的时间单元数和封装的视频帧的时间长度对视频帧进行封装;
记录当前视频帧的时间戳和上一视频帧的时间戳,根据两个视频帧的时间戳差值得到当前视频帧的帧率。
7.一种基于HTML5的不同帧率音视频的同步装置,其特征在于,所述装置为浏览器Video标签播放器,包括:
接收模,用于从服务端接收视频流和音频流;
音频播放模块,用于基于采样率对音频流中包含的音频帧数据按照固定时长进行播放;
视频播放模块,用于实时监测视频帧帧率,以音频帧数据的播放时长为基准,调整每帧视频数据的播放时长,实现不同帧率音视频的同步。
8.如权利要求7所述的装置,其特征在于,音频播放模块具体用于:
基于预设封装规则对接收的视频流和音频流分视轨音轨进行封装,设置音频帧的封装参数,对音频流中包含的音频帧数据按照固定时长进行播放。
9.如权利要求8所述的装置,其特征在于,封装参数包括时间单元数和封装的音频帧的时间长度,音频播放模块还用于:
根据音频的采样率计算当前音频帧的播放时间;
确定音频帧播放的时间单元数;
根据当前音频帧的播放时间和音频帧播放的时间单元数,确定封装的音频帧的时间长度,并根据封装的音频帧的时间长度对音频流中包含的音频帧数据进行播放。
10.如权利要求9所述的装置,其特征在于,实时监测视频帧帧率,以音频帧数据的播放时长为基准,调整每帧视频数据的播放时长,包括:
记录视频帧数据之间的时间间隔,实时监测视频帧帧率;
根据实时监测的视频帧帧率和音频帧播放的时间单元数,确定视频帧的封装时间长度,并根据视频帧的封装时间长度调整每帧视频数据的播放时长,实现不同帧率音视频的同步。

说明书全文

一种基于HTML5的不同率音视频的同步方法及装置

技术领域

[0001] 本发明涉及音视频处理技术领域,具体涉及一种基于HTML5的不同帧率音视频的同步方法及装置。

背景技术

[0002] 在HTML5标准出现以前,浏览器上实现实时音视频流的播放,一般都采用自定义开发插件或flashplayer插件的方式。自定义开发插件需要针对不同的浏览器开发不同的插件版本,IE使用ActiveX架构开发,NPAPI架构浏览器(firefox、chrome、Safari)需采用NPAPI架构开发,费时费。采用flash插件方案,虽然解决了跨浏览器问题,但flash插件是个封闭保护插件,开放的接口有限,同时其音视频流格式也是其专有的,必须使用专有的后台服务,导致其可扩展性十分有限,难于在实时流直播中大量应用。同时,以上两种方案,均需要在浏览器中进行插件安装,因浏览器的安全等级保护导致用户使用起来很不方便。
[0003] HTML5是Web标准最巨大的飞跃。HTML5并非仅仅用来表示Web内容,它也将Web带入一个成熟的应用平台,在这个平台上,视频,音频,动画等都被标准化。随着HTML5的发展,各个浏览器都已经支持HTML5。HTML5提供了音频视频的标准接口,实现了无需任何插件支持,只需浏览器支持相应的HTML5标签,从而免除Flash等插件的安装直接播放音视频。Video标签虽然免除了插件安装,但目前支持的格式是有限制的,为以下三种格式:Ogg、MPEG4、WebM。考虑到最多种浏览器支持,大多选用MPEG4,其编码格式为H.264视频编码和AAC音频编码,Internet Explorer 9+,Firefox,Opera,Chrome以及Safari均支持Video标签。在以上浏览器中,都可以采用Video标签来播放MP4文件,仅仅需要指定要播放的视频的URL地址即可。
[0004] 本发明申请人在实施本发明的过程中,发现现有技术中至少存在如下技术问题:
[0005] 现有技术中video标签播放视频主要有两种方式,一种是播放本地文件的方式,一种是播放服务端文件流的方式,但是目前在这两种方式中,Video只能支持某种固定参数的MP4文件,对逐帧实时采集上传的音视频帧流数据并不支持,音频、视频按各自轨道数据进行播放,不能进行音视频同步性控制播放。
[0006] 由此可知,现有技术中的方法存在无法实现音视频同步的技术问题。

发明内容

[0007] 有鉴于此,本发明实施例提供了一种基于HTML5的不同帧率音视频的同步方法及装置,用以解决或者至少解决现有技术中的方法存在的无法实现音视频同步的技术问题。
[0008] 为了解决上述技术问题,本发明第一方面提供了一种基于HTML5的不同帧率音视频的同步方法,所述方法包括:
[0009] 从服务端接收视频流和音频流
[0010] 基于采样率对音频流中包含的音频帧数据按照固定时长进行播放;
[0011] 实时监测视频帧帧率,以音频帧数据的播放时长为基准,调整每帧视频数据的播放时长,实现不同帧率音视频的同步。
[0012] 在一种实施方式中,从服务端接收视频流和音频流,包括:
[0013] 采用websocket从服务端接收h264视频流和aac音频流。
[0014] 在一种实施方式中,基于采样率对音频流中包含的音频帧数据按照固定时长进行播放,包括:
[0015] 基于预设封装规则对接收的视频流和音频流分视轨音轨进行封装,设置音频帧的封装参数,对音频流中包含的音频帧数据按照固定时长进行播放。
[0016] 在一种实施方式中,封装参数包括时间单元数和封装的音频帧的时间长度,设置音频帧的封装参数,对音频流中包含的音频帧数据按照固定时长进行播放,包括:
[0017] 根据音频的采样率计算当前音频帧的播放时间;
[0018] 确定音频帧播放的时间单元数;
[0019] 根据当前音频帧的播放时间和音频帧播放的时间单元数,确定封装的音频帧的时间长度,并根据封装的音频帧的时间长度对音频流中包含的音频帧数据进行播放。
[0020] 在一种实施方式中,实时监测视频帧帧率,以音频帧数据的播放时长为基准,调整每帧视频数据的播放时长,包括:
[0021] 记录视频帧数据之间的时间间隔,实时监测视频帧帧率;
[0022] 根据实时监测的视频帧帧率和音频帧播放的时间单元数,确定视频帧的封装时间长度,并根据视频帧的封装时间长度调整每帧视频数据的播放时长,实现不同帧率音视频的同步。
[0023] 在一种实施方式中,记录视频帧数据之间的时间间隔,实时监测视频帧帧率,包括:
[0024] 根据音频帧播放的时间单元数和视频帧帧率计算出封装的视频帧的时间长度,并以音频帧播放的时间单元数和封装的视频帧的时间长度对视频帧进行封装;
[0025] 记录当前视频帧的时间戳和上一视频帧的时间戳,根据两个视频帧的时间戳差值得到当前视频帧的帧率。
[0026] 基于同样的发明构思,本发明第二方面提供了一种基于HTML5的不同帧率音视频的同步装置,所述装置为浏览器Video标签播放器,包括:
[0027] 接收模,用于从服务端接收视频流和音频流;
[0028] 音频播放模块,用于基于采样率对音频流中包含的音频帧数据按照固定时长进行播放;
[0029] 视频播放模块,用于实时监测视频帧帧率,以音频帧数据的播放时长为基准,调整每帧视频数据的播放时长,实现不同帧率音视频的同步。
[0030] 在一种实施方式中,音频播放模块具体用于:
[0031] 基于预设封装规则对接收的视频流和音频流分视轨音轨进行封装,设置音频帧的封装参数,对音频流中包含的音频帧数据按照固定时长进行播放。
[0032] 在一种实施方式中,封装参数包括时间单元数和封装的音频帧的时间长度,音频播放模块还用于:
[0033] 根据音频的采样率计算当前音频帧的播放时间;
[0034] 确定音频帧播放的时间单元数;
[0035] 根据当前音频帧的播放时间和音频帧播放的时间单元数,确定封装的音频帧的时间长度,并根据封装的音频帧的时间长度对音频流中包含的音频帧数据进行播放。
[0036] 在一种实施方式中,实时监测视频帧帧率,以音频帧数据的播放时长为基准,调整每帧视频数据的播放时长,包括:
[0037] 记录视频帧数据之间的时间间隔,实时监测视频帧帧率;
[0038] 根据实时监测的视频帧帧率和音频帧播放的时间单元数,确定视频帧的封装时间长度,并根据视频帧的封装时间长度调整每帧视频数据的播放时长,实现不同帧率音视频的同步。
[0039] 本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:
[0040] 本发明提供的方法,首先从服务端接收视频流和音频流,然后基于采样率对音频流中包含的音频帧数据按照固定时长进行播放;再实时监测视频帧帧率,以音频帧数据的播放时长为基准,调整每帧视频数据的播放时长,实现不同帧率音视频的同步。
[0041] 相对于现有技术中音频、视频按各自轨道数据进行播放,不能进行音视频同步性控制播放的方式而言,本发明提供的方法,在接收视频流和音频流后,分别对音频流和视频流进行处理,对于视频流中包含的音频帧数据,使音频帧播放按固定时长播放,在处理变帧率音视频流时,以音频帧数据的播放时长为基准,实时监测视频帧帧率,即实时确定每帧视频数据应该播放的时间长度,从而智能调节每帧视频数据的播放时长,这样按同样的时间刻度来处理音视频帧,就可以实现音视频流的同步播放。
[0042] 进一步地,音视频帧分帧类型单独进行fmp4封装碎片化,音视频帧单帧封装,可以减少延时。附图说明
[0043] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0044] 图1为本发明提供的一种基于HTML5的不同帧率音视频的同步方法的流程图
[0045] 图2为本发明提供的一种基于HTML5的不同帧率音视频的同步装置的结构框图

具体实施方式

[0046] 本发明实施例提供了一种基于HTML5的不同帧率音视频的同步方法及装置,用以改善现有技术中的方法存在的无法实现音视频同步的技术问题。
[0047] 本申请发明人通过大量的研究与实践发现:
[0048] 虽然video标签可以解决音视频文件的跨浏览器播放,但其不支持实时流。随后W3C标准制定了MSE(MediaSourceExtension)扩展,很好地解决了Video标签不支持流的问题。MSE允许JavaScript动态构建
[0049] 众所周知,MP4是由一系列的Boxes组成的。普通的MP4文件是嵌套结构的,客户端必须要从头加载一个MP4文件,才能够完整播放,不能从中间一段开始播放。而fMP4由一系列的片段组成,如果服务器支持byte-range请求,那么,这些片段可以独立的进行请求到客户端进行播放,而不需要加载整个文件。当前,H.264+AAC的MP4容器在所有的浏览器都支持。普通的MP4文件是不能和MSE一起使用的,需要将MP4进行fragment化(碎片化)。Fragment化后的MP4流就可以通过MSE+Video标签来播放。从而实现跨浏览器免插件播放实时音视频流。
[0050] 现有技术中,还没有基于HTML5 Video标签中处理变帧率音视频流同步的方法,目前HTML5 Video标签播放视频主要是以下两种方式:
[0051] 第一种,播放本地文件方式
[0052] <!DOCTYPE HTML>
[0053]
[0054]
[0055] your browser support the video tag
[0056]
[0057]
[0058]
[0059] src中指定要播放的视频的URL,movie.mp4为一个固定了参数的MP4文件,按MP4规范,文件头相关box中设置了该段视频文件应该播放的时长、播放间隔等参数,并不支持实时变帧率音视频流播放;
[0060] 第二种:播放服务端文件流方式
[0061] 该方式要求从文件服务器读取音视频文件,以流的方式传给前台,前台用Video标签进行视频播放。
[0062] 后台实现代码示例:
[0063]
[0064] 前端实现代码:
[0065] [0066]
[0067]
[0068] src写getVideos可以直接跳转到后台找到这个方法,从而将movie.mp4文件流传送至前端用Video标签进行播放。同第一种方式一样,Video也只能支持某种固定参数的MP4文件,对逐帧实时采集上传的音视频帧流数据并不支持,即Video标签当前仅仅支持封装好参数的MP4文件,其中的视频轨、音频轨媒体数据按封装参数进行播放,播放过程中不能进行控制,音频、视频按各自轨道数据进行播放,不能进行音视频同步性控制播放。
[0069] 综上所述,对于同帧率的音视频流,只需fragment化传给MSE,Video标签就可以进行同步播放。但对于不同帧率的音视频流,一般是视频帧率小于音频帧率的情形,若简单的fragment化就进行播放,会发生音视频不同步的情况,甚至在有些浏览器上出现无法播放视频的现象。
[0070] 针对同类现有技术或产品要解决的问题,本发明提供了基于HTML5 Video标签实现不同帧率实时音视频流的同步播放,通过改进video标签缺省固定帧率播放音视频的处理方式,将变帧率视频同步到音频,从而实现实时音视频流的同步播放。主要构思如下:
[0071] 在处理变帧率音视频流时,实时监测视频帧帧率,即实时确定每帧视频数据应该播放的时间长度,从而可以智能调节每帧视频数据播放时长;同时,固定帧率音频帧播放按固定时长播放,这样按同样的时间刻度来处理音视频帧,就可以实现音视频流的同步播放。
[0072] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0073] 实施例一
[0074] 本实施例提供了一种基于HTML5的不同帧率音视频的同步方法,请参见图1,所述方法包括:
[0075] 步骤S1:从服务端接收视频流和音频流。
[0076] 具体来说,本发明的执行主体为浏览器端,可以通过现有的协议从服务端接收相应的视频流和音频流。
[0077] 在一种实施方式中,从服务端接收视频流和音频流,包括:
[0078] 采用websocket从服务端接收h264视频流和aac音频流。
[0079] 具体来说,WebSocket是HTML5开始提供的一种在单个TCP连接上进行全双工通讯的协议,WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocketAPI中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
[0080] 步骤S2:基于采样率对音频流中包含的音频帧数据按照固定时长进行播放。
[0081] 具体来说,采样率即采样频率,。
[0082] 在一种实施方式中,基于采样率对音频流中包含的音频帧数据按照固定时长进行播放,包括:
[0083] 基于预设封装规则对接收的视频流和音频流分视轨音轨进行封装,设置音频帧的封装参数,对音频流中包含的音频帧数据按照固定时长进行播放。
[0084] 具体来说,本发明分别对音频流和视频流进行处理。
[0085] 在浏览器端可以使用JS解析aac音频数据,根据制定协议获得aac音频的采样率。例如一个aac原始帧包含一段时间内1024个采样及相关数据,音频帧的播放时间=一个aac帧对应的采样样本个数/采样频率(单位为秒),假设采样率为8000HZ,那么当前aac一帧的播放时间是1024*1000/8000=128ms(单位毫秒)。
[0086] 在浏览器端使用JS解析h264数据,通过两帧视频数据上的时间戳,计算出一帧视频数据所持续的时长。通过这个时长可以推算出视频帧帧率,比如时长为80ms,帧率=1000/80=12.5fps,相对常用的25fps就是一个半帧率,而且这样采用半帧率甚至不足半帧率的情形在移动4G监控领域常常使用。
[0087] 作为优选,在封装fMP4 fragment时,为了保证实时性,不进行流数据缓存,每接收完一帧音或视频数据后,上进行fMP4封装。然后将封装数据传递给MediaSource中的sourceBuffer对象,然后通过浏览器Videotag自动获取sourceBuffer中的数据进行解码播放,其中,MediaSource是Media Source ExtensionsAPI表示媒体资源HTMLMediaElement对象的接口,MediaSource对象可以附着在HTMLMediaElement在客户端进行播放。
[0088] 具体地,fMP4的封装可以分为InitializationSegment和mediaSegment两种,这两种基本封装格式相差不多。关于InitializationSegment必须注意以下几点:
[0089] A、文件类型声明ftyp的box包含的major_brand或者compatible_brand用户代理必须支持;
[0090] B、mohdbox里的任意box或者字段不能违背在ftypbox里定义的major_brand或者compatible_brands中的任何一个授权;
[0091] C、mohd中包含的samples的track(如stts、stsc、或者stco中的entry_count必须设置为0);
[0092] D、mvexbox必须在moov中被包含,该box说明该视频包含moof需要解析。
[0093] MediaSegment封装要求基本类似,同时增加以下几点:
[0094] a、styp必须遵循ftyp;
[0095] b、traf里面必须包含tfdt;
[0096] c、mdat里的samples必须和trun里面的对应。
[0097] 此外,需要说明的是,不同的浏览器对fmp4的解析兼容性有所不同,未按上述要求封装的fmp4有的浏览器也可播放,但数据的播放会存在卡顿等问题。
[0098] 在一种实施方式中,封装参数包括时间单元数和封装的音频帧的时间长度,设置音频帧的封装参数,对音频流中包含的音频帧数据按照固定时长进行播放,包括:
[0099] 根据音频的采样率计算当前音频帧的播放时间;
[0100] 确定音频帧播放的时间单元数;
[0101] 根据当前音频帧的播放时间和音频帧播放的时间单元数,确定封装的音频帧的时间长度,并根据封装的音频帧的时间长度对音频流中包含的音频帧数据进行播放。
[0102] 具体来说,时间单元数和封装的音频帧的时间长度分别为time scale参数和duration参数,一个为时间刻度参数,一个为播放时长参数,两者共同决定Video标签播放该封装数据应花费时长。
[0103] 在具体实施过程中,本发明采用音频、视频分视轨、音轨分别封装的方式。对于音频fmp4封装,要求达到和视频同步必须注意下面几个参数。mvhdbox里有个time scale,它表示1秒长度的时间单元数,例如可以设置为8000,那么duration参数必须是封装的音频帧的时间长度,根据前面计算出来的一帧aac播放时间是128ms,那么此时的duration=128*8000/1000=1024。tkhd box中参数duration赋同样值,这样就可以核准封装的一帧音频应该播放的时长,作为视频播放时长的时间基准,从而为视频帧的同步提供时间轴。
[0104] 步骤S3:实时监测视频帧帧率,以音频帧数据的播放时长为基准,调整每帧视频数据的播放时长,实现不同帧率音视频的同步。
[0105] 在一种实施方式中,实时监测视频帧帧率,以音频帧数据的播放时长为基准,调整每帧视频数据的播放时长,包括:
[0106] 记录视频帧数据之间的时间间隔,实时监测视频帧帧率;
[0107] 根据实时监测的视频帧帧率和音频帧播放的时间单元数,确定视频帧的封装时间长度,并根据视频帧的封装时间长度调整每帧视频数据的播放时长,实现不同帧率音视频的同步。
[0108] 在一种实施方式中,记录视频帧数据之间的时间间隔,实时监测视频帧帧率,包括:
[0109] 根据音频帧播放的时间单元数和视频帧帧率计算出封装的视频帧的时间长度,并以音频帧播放的时间单元数和封装的视频帧的时间长度对视频帧进行封装;
[0110] 记录当前视频帧的时间戳和上一视频帧的时间戳,根据两个视频帧的时间戳差值得到当前视频帧的帧率。
[0111] 具体来说,不同于音频帧事前就知道帧率的情况,视频帧针对不同的终端帧率可能是各不相同的。可以先假定是满帧率(25帧/秒),那么一帧数据的播放时长是40ms,time_scale采用和音频相同的刻度8000,duration=40*8000/1000=320,先按这两个参数值封装视频fmp4。
[0112] 然后当前视频帧的帧率,通过记下视频帧的ts(时间戳,毫秒为单位),等后一帧数据接收完毕,和前一帧记录的ts求差值,会得到一个帧间隔值,如此求得3~4个间隔值后再平均,就能得到当前视频帧的帧率。最后以该帧率来填写time_scale和duration参数项封装fmp4,其中mvhdbox和tkhdbox中的相应参数都要赋值且相同。这样,视频帧就可以以音频帧时间轴为参考,实现视音频同步播放。
[0113] 总体来说,在当前网页音视频流直播方案多选择flash插件的情形下,随着HTML5 Video标签的出现,各浏览器都逐渐支持Video tag,而且优选支持视频H264,音频aac。音视频实现了免插件跨浏览器播放,但要实现流式低延迟直播,必须将音视频流碎片化(fragment mp4),相对常见的MP4文件流碎片化方案,本发明具有以下创新点或者有益技术效果:
[0114] 1、音视频帧分帧类型单独进行fmp4封装碎片化。
[0115] 2、音视频帧单帧封装,减少延时。
[0116] 3、视频帧、音频帧按各自帧率得出的帧间隔进行播放,即每秒播放的视频帧、音频帧并不相同,这样音频、视频采样参照同一个时间轴就可以实现同步。
[0117] 本发明提供的基于HTML5的不同帧率音视频的同步方法,处理对象是封装的fmp4流,不是直接处理视频流和音频流。并且本发明采用的是视频参考音频的方式,音频按采样率原样播放,播放时长一定;不同于现有技术中直接处理视频流和音频流,以及采用视频、音频处理时长差值得到的补偿值去调整音频、视频输出信号保持同步方式、或者采用音频播放延时延迟播放视频来进行同步的方式。
[0118] 基于同一发明构思,本申请还提供了一种与实施例一中对应的装置,详见实施例二。
[0119] 实施例二
[0120] 本实施例提供了一种基于HTML5的不同帧率音视频的同步装置,请参见图2,该装置包括:
[0121] 接收模块201,用于从服务端接收视频流和音频流;
[0122] 音频播放模块202,用于基于采样率对音频流中包含的音频帧数据按照固定时长进行播放;
[0123] 视频播放模块203,用于实时监测视频帧帧率,以音频帧数据的播放时长为基准,调整每帧视频数据的播放时长,实现不同帧率音视频的同步。
[0124] 在一种实施方式中,音频播放模块具体用于:
[0125] 基于预设封装规则对接收的视频流和音频流分视轨音轨进行封装,设置音频帧的封装参数,对音频流中包含的音频帧数据按照固定时长进行播放。
[0126] 在一种实施方式中,封装参数包括时间单元数和封装的音频帧的时间长度,音频播放模块还用于:
[0127] 根据音频的采样率计算当前音频帧的播放时间;
[0128] 确定音频帧播放的时间单元数;
[0129] 根据当前音频帧的播放时间和音频帧播放的时间单元数,确定封装的音频帧的时间长度,并根据封装的音频帧的时间长度对音频流中包含的音频帧数据进行播放。
[0130] 在一种实施方式中,实时监测视频帧帧率,以音频帧数据的播放时长为基准,调整每帧视频数据的播放时长,包括:
[0131] 记录视频帧数据之间的时间间隔,实时监测视频帧帧率;
[0132] 根据实时监测的视频帧帧率和音频帧播放的时间单元数,确定视频帧的封装时间长度,并根据视频帧的封装时间长度调整每帧视频数据的播放时长,实现不同帧率音视频的同步。
[0133] 由于本发明实施例二所介绍的基于HTML5的不同帧率音视频的同步装置,为实施本发明实施例一中基于HTML5的不同帧率音视频的同步方法所采用的装置,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该装置的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的装置都属于本发明所欲保护的范围。
[0134] 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0135] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0136] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0137] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0138] 尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0139] 显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈