本发明涉及视频处理技术领域,特别涉及一种视频处理方法、装置及终端。
背景技术:
目前,用户在观看视频时,常常需要将视频从手机等终端上投影至其他设备进行播放,但由于被投设备所支持的视频格式有限,因而,常常出现由于需要投影的视频的格式不符合被投设备所支持的格式而导致无法成功投影的问题,例如:在以苹果appletv盒子作为接收装置,通过无线路由器中转,使用airplay协议将iphone/ipad播放的视频投影至appletv盒子上时,由于appletv盒子只支持苹果系统的mp4、m3u8视频格式,对常见的flv、mkv等格式不支持,因此,无法将mp4、m3u8之外的格式的视频投影至appletv盒子。
技术实现要素:
有鉴于此,本发明实施例所要解决的一个技术问题如何提供一种视频处理方法、装置及终端,在待投影的视频不属于被投设备所支持的预设格式时,通过转码服务将视频的格式进行自动转化来实现视频的投影。
本发明提供了一种视频处理方法,包括:
通过投影服务监控并获取投影请求;
启动下载服务,根据所述投影请求获取待投影的视频;
在所述下载服务获取到所述待投影的视频时,激活监控服务;
通过所述监控服务,判断所述视频的格式是否属于被投终端所支持的预设格式;
如果所述视频的格式不属于所述预设格式,则启用所述视频的格式所对应的转码服务;
通过所述转码服务将所述视频的格式转化为所述预设格式;
通过投影协议将所述预设格式的视频投影至所述被投终端。
在一个实施例中,在判断所述视频的格式是否属于被投终端所支持的预设格式之前,所述方法还包括:
对所述视频的头部进行解析,获得所述视频的格式。
在一个实施例中,所述通过所述转码服务将所述视频的格式转化为所述预设格式,包括:
如果所述视频的格式不是所述预设格式,对所述视频进行解复用和解码;
将经过解复用和解码的视频进行编码并封装为所述预设格式,以获得所述预设格式的视频。
在一个实施例中,所述启动下载服务,根据所述投影请求获取待投影的视频,包括:
从视频服务器中获取所述待投影的视频的下载地址;
基于所述下载地址,使用所述下载服务下载所述待投影的视频,并将所述待投影的视频存储至当前终端;
所述通过投影协议将所述预设格式的视频投影至所述被投终端,包括:
从所述当前终端中读取所述预设格式的视频,以通过所述投影协议将所述预设格式的视频投影至所述被投终端。
在一个实施例中,所述方法还包括:
根据所述当前终端的ip地址(internetprotocoladdress,互联网协议地址),和预设端口号,生成所述当前终端中用于存储所述预设格式的视频的目标缓存地址,其中,所述目标缓存地址的格式符合http协议(hypertexttransferprotocol,超文本传输协议);
所述从所述当前终端中读取所述预设格式的视频,以通过所述投影协议将所述预设格式的视频投影至所述被投终端,包括:
启用http服务;
使用所述http服务将所述目标缓存地址发送至所述被投终端;
在接收到所述被投终端通过所述http协议对所述目标缓存地址的访问时,读取所述预设格式的视频;
通过所述投影协议将所述预设格式的视频投影至所述被投终端。
本发明还提供了一种视频处理装置,包括:
处理模块,用于通过投影服务监控并获取投影请求;
获取模块,用于启动下载服务,根据所述投影请求获取待投影的视频;
激活模块,用于在所述下载服务获取到所述待投影的视频时,激活监控服务;
判断模块,用于通过所述监控服务,判断所述视频的格式是否属于被投终端所支持的预设格式;
启用模块,用于如果所述视频的格式不属于所述预设格式,则启用所述视频的格式所对应的转码服务;
转化模块,用于通过所述转码服务将所述视频的格式转化为所述预设格式;
投影模块,用于通过投影协议将所述预设格式的视频投影至所述被投终端。
在一个实施例中,所述装置还包括:
解析模块,用于在判断所述视频的格式是否属于被投终端所支持的预设格式之前,对所述视频的头部进行解析,获得所述视频的格式。
在一个实施例中,所述转化模块包括:
第一处理子模块,用于如果所述视频的格式不是所述预设格式,对所述视频进行解复用和解码;
第二处理子模块,用于将经过解复用和解码的视频进行编码并封装为所述预设格式,以获得所述预设格式的视频。
在一个实施例中,所述处理模块包括:
获取子模块,用于从视频服务器中获取所述待投影的视频的下载地址;
第三处理子模块,用于基于所述下载地址,使用所述下载服务下载所述待投影的视频,并将所述待投影的视频存储至当前终端;
所述投影模块包括:
读取子模块,用于从所述当前终端中读取所述预设格式的视频,以通过所述投影协议将所述预设格式的视频投影至所述被投终端。
在一个实施例中,所述装置还包括:
生成模块,用于根据所述当前终端的ip(internetprotocoladdress,互联网协议地址)地址和预设端口号,生成所述当前终端中用于存储所述预设格式的视频的目标缓存地址,其中,所述目标缓存地址的格式符合http协议;
所述读取子模块包括:
启用单元,用于启用http服务;
发送单元,用于使用所述http服务将所述目标缓存地址发送至所述被投终端;
读取单元,用于在接收到所述被投终端通过所述http协议对所述目标缓存地址的访问时,读取所述预设格式的视频;
投影单元,用于通过所述投影协议将所述预设格式的视频投影至所述被投终端。
本发明还提供了一种终端,包括:如上述技术方案中任一项所述的视频处理装置。
本发明的实施例提供的技术方案可以包括以下有益效果:
在通过投影服务监控并获取到投影请求后,可根据该投影请求自动获取待投影的视频,进而在下载服务获取到待投影的视频时,激活监控服务,以通过该监控服务,判断待投影的视频的格式是否属于被投终端所支持的预设格式,而如果该视频的格式不属于预设格式,说明无法直接将视频投影至被投终端,因而,需要启用视频的格式所对应的转码服务,以该转码服务将视频的格式转化为预设格式,并通过该投影协议将预设格式的视频自动投影至被投终端,从而在待投影的视频不属于被投设备所支持的预设格式时,通过转码服务将视频的格式进行自动转化来实现视频的投影。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1是根据一示例性实施例示出的一种视频处理方法的流程图。
图2是根据一示例性实施例示出的另一种视频处理方法的流程图。
图3是根据一示例性实施例示出的又一种视频处理方法的流程图。
图4是根据一示例性实施例示出的一种视频处理装置的框图。
图5是根据一示例性实施例示出的另一种视频处理装置的框图。
图6是根据一示例性实施例示出的又一种视频处理装置的框图。
图7是根据一示例性实施例示出的一种具有视频处理装置的ios设备的连接关系的框图。
具体实施方式
现在将参照附图1至7来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本发明实施例可以应用于计算机系统/服务器,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务器一起使用的众所周知的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
计算机系统/服务器可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
如图1所示,本发明实施例中的视频处理方法可以包括:步骤s101至步骤s107,其中,
在步骤s101中,通过投影服务监控并获取投影请求;
在步骤s102中,启动下载服务,根据投影请求获取待投影的视频;
在步骤s103中,在下载服务获取到待投影的视频时,激活监控服务;
在步骤s104中,通过监控服务,判断视频的格式是否属于被投终端所支持的预设格式;
在步骤s105中,如果视频的格式不属于预设格式,则启用视频的格式所对应的转码服务;
在步骤s106中,通过转码服务将视频的格式转化为预设格式;
在步骤s107中,通过投影协议将预设格式的视频投影至被投终端。
在通过投影服务监控并获取到投影请求后,可根据该投影请求自动获取待投影的视频,进而在下载服务获取到待投影的视频时,激活监控服务,以通过该监控服务,判断待投影的视频的格式是否属于被投终端所支持的预设格式,而如果该视频的格式不属于预设格式,说明无法直接将视频投影至被投终端,因而,需要启用视频的格式所对应的转码服务,以该转码服务将视频的格式转化为预设格式,并通过该投影协议将预设格式的视频自动投影至被投终端,从而在待投影的视频不属于被投设备所支持的预设格式时,通过转码服务将视频的格式进行自动转化来实现视频的投影。
在一个实施例中,在判断视频的格式是否属于被投终端所支持的预设格式之前,方法还包括:
对视频的头部进行解析,获得视频的格式。
在判断视频的格式是否属于被投终端所支持的预设格式时,可对获得的待投影的视频的头部进行自动解析,从而准确获得该视频的格式。
如图2所示,在一个实施例中,上述图1所示的步骤s106,即通过转码服务将视频的格式转化为预设格式,可被执行为:
在步骤s201中,如果视频的格式不是预设格式,对视频进行解复用和解码;
在步骤s202中,将经过解复用和解码的视频进行编码并封装为预设格式,以获得预设格式的视频。
如果该视频的格式不是预设格式,则在通过转码服务进行视频格式的转化时,可对该视频进行自动解复用和解码,进而自动地将经过解复用和解码的视频进行编码并封装为预设格式,以获得该预设格式的视频,以便能够通过该投影协议将该视频投影至被投终端上。
其中,该预设格式可以是mp4、m3u8格式等;投影协议可以是airplay协议;被投设备可以是appletv;投影协议可以是airplay服务。
如图3所示,在一个实施例中,上述图1所示的步骤s102,即启动下载服务,根据投影请求获取待投影的视频,可被执行为:
在步骤s301中,从视频服务器中获取待投影的视频的下载地址;
在步骤s302中,基于下载地址,使用下载服务下载待投影的视频,并将待投影的视频存储至当前终端;
上述图1所示的步骤s107,即通过投影协议将预设格式的视频投影至被投终端,可被执行为:
在步骤s303中,从当前终端中读取预设格式的视频,以通过投影协议将预设格式的视频投影至被投终端进行播放。
在获取待投影的视频时,可从视频服务器中自动获取待投影的视频的下载地址,进而基于该下载地址,使用该下载服务自动下载待投影的视频,并将待投影的视频存储至当前终端,以从当前终端中读取预设格式的视频,进而通过投影协议将预设格式的视频投影至被投终端进行播放,从而通过当前终端的转码服务实现视频的读取和投影。
在一个实施例中,方法还包括:
根据当前终端的ip地址和预设端口号,生成当前终端中用于存储预设格式的视频的目标缓存地址,其中,目标缓存地址的格式符合http协议;
从当前终端中读取预设格式的视频,以通过投影协议将预设格式的视频投影至被投终端,包括:
启用http服务;
使用http服务将目标缓存地址发送至被投终端;
在接收到被投终端通过http协议对目标缓存地址的访问时,读取预设格式的视频;
通过投影协议将预设格式的视频投影至被投终端。
在进行视频投影时,可根据该当前终端的ip地址和预设端口号,自动生成http协议的目标缓存地址,进而启用http服务将该目标缓存地址发送至被投终端,这样,在接收到该被投终端通过http协议对目标缓存地址的访问时,即可读取当前终端中预设格式的视频,以通过投影协议将预设格式的视频投影至被投终端,以使被投终端通过该http协议在线访问目标缓存地址中缓存的预设格式的视频,并通过该投影协议将预设格式的视频自动投影至被投终端,以在视频的格式不属于被投设备所支持的格式时仍然能够实现视频的投影。
下面将举例说明本发明的实施例:
在投影服务获取到a视频的投影请求时,根据该投影请求向服务器发送获取a视频的视频获取请求,从该服务器中获取a视频的下载地址;
基于该下载地址,下载a视频,将下载的a视频存储至ipad;
激活监控服务,以判断a视频的格式是否为appletv所支持的格式;
如果不属于,则调用转码模块将a视频的格式转化为appletv所支持的格式;
从该ipad中读取appletv所支持格式的视频;
将appletv所支持格式的视频投影至appletv上,以通过与appletv所连接的大屏设备如电视进行播放。
另外,由于视频的头文件可反映出视频格式,即不同格式的视频的头文件是不同的,因而,在上述实施例中,在判断a视频的格式是否为appletv所支持的格式,可对a视频的头文件进行解析,以获取视频的格式;
而当该视频的格式不是appletv所支持的m3u8、mp4格式时,可对a视频进行解复用和解码,进而将经过解复用和解码的视频重新编码并封装为m3u8或mp4,即可获得m3u8或mp4视频。
下面将结合图7、以airplay投影协议为例进一步详细说明本发明的实施例:
图7中实时转码工作流程的步骤如下:
1)ios(苹果公司开发的移动操作系统)设备702中的视频app从视频服务器701获取要播放的视频的url;
2)视频app的实时转码模块下载视频数据;
3)对下载的数据的视频头进行分析,得到视频信息,包括视频格式;
4)判断是否是appletv703的ios系统支持的格式;
5)如果是ios系统支持的格式直接执行步骤12),如果不是系统支持的格式,如其格式为flv,则执行步骤6);
解析样例:
如下图的头信息为16进制:
464c56010500000009,其中,464c56分别是flv三个字符
6)对下载的视频数据进行解复用;
7)对解复用的视频数据进行解码;
8)采用h.264编码器,对解码后的视频数据重新编码;
9)将编码后的视频数据重新封装为m3u8格式,其中:
m3u8文件样例:
#extm3u8
#ext-x-targetduration:5220
#extinf:5220,
http://media.baofeng.com/entire.ts
#ext-x-endlist
10)启动http服务;
11)转换视频url地址,如由http://meida.baofeng.com/2432.flv转成http://本机的ip:6000;
12)启动ios设备702上的播放器,展现投屏功能;
13)开启投屏,将视频数据投影至接收设备。
其中,投影过程中http服务需要处理用户seek(即拖动进度条的操作)的情况,告诉下载服务优先下载当前播放点的数据进行实时转码。
如图4所示,本发明还提供一种视频处理装置,包括:
处理模块401,被配置为通过投影服务监控并获取投影请求;
获取模块402,被配置为启动下载服务,根据投影请求获取待投影的视频;
激活模块403,被配置为在下载服务获取到待投影的视频时,激活监控服务;
判断模块404,被配置为通过监控服务,判断视频的格式是否属于被投终端所支持的预设格式;
启用模块405,被配置为如果视频的格式不属于预设格式,则启用视频的格式所对应的转码服务;
转化模块406,被配置为通过转码服务将视频的格式转化为预设格式;
投影模块407,被配置为通过投影协议将预设格式的视频投影至被投终端。
在一个实施例中,装置还包括:
解析模块,被配置为在判断视频的格式是否属于被投终端所支持的预设格式之前,对视频的头部进行解析,获得视频的格式。
如图5所示,在一个实施例中,转化模块406可以包括:
第一处理子模块4061,被配置为如果视频的格式不是预设格式,对视频进行解复用和解码;
第二处理子模块4062,被配置为将经过解复用和解码的视频进行编码并封装为预设格式,以获得预设格式的视频。
如图6所示,在一个实施例中,处理模块401可以包括:
获取子模块4011,被配置为从视频服务器中获取待投影的视频的下载地址;
第三处理子模块4012,被配置为基于下载地址,使用下载服务下载待投影的视频,并将待投影的视频存储至当前终端;
投影模块407包括:
读取子模块4071,被配置为从当前终端中读取预设格式的视频,以通过投影协议将预设格式的视频投影至被投终端。
在一个实施例中,装置还包括:
生成模块,被配置为根据当前终端的ip地址和预设端口号,生成当前终端中被配置为存储预设格式的视频的目标缓存地址,其中,目标缓存地址的格式符合http协议;
读取子模块4071包括:
启用单元,被配置为启用http服务;
发送单元,被配置为使用http服务将目标缓存地址发送至被投终端;
读取单元,被配置为在接收到被投终端通过http协议对目标缓存地址的访问时,读取预设格式的视频;
投影单元,被配置为通过投影协议将预设格式的视频投影至被投终端。
本发明还提供了一种终端,包括:如上述技术方案中任一项的视频处理装置。该终端可实现的技术效果如上述视频处理装置可实现的效果类似,此处不再赘述。
另外,本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于装置实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
可能以许多方式来实现本发明的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和系统。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。
本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。