文档类直播交互数据和音视频数据同步方法和系统与流程

文档序号:17357796发布日期:2019-04-09 21:50阅读:414来源:国知局
文档类直播交互数据和音视频数据同步方法和系统与流程

本发明涉及直播领域,特别涉及一种文档类直播交互数据和音视频数据同步方法和系统。



背景技术:

现在的直播中,有一种类型是基于ppt、pdf等文档类型的直播。这种直播需要采集音视频流,还需要支持对文档操作交互的行为,例如在文档上绘制直线、自由线、矩形、椭圆、文字;以及文档翻页、绘制数据删除、清空等交互行为,这些文档操作的交互行为统一按数据流进行传输。

当前广泛使用的直播是基于rtmp+cdn架构的直播,这种直播的延迟一般是3-5秒,加上cdn网络的抖动,播放端累计延迟可达7-8秒。但是传输的文档操作的交互行为数据流由于采用的是websockets协议,数据量低并且播放端接收的延迟大概在1秒以内。

这样播放端就存在一个如何在直播过程中实现操作交互的数据流和音视频流播放同步的问题,但是如果音视频的网络出现严重的抖动,音视频出现了比较严重的丢包,传统的数据流的方案是无法做到数据流丢包和追帧播放的。



技术实现要素:

本发明的实施方式旨在至少解决现有技术中存在的技术问题之一。为此,本发明的实施方式需要提供一种文档类直播交互数据和音视频数据同步方法和系统。

本发明实施方式的一种文档类直播交互数据和音视频数据同步方法,其特征在于,包括:

步骤1,接收上传的文档并将文档转换成文档图像数据;

步骤2,通过应用程序开发框架采集用户的文档交互数据;

步骤3,利用渲染系统将文档交互数据渲染进文档图像数据;

步骤4,根据渲染结果分别进行视频数据和音频数据的编码;

步骤5,将音视频编码数据封装成rtmp协议再通过cdn网络发送到播放端播放。

一种实施方式中,文档交互数据包括绘制数据,则步骤2包括:通过应用程序开发框架响应用户绘制动作并记录对应的鼠标动作,调用渲染接口完成绘制并获得绘制数据。

一种实施方式中,文档交互数据包括用户操作数据,则步骤2包括:通过应用程序开发框架响应包括文档翻页、删除绘制数据和清空绘制数据在内任意一种用户操作,获得用户操作数据。

一种实施方式中,步骤4包括:获取当前渲染系统的视频图像图层,通过h264编码器进行视频数据的编码;获取当前音频数据,通过acc编码器进行音频数据的编码。

一种实施方式中,步骤5中包括:建立与服务器三次握手连接,再建立与服务器的流通道;将获取的h264视频编码数据封装成rtmp协议的视频包发送到cdn网络;将获取的acc音频编码数据封装成rtmp协议的音频包发送到cdn网络;再通过cdn网络发送到播放端播放。

本发明实施方式还提出一种文档类直播交互数据和音视频数据同步系统,其特征在于,包括:

接收转换模块,用于接收上传的文档并将文档转换成文档图像数据;

交互采集模块,用于通过应用程序开发框架采集用户的文档交互数据;

数据渲染模块,用于利用渲染系统将文档交互数据渲染进文档图像数据;

数据编码模块,用于根据渲染结果分别进行视频数据和音频数据的编码;

封装发送模块,用于将音视频编码数据封装成rtmp协议再通过cdn网络发送到播放端播放。

一种实施方式中,文档交互数据包括绘制数据,则交互采集模块具体用于通过应用程序开发框架响应用户绘制动作并记录对应的鼠标动作,调用渲染接口完成绘制并获得绘制数据。

一种实施方式中,文档交互数据包括用户操作数据,则交互采集模块具体用于通过应用程序开发框架响应包括文档翻页、删除绘制数据和清空绘制数据在内任意一种用户操作,获得用户操作数据。

一种实施方式中,数据编码模块具体用于获取当前渲染系统的视频图像图层,通过h264编码器进行视频数据的编码;获取当前音频数据,通过acc编码器进行音频数据的编码。

一种实施方式中,封装发送模块具体用于建立与服务器三次握手连接,再建立与服务器的流通道;将获取的h264视频编码数据封装成rtmp协议的视频包发送到cdn网络;将获取的acc音频编码数据封装成rtmp协议的音频包发送到cdn网络;再通过cdn网络发送到播放端播放。

