微课视频分布式转码方法及系统与流程

文档序号:12697686阅读:747来源:国知局
微课视频分布式转码方法及系统与流程

本发明涉及微课视频领域,具体涉及一种微课视频分布式转码方法及系统。



背景技术:

微课导学是在信息化教育背景下新兴的一种将微课和导学相结合的新的导学模式,传统导学案多以文字配以部分图片资料为主,加入视频后视频的知识点细分程度又不够,加入微课后可将细分后的视频内容,更精确的分配到需要的导学点上。在此过程中视频的格式繁多,要在Web端实现不同视频格式的播放就要通过Web端播放器的兼容程度或统一视频格式来实现。并且考虑到每种视频格式的不同会影响到视频本身的大小不同,越大的视频就越是占用存储空间,因此大家多选用转码这种方式来实现不同视频格式的播放。

目前市场上,在微课视频领域,视频的转码多采用用户个人通过第三方软件转码后上传视频,或视频上传后由服务器集中转码处理的方式。而这两种方式都有各自的弊端。如个人通过第三方软件转码后上传的方式,就要求用户要多安装一个与本系统无关的第三方的软件,再手动按照要求选择转码格式并设置相关参数后进行转码,再将转码完成的视频上传至微课。这个过程给客户增加了操作步骤,降低了数据处理的效率。而第二种方式,通过服务器端转码可以省去用户自己转码的步骤,对用户而言操作比较简单,但与此同时,服务器需要处理大量的用户转码需求,这就增加了服务器的负荷,因此有可能影响到视频转码的速度,甚至影响到程序的正常运行。

因此,需要一种微课视频分布式转码系统,用户在客户端电脑安装微课视频分布式转码系统即可。



技术实现要素:

为解决现有技术存在的不足,本发明公开了微课视频分布式转码方法及系统,本发明通过分布式技术,将视频转码的过程,分散到每一个可用的网络节点来自动转码,转码完成后再返回服务器进行合并,实现点对点分布式的转码处理。从而即解决了用户体验的问题又解决了服务器转码压力大的问题。

为实现上述目的,本发明的具体方案如下:

微课视频分布式转码方法,包括以下步骤:

通过网络服务器上传需要转码的视频,网络服务器将视频及相关信息进行物理存储至数据库服务器并通知视频分发单元;

视频分发单元通过数据库服务器接收网络服务器对上传视频的转码指令,并对获取该上传的原始视频进行分割,分割后请求网络路由单元获取能够使用的客户端计算机列表,将分割后的视频指派给与分割数量相同的对应的客户端计算机;

客户端计算机监听网络中视频分发单元的指派指令,接收视频分发单元指派的被分割视频的一部分,并对分割后的该部分视频进行转码操作,转码完成后发送指令给视频合并单元,请求上传转码后的视频;

视频合并单元接收客户端计算机上传的分割视频,并将归属于同一原始视频且转码后的视频进行合并,合并后传送至网络服务器。

进一步的,网络服务器端在接收上传视频后,将原始视频进行物理存储,并将原始视频相关参数存入数据库,原始视频相关参数包括:原始视频唯一标识ID、原始视频格式、原始视频大小、原始视频分辨率、原始视频物理地址。原始视频相关参数作为视频分发、转码和合并的依据。

进一步的,视频分发单元对获取该上传的原始视频进行分割具体为:

根据接收到的网络服务器发送的原始视频ID,请求数据库返回该原始视频所有参数信息,参数信息包括:原始视频格式、原始视频大小、原始视频分辨率、原始视频物理地址;

通过算法将计算出视频要被分割的个数并进行分割;

将分割好的视频块进行物理存储,并进行排队,等待分派。

进一步的,视频分发单元完成对分割视频块的分发:向数据库服务器发送指令,请求获取网络中能够实现视频转码的客户端计算机列表,并筛选出空闲客户端计算机;

进一步的,视频分发单元将排队的分割块和客户端计算机进行配对,向数据库发送配对信息,进行存储,并将配对后的分割块通过网络传输给客户端计算机。

优选的,视频要被分割的个数算法:以每aM为一个单元进行分割,M为单位兆,设视频大小为S,视频时长为L,视频被分割个数为N,单个被分割块编号为i,每块视频开始时间点为iBgn,每块视频结束时间点为iEnd,每块视频的时长为iL,则计算关系为:

N=(S/aM)取整+(S/aM)取余

iL=L/N