本发明实施方式的文档类直播交互数据和音视频数据同步方法和系统,将文档交互数据转换为图像数据后进行数据编码,再把音视频数据封装rtmp协议的数据包,通过cdn网络发送到播放端播放。本发明的文档交互数据图像化处理,在网络抖动发生数据丢包时也会和其他音视频数据一同丢包,从而使交互操作数据和其他音视频完全同步。

本发明的附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明的实施方式的上述和/或附加的方面和优点从结合下面附图对实施方式的描述中将变得明显和容易理解,其中:

图1是本发明实施方式的文档类直播交互数据和音视频数据同步方法的流程示意图;

图2是本发明实施方式的文档类直播交互数据和音视频数据同步系统的组成示意图;

图3是本发明实施方式的文档交互数据的示意图。

具体实施方式

下面详细描述本发明的实施方式,实施方式的示例在附图中示出,其中相同或类似的标号自始至终表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅可用于解释本发明的实施方式,而不能理解为对本发明的实施方式的限制。

请参阅图1,本发明实施方式的文档类直播交互数据和音视频数据同步方法,包括:

步骤1,接收上传的文档并将文档转换成文档图像数据;

步骤2,通过应用程序开发框架采集用户的文档交互数据;

步骤3,利用渲染系统将文档交互数据渲染进文档图像数据;

步骤4,根据渲染结果分别进行视频数据和音频数据的编码;

步骤5,将音视频编码数据封装成rtmp协议再通过cdn网络发送到播放端播放。

请参阅图2,本发明还同时提出一种文档类直播交互数据和音视频数据同步系统,包括:

接收转换模块,用于接收上传的文档并将文档转换成文档图像数据;

交互采集模块,用于通过应用程序开发框架采集用户的文档交互数据;

数据渲染模块,用于利用渲染系统将文档交互数据渲染进文档图像数据;

数据编码模块,用于根据渲染结果分别进行视频数据和音频数据的编码;

封装发送模块,用于将音视频编码数据封装成rtmp协议再通过cdn网络发送到播放端播放。

在该实施方式中,文档类直播交互数据和音视频数据同步方法以文档类直播交互数据和音视频数据同步系统作为步骤的执行对象,或者以系统内的各个模块作为步骤的执行对象。具体地,步骤1以接收转换模块作为步骤的执行对象,步骤2以交互采集模块作为步骤的执行对象,步骤3以数据渲染模块作为步骤的执行对象,步骤4以数据编码模块作为步骤的执行对象,步骤5以封装发送模块作为步骤的执行对象。

本发明采用将文档交互数据为转换为图像,并与其他图像合并成一副图像数据。本发明的数据采集分为两路,一路是采集视频的图像,一路是采集视频的音频。对于文档交互操作数据采集,首先将将文档转换为多页图像数据,利用应用程序框架采集用户操作文档的操作交互动作,记录用户在文档上画笔绘制等行为,利用渲染系统将用户操作的画笔绘制和操作交互行为渲染进文档图像数据中,即将操作交互数据图像化,然后进行数据编码,把音视频数据封装rtmp协议,然后通过cdn网络发送到播放端播放。下面具体说明。

在步骤1,接收转换模块的实现方式之一可以是一台文档解析服务器,即文档解析服务器接收上传的文档,然后将文档文件的每一页转换成对应图片格式数据,解析后图片格式数据加载到本地,数据格式如下:

fileid:文档文件md5唯一性标示

title:文件名

stutus:文档解析状态码;其中0表示成功,非0表示失败

msg:文档解析返回信息

channelid:当前频道号

smallimage:预览图片下载地址数组

autoid:文档文件服务器存储序号索引

images:渲染图下载地址数组

filename:当前文件名

totalpage:文档总页数

fileurl:文档服务器存储地址

在步骤2中,交互采集模块通过应用程序开发框架采集用户的文档交互数据。

常见的应用程序开发框架主要有mfc,.netframework,qt,cocoa等,各种开发框架的介绍如下:

mfc:(microsoftfoundationclasses)是微软基础类库的简称,是微软公司实现的一个c++类库,主要封装了大部分的windowsapi函数.用于windws系统应用程序开发框架。

qt:是一个1991年由qtcompany开发的跨平台c++图形用户界面应用程序开发框架。针对桌面、嵌入式、移动设备的一个跨平台的应用程序开发框架,支持的平台包括linux、osx、windows、vxworks、qnx、android、ios、blackberry(黑莓)、sailfishos(旗鱼操作系统)等。qt既可以开发gui程序,也可用于开发非gui程序,因此框架本身和应用程序/库使用它能被任何符合标准c++的编译器(像clang、gcc、icc、mingw和msvc)所编译。其具有良好的跨平台特性,良好封装机制使得qt的模块化程度非常高,可重用性较好,具有丰富的api,支持2d/3d图形渲染,支持opengl。

.net:.netframework由名为commonlanguageruntime(clr)的运行时环境和大量程序库组成的,这些程序库由核心库和应用库组成,应用库依赖于核心库,主要应用windows系统开发。

cocoa:是苹果公司为macosx所创建的原生面向对象的api,苹果的面向对象开发框架,用来生成macosx的应用程序。

本发明实施方式中,使用的是基于qt的应用程序开发框架,当然也可以采用其他的应用程序开发框架,在此不做限制。

在步骤2中,视频引擎根据设置的帧率参数,定时从渲染系统中获取被渲染好的图像,我们将文档转化一页一页的图像数据后,将图像数据用渲染接口进入渲染系统中,在每一页图像数据上,记录用户在此页图像上的交互操作行为产生的文档交互数据。

一种情况中,文档交互数据包括绘制数据,则步骤2包括:交互采集模块具体通过应用程序开发框架响应用户绘制动作并记录对应的鼠标动作,调用渲染接口完成绘制并获得绘制数据。

如图3所示,图3是本发明实施方式的文档交互数据的示意图。通常文档包括第1至n页。

其中,应用程序开发框架响应用户绘制动作并记录对应的鼠标动作,调用渲染接口完成绘制并获得绘制数据的示例分别如下:

a)直线:用户点击选择直线绘制,记录鼠标按下到松开起始和结束坐标点,调用渲染接口的直线轨迹方程函数绘制出直线,获得直线绘制数据。

b)矩形:用户点击选择直线绘制,记录鼠标按下到松开起始和结束坐标点,调用渲染接口的矩形轨迹方程函数绘制出矩形,获得矩形绘制数据。

c)椭圆:用户点击选择直线绘制,记录鼠标按下到松开起始和结束坐标点,调用渲染接口的椭圆轨迹方程函数绘制出椭圆,获得椭圆绘制数据。

d)自由线:用户点击选择自由线绘制,记录鼠标从按下到松开所有的坐标点.调用渲染接口的绘制函数绘制出自由线轨迹,获得自由线绘制数据。

e)文字绘制:用户点击选择文字绘制,记录鼠标点击坐标点。调用渲染接口的文字函数绘制出文字,获得文字绘制数据。

另一种情况中,文档交互数据包括用户操作数据,则步骤2包括:交互采集模块具体通过应用程序开发框架响应包括文档翻页、删除绘制数据和清空绘制数据在内任意一种用户操作,获得用户操作数据。

示例如下:

a)文档翻页:根据文档的页索引用渲染接口调整进入渲染系统的图像数据

b)删除绘制数据:根据鼠标点击的删除位置,删除对应的页数据中保存的绘制数据

c)清空绘制数据:清空当前页数据上保存的所有绘制数据

步骤3中,数据渲染模块利用渲染系统将文档交互数据渲染进文档图像数据。即在渲染系统中预先设定渲染接口,然后根据渲染接口将这些文档交互数据与文档图像数据融合成同一张图像数据。

步骤4中,数据编码模块获取当前渲染系统的视频图像图层,通过h264编码器进行视频数据的编码;获取当前音频数据,通过acc编码器进行音频数据的编码。