优选的,将分割好的视频块进行物理存储,并进行排队,排队顺序以分割时间升序排列,堆排序。

优选的,空闲客户端计算机按最后一次完成转码任务时间升序排列,堆排序。

进一步的,配对信息包括分割块ID、客户端计算机唯一标识。

客户端计算机的是否空闲的判断方法为:视频分发单元向网络路由单元发送请求指令,请求客户端计算机列表,网络路由单元依照数据库中存储的客户端计算机列表地址以分钟为单位进行网络广播,客户端在监听到广播后,向视频分发单元进行响应,返回当前客户端计算机的转码状态,状态分别为:F空闲,B忙。

进一步的,客户端计算机在进行转码时:

A.计算机的MAC作为计算机唯一标识,并在该计算机开机后对互联网上的网络路由单元进行通讯,计算机唯一标识将作为安全令牌,审核通过后,建立连接,进入分发排队序列,排到后接受分发来的分割块数据流;

B.接受到的数据流包含视频分割块本身和转码信息XML文件,XML文件中信息包含原始视频ID,分割块ID,原始视频格式,分辨率信息,客户端根据此信息对分割块进行转码;

C.转码完成后,客户端计算机与视频合并单元建立连接,连接建立原理与步骤A中所述相同,客户端计算机将数据流发送给视频合并单元,数据包含转码后的视频块本身和转码信息XML文件,XML文件中信息包含原始视频ID,分割块ID;

D.若视频合并单元返回忙指令,则客户端计算机自动进行以分钟为单位的等待,等待完成后再次重复步骤C。

进一步的,视频合并单元在接收到转码后分割块后进行物理存储,并进行数据库记录,存储接收到的XML文件信息和物理存储地址以及接收时间,然后核对该分割块对应的原始视频是否已全部转码完成,若完成则该视频进入合并堆队列,等待进行合并,合并完成后,将合并后的视频进行物理存储,并对数据库中对应原始视频的数据进行更新操作,记录物理地址并标记为转码完成。

微课视频分布式转码系统,包括:

网络服务器,用于上传需要转码的视频并将上传的视频传送至数据库服务器;

数据库服务器,用于存储视频转码前后的参数数据;

视频分发单元,接收网络服务器对视频的转码指令,并获取该原始视频进行分割,然后请求网络路由单元获取可用的客户端计算机列表,将视频指派给与分割数量相同的客户端计算机;

客户端计算机,客户端计算机监听网络中视频分发单元的指派指令,接收视频分发单元指派的被分割视频的一部分,并对该部分原始视频进行转码操作,转码完成后发送指令给视频合并单元,请求上传转码后的视频。

视频合并单元,接收客户端计算机上传的转码后的分割视频,并将归属于同一原始视频且转码后的视频进行合并,转码过程完成。

本发明的有益效果:

1.本发明解决了微课视频需要转码时,客户需要人工操作第三方软件进行转码的麻烦,提高了数据处理效率。

2.本发明解决了服务器端大量视频转码所造成的运行压力,和宕机及转码失败的风险。增加了视频转码的可靠性。

3.因为转码分发到客户端的为某一段视频分割块,在未合并前无法进行内容的读取,保证了视频数据的不外泄。且转码过程建立连接都是通过令牌进行,有相当的安全性。

附图说明

图1本发明的系统架构图;

图2本发明的数据处理流程图;

图3本发明的结构单元组成图。

具体实施方式:

下面结合附图对本发明进行详细说明:

分布式技术是一种基于网络的计算机处理技术,与集中式相对应。由于个人计算机的性能得到极大的提高及其使用的普及,使处理能力分布到网络上的所有计算机成为可能。分布式计算是和集中式计算相对立的概念,分布式计算的数据可以分布在很大区域。

本发明的目的是解决大量视频集中在服务器端转码时给服务器造成的运行压力,和可能带来的系统宕机风险。提供一种基于分布式对等计算技术,把网络中的众多计算机暂时不用的运算能力连结起来,使其执行大量视频转码的任务。

如图1、3所示,微课视频分布式转码系统,包括:

Web服务器端,提供微课视频上传的可视化操作页面。

数据库服务器,存储视频转码前后的参数数据

网络路由单元,提供网络中注册可用的客户端计算机信息列表。

视频分发单元,将用户上传的原始视频进行分割并分发但客户端计算机进行转码。

视频合并单元,接收由客户端计算机返回的转码完成的视频片段,并进行合并。