h264是新一代的编码标准,以高压缩高质量和支持多种网络的流媒体传输著称,通常这种编码方式在编码方面的理论依据是:参照一段时间内图像的统计结果表明,在相邻几幅图像画面中,一般有差别的像素只有10%以内的点,亮度差值变化不超过2%,而色度差值的变化只有1%以内。所以对于一段变化不大图像画面,可以先编码出一个完整的图像帧a,随后的b帧就不编码全部图像,只写入与a帧的差别,这样b帧的大小就只有完整帧的1/10或更小,b帧之后的c帧如果变化不大,我们可以继续以参考b帧的方式编码c帧,这样循环下去。这段图像称为一个序列(序列就是有相同特点的一段数据),当某个图像与之前的图像变化很大,无法参考前面的帧来生成,那我们就结束上一个序列,开始下一段序列,也就是对这个图像生成一个完整帧a1,随后的图像就参考a1生成,只写入与a1的差别内容。在h264协议里定义了三种帧,完整编码的帧叫i帧,参考之前的i帧生成的只包含差异部分编码的帧叫p帧,还有一种参考前后的帧编码的帧叫b帧。h264采用的核心算法是帧内压缩和帧间压缩,帧内压缩是生成i帧的算法,帧间压缩是生成b帧和p帧的算法。

aac是高级音频编码(advancedaudiocoding)的缩写,出现于1997年,最初是基于mpeg-2的音频编码技术。由fraunhoferiis、dolbylaboratories、at&t、sony等公司共同开发,目的是取代mp3格式。2000年,mpeg-4标准出台,aac重新集成了其它技术(ps,sbr),为区别于传统的mpeg-2aac,故含有sbr或ps特性的aac又称为mpeg-4aac。

aac特点包括:

(1)aac是一种高压缩比的音频压缩算法,但它的压缩比要远超过较老的音频压缩算法,如ac-3、mp3等。并且其质量可以同未压缩的cd音质相媲美。

(2)同其他类似的音频编码算法一样,aac也是采用了变换编码算法,但aac使用了分辨率更高的滤波器组,因此它可以达到更高的压缩比。

(3)aac使用了临时噪声重整、后向自适应线性预测、联合立体声技术和量化哈夫曼编码等最新技术,这些新技术的使用都使压缩比得到进一步的提高。

(4)aac支持更多种采样率和比特率、支持1个到48个音轨、支持多达15个低频音轨、具有多种语言的兼容能力、还有多达15个内嵌数据流。

(5)aac支持更宽的声音频率范围,最高可达到96khz,最低可达8khz,远宽于mp3的16khz-48khz的范围。

(6)不同于mp3及wma,aac几乎不损失声音频率中的甚高、甚低频率成分,并且比wma在频谱结构上更接近于原始音频,因而声音的保真度更好。专业评测中表明,aac比wma声音更清晰,而且更接近原音。

(7)aac采用优化的算法达到了更高的解码效率,解码时只需较少的处理能力。

通过上面过程完成音视频数据的编码。

在步骤5中,封装发送模块进行网络发送的过程如下:

1.建立与服务器三次握手连接;

2.再建立与服务器的流通道;

3.将获取的h264视频编码数据封装成rtmp协议的视频包发送到cdn网络;

4.将获取的acc音频编码数据封装成rtmp协议的音频包发送到cdn网络;

5.再通过cdn网络发送到播放端播放。

本方案中,直播架构简单,依然基与传统cdn直播方式,只需增加视频采集端交互数据渲染;而且文档交互数据和其他音视频数据统一封装为rtmp协议数据,可以支持移动app端,网页端,微信端等全终端平台;由于将文档交互数据转化为图像数据,在网络抖动发生数据丢包时也会和其他音视频数据一同丢包,从而使交互操作数据和其他音视频完全同步。此外,依据本发明,可以形成一个音视频文件,如mp4、flv、hls等文件格式等,支持直播录制回看。

下文的公开提供了许多不同的实施方式或例子用来实现本发明的实施方式的不同结构。为了简化本发明的实施方式的公开,下文中对特定例子的部件和设置进行描述。当然,它们仅仅为示例,并且目的不在于限制本发明。此外,本发明的实施方式可以在不同例子中重复参考数字和/或参考字母,这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施方式和/或设置之间的关系。此外,本发明的实施方式提供了的各种特定的工艺和材料的例子,但是本领域普通技术人员可以意识到其他工艺的应用和/或其他材料的使用。

在本说明书的描述中,参考术语“一个实施方式”、“一些实施方式”、“示意性实施方式”、“示例”、“具体示例”或“一些示例”等的描述意指结合所述实施方式或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理模块的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本发明的实施方式的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本发明的各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1