客户端计算机,作为最终执行转码任务的处理单元。

如图2所示,微课视频分布式转码具体方法如下:

步骤(1),Web服务器获取用户上传的视频,对视频及相关信息进行物理存储并通知视频分发单元。

步骤(2),视频分发单元接收Web服务器对某视频的转码指令,并获取该原始视频进行分割,然后请求网络路由单元获取可用的客户端计算机列表,将视频指派给与分割数量相同的客户端计算机。

步骤(3),客户端计算机监听网络中视频分发单元的指派指令,接收视频分发单元指派的被分割视频的一部分,并对该部分原始视频进行转码操作,转码完成后发送指令给视频合并单元,请求上传转码后的视频。

步骤(4),视频合并单元接收客户端计算机上传的转码后的分割视频,并将归属于同一原始视频且转码后的视频进行合并,转码过程完成。

所述步骤(1),Web服务器端在接收用户上传视频后,将原始视频进行物理存储,并将原始视频相关参数存入数据库,参数包括:原始视频唯一标识(以下简称ID)、原始视频格式、原始视频大小、原始视频分辨率、原始视频物理地址。参数作为视频分发、转码和合并的依据。

所述步骤(2),视频分割实现方法如下:

步骤(2.1)根据接收到的Web服务器发送的原始视频ID,请求数据库返回该原始视频所有参数信息(原始视频格式、原始视频大小、原始视频分辨率、原始视频物理地址)。

步骤(2.2)通过算法将计算出视频要被分割的个数,以每20M为一个单元进行分割,设视频大小为S,视频时长为L,视频被分割个数为N,单个被分割块编号为i,每块视频开始时间点为iBgn,每块视频结束时间点为iEnd,每块视频的时长为iL,则他们的计算关系为:

N=(S/20M)取整+(S/20M)取余

iL=L/N

步骤(2.3)将分割好的视频块进行物理存储,并进行排队,等待分派。排队顺序以分割时间升序排列,堆排序。

所述步骤(2),分割视频块的分发实现方法:

步骤(2.4)向数据库服务器发送指令,请求获取网络中已安装分布式视频转码程序的客户端计算机列表,并筛选出空闲客户端计算机(没有未完成转码任务的计算机)。按最后一次完成转码任务时间升序排列,堆排序。

所述步骤(2.4),进一步空闲计算机的判断方法:分发单元向网络路由单元发送请求指令,请求计算机列表,网络路由单元依照数据库中存储的客户端计算机列表地址以分钟为单位进行网络广播,客户端转码程序在监听到广播后,向分发单元进行响应,返回当前客户端计算机的转码状态,状态分别为:F(空闲),B(忙)。

步骤(2.5)将处于堆排序的分割块和客户端计算机进行配对,向数据库发送配对信息(分割块ID、客户端计算机唯一标识)进行存储,并将配对后的分割块通过网络传输给客户端计算机。

所述步骤(3)进一步处理步骤如下:

步骤(3.1)客户端计算机是指安装有分布式转码客户端程序的计算机,转码程序获取计算机的MAC作为计算机唯一标识,并在该计算机开机后对互联网上的网络路由单元进行通讯,计算机唯一标识将作为安全令牌,审核通过后,建立连接,进入分发排队序列。排到后可接受分发来的分割块数据流。

步骤(3.2)接受到的数据流包含视频分割块本身和转码信息XML文件,XML文件中信息包含原始视频ID,分割块ID,原始视频格式,分辨率信息。客户端转码程序根据此信息对分割块进行转码。

步骤(3.3)转码完成后,通过转码程序与合并单元建立连接,连接建立原理与步骤(3.1)中所述相同。将数据流发送给合并单元,数据包含转码后的视频块本身和转码信息XML文件。XML文件中信息包含原始视频ID,分割块ID。若合并单元接收则进入步骤(4)

步骤(3.4)若合并单元返回忙指令,则客户端转码程序自动进行以分钟为单位的等待,等待完成后再次重复步骤(3.3)

所述步骤(4)在接收到转码后分割块后进行物理存储,并进行数据库记录,存储接收到的XML文件信息和物理存储地址以及接收时间。然后核对该分割块对应的原始视频是否已全部 转码完成,若完成则该视频进入合并堆队列,等待进行合并。合并完成后,将合并后的视频进行物理存储,并对数据库中对应原始视频的数据进行更新操作,记录物理地址并标记为转码完成。

上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

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