视频文件处理方法、应用服务器及计算机可读存储介质与流程

文档序号:14776487发布日期:2018-06-23 03:31阅读:176来源:国知局
视频文件处理方法、应用服务器及计算机可读存储介质与流程

本发明涉及通信技术领域,尤其涉及一种视频文件处理方法、应用服务器及计算机可读存储介质。



背景技术:

目前,视频的存储及传输架构包括客户端、nginx服务器(一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器,也可以称之为前段服务器)、本地磁盘,其中本地磁盘指的是连接nginx服务器的应用服务器。而对于视频文件而言,所有视频文件均存储于上述本地磁盘上,通过文件系统(file system,fs)的I/O接口传送至nginx服务器,并由nginx服务器的rtmp(Real Time Messaging Protocol,实时消息传输协议)模块对接收的视频文件进行处理,并依据rtmp协议将视频文件以直播流的形式传送至客户端。在上述的视频存储及传输的结构中,由于本地磁盘的硬件容量限制,使得视频文件的存储大小受到限制,另外,由于现在的应用服务器在进行数据读取的过程中,由于受到数据大小,存储空间等等的影响,导致数据读取并不快,故由nginx服务器获取应用服务器的数据内容再通过rtmp模块将视频文件以rtmp的直播流的形式传送至客户端,客户端便不能实现直接对本地磁盘存储的视频文件进行点播的效果。



技术实现要素:

有鉴于此,本发明提出一种视频文件处理方法、应用服务器及计算机可读存储介质,可以利用S3服务器的特性实现视频文件存储的无限扩容,保证视频文件存储的稳定性以及读取的便捷性,同时还可以依据嵌入的视频点播指令在rtmp协议下实现视频点播的服务,提升了用户体验。

首先,为实现上述目的,本发明提出一种应用服务器,所述应用服务器包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的视频文件处理程序,所述视频文件处理程序被所述处理器执行时实现如下步骤:

基于CEPH规范定义S3服务器与nginx之间的调用接口;

上传视频文件至S3服务器并存储至一存储段;

通过nginx服务器接收客户端的视频播放指令,并判断所述视频播放指令与所述播放所述存储段内容的命令是否匹配;及

若所述视频播放指令与所述播放所述存储段内容的命令匹配,通过所述调用接口调取所述存储段的内容至所述nginx服务器,并由所述nginx服务器传输所述存储端的内容至所述客户端。

可选地,

所述nginx服务器传输所述存储端的内容至所述客户端的步骤具体包括:

将获取的所述存储段的内容以rtmp协议传输至所述客户端。

可选地,所述视频播放指令为所述客户端利用播放器打开链接的点击命令。

可选地,所述nginx服务器包括rtmp模块,其中,在nginx服务器的配置文件中定义播放所述存储段内容的命令的步骤具体用于配置所述nginx服务器的所述rtmp模块。

可选地,所述上传视频文件至S3服务器并存储至一存储段的步骤,包括:

定义上传的视频文件名称;及

根据S3服务器规范设定访问所述视频文件的访问权限。

此外,为实现上述目的,本发明还提供一种视频文件处理方法,该方法应用于应用服务器,所述方法包括:

基于CEPH规范定义S3服务器与nginx服务器之间的调用接口;

上传视频文件至S3服务器并存储至一存储段;

在nginx服务器的配置文件中定义播放所述存储段内容的命令;

通过nginx服务器接收客户端的视频播放指令,并判断所述视频播放指令与所述播放所述存储段内容的命令是否匹配;及

若所述视频播放指令与所述播放所述存储段内容的命令匹配,通过所述调用接口调取所述存储段的内容至所述nginx服务器,并由所述nginx服务器传输所述存储端的内容至所述客户端。

可选地,所述nginx服务器传输所述存储端的内容至所述客户端的步骤具体包括:

将获取的所述存储段的内容以rtmp协议传输至所述客户端

可选地,所述视频播放指令为所述客户端利用播放器打开链接的点击命令。

可选地,所述nginx服务器包括rtmp模块,其中,在nginx服务器的配置文件中定义播放所述存储段内容的命令的步骤具体用于配置所述nginx服务器的所述rtmp模块。

可选地,所述上传视频文件至S3服务器并存储至一存储段的步骤,具体包括:

定义上传的视频文件名称;及

根据S3服务器规范设定访问所述视频文件的访问权限。

进一步地,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有视频文件处理程序,所述视频文件处理程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的视频文件处理方法的步骤。

相较于现有技术,本发明所提出的应用服务器、视频文件处理方法及计算机可读存储介质,首先,基于CEPH规范定义S3服务器与nginx服务器之间的调用接口;其次,上传视频文件至S3服务器并存储至一存储段;然后,在nginx服务器的配置文件中定义播放所述存储段内容的命令;接着,通过nginx服务器接收客户端的视频播放指令,并判断所述视频播放指令与所述播放所述存储段内容的命令是否匹配;若所述视频播放指令与所述播放所述存储段内容的命令匹配,最后通过所述调用接口调取所述存储段的内容至所述nginx服务器,并由所述nginx服务器传输所述存储端的内容至所述客户端。这样,既可以利用S3服务器快速读取数据的特性,实现客户端对本地磁盘存储的视频文件的点播效果。又可以利用S3服务器的特性实现视频文件存储的任意存储,保证视频文件存储的稳定性以及读取的便捷性,同时还可以依据嵌入的视频点播指令在rtmp协议下实现视频点播的服务,提升了用户体验。

附图说明

图1是本发明各个实施例一可选的应用环境示意图;

图2是图1中应用服务器一可选的硬件架构的示意图;

图3是本发明视频文件处理程序第一实施例的程序模块图;

图4为本发明视频文件处理方法第一实施例的流程图;

图5为本发明视频文件处理方法第二实施例的流程图。

附图标记:

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。

参阅图1所示,是本发明各个实施例一可选的应用环境示意图。

在本实施例中,本发明可应用于包括,但不仅限于,客户端1、应用服务器2、网络3、S3(Simple Storage Service,简单存储服务)服务器4、nginx服务器5的应用环境中,其中应用服务器2连接并管理S3服务器4和nginx服务器5,客户端1则直接连接nginx服务器5,并通过nginx服务器5发起相应请求至应用服务器2,并由应用服务器2控制调取或处理存储于S3服务器4中的对象。另外,所述客户端1可以是移动电话、智能电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、导航装置、车载装置等等的可移动设备,以及诸如数字TV、台式计算机、笔记本、服务器等等的固定终端。所述应用服务器2可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器等计算设备,该应用服务器2可以是独立的服务器,也可以是多个服务器所组成的服务器集群。所述网络3可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,GSM)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi、通话网络等无线或有线网络。

所述S3服务器4存储和检索的资产被称为对象,而对象存储在存储段(bucket)中,并根据对象的不同,将不同的对象存储在不同的存储段,比如file文件存储在file存储段,视频文件存储在movie存储段。其中S3服务器具有其他服务器所不具有的特点,即文件存储量大,不用担心存储空间的限制;另外,对S3服务器上文件的读取速度要远远快于其他存储媒介的数据读取速度。

其中,所述应用服务器2中通过所述网络3分别与一个或多个所述客户端1、S3服务器4、nginx服务器5通信连接,以进行数据传输和交互。

基于上述应用环境各个组件的介绍,应用服务器2连接并管理S3服务器4和nginx服务器5,定义相应调用接口,而客户端1则直接连接nginx服务器5,并通过nginx服务器5发起相应请求至应用服务器2,并由应用服务器2控制调取或处理存储于S3服务器4中的对象。

本实施例中,所述应用服务器2安装并运行有视频文件处理程序200时,基于CEPH规范定义S3服务器4与nginx服务器5之间的调用接口;上传视频文件至S3服务器4并存储至一存储段;在nginx服务器5的配置文件中定义播放所述存储段内容的命令;通过nginx服务器5接收客户端1的视频播放指令,并判断所述视频播放指令与定义的所述播放所述存储段内容的命令是否匹配;若所述视频播放指令与定义的所述播放所述存储段内容的命令匹配,通过所述调用接口调取所述存储段的内容至nginx服务器;nginx服务器将获取的所述存储段的内容以rtmp协议传输至客户端1。这样,由于S服务器本身快速读取数据的特性使得客户端1可实现对本地磁盘存储的视频文件的点播。又可以利用S3服务器4的特性实现视频文件任意存储,保证视频文件存储的稳定性以及读取的便捷性,同时还可以依据嵌入的视频点播指令在rtmp协议下实现视频点播的服务,提升了用户体验。

参阅图2所示,是图1中应用服务器2一可选的硬件架构的示意图。本实施例中,所述应用服务器2可包括,但不仅限于,可通过系统总线相互通信连接存储器11、处理器12、网络接口13。需要指出的是,图2仅示出了具有组件11-13的应用服务器2,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。

其中,所述存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器11可以是所述应用服务器2的内部存储单元,例如该应用服务器2的硬盘或内存。在另一些实施例中,所述存储器11也可以是所述应用服务器2的外部存储设备,例如该应用服务器2上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器11还可以既包括所述应用服务器2的内部存储单元也包括其外部存储设备。本实施例中,所述存储器11通常用于存储安装于所述应用服务器2的操作系统和各类应用软件,例如所述视频文件处理程序200的程序代码等。此外,所述存储器11还可以用于暂时地存储已经输出或者将要输出的各类数据。

所述处理器12在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器12通常用于控制所述应用服务器2的总体操作,例如执行与所述客户端1进行数据交互或者通信相关的控制和处理等。本实施例中,所述处理器12用于运行所述存储器11中存储的程序代码或者处理数据,例如运行所述的视频文件处理程序200等。

所述网络接口13可包括无线网络接口或有线网络接口,该网络接口13通常用于在所述应用服务器2与其他电子设备之间建立通信连接。本实施例中,所述网络接口13主要用于通过所述网络3将所述应用服务器2与一个或多个所述客户端1、S3服务器4、nginx服务器5相连,在所述应用服务器2与所述一个或多个客户端1、S3服务器4、nginx服务器5之间的建立数据传输通道和通信连接。

至此,己经详细介绍了本发明各个实施例的应用环境和相关设备的硬件结构和功能。下面,将基于上述应用环境和相关设备,提出本发明的各个实施例。

首先,本发明提出一种视频文件处理程序200。

参阅图3所示,是本发明视频文件处理程序200第一实施例的程序模块图。

本实施例中,所述的视频文件处理程序200包括一系列的存储于存储器11上的计算机程序指令,当该计算机程序指令被处理器12执行时,可以实现本发明各实施例的视频文件的处理操作。在一些实施例中,基于该计算机程序指令各部分所实现的特定的操作,所述视频文件处理程序200可以被划分为一个或多个模块。例如,在图3中,所述的视频文件处理程序200可以被分割成接口定义模块201、上传模块202、命令定义模块203、接收模块204、获取模块205及传输模块206。其中:

所述接口定义模块201,用于基于CEPH规范定义S3服务器4与nginx服务器5之间的调用接口。

CEPH是一种分布式文件系统,其可以分为四个层次:(1)基础存储系统、(2)基础库librados、(3)高层应用接口:这一层包括了三个部分:RADOS GW(RADOS Gateway)、RBD(Reliable Block Device)和Ceph FS(Ceph File System),其作用是在librados库的基础上提供抽象层次更高、更便于应用或客户端1使用的上层接口,其中RADOS GW是一个提供与Amazon S3服务器4和Swift兼容的RESTful API的gateway,以供相应的对象存储应用开发使用。(4)应用层。上述CEPH具有CEPH规范,通过CEPH规范可以CEPH系统中各个层次之间的接口调用。

在上述CEPH系统中,其中一个层次——高层应用接口可以为外部相连的服务器或者客户端1提供上层接口,即CEPH可以规范自身同S3服务器4和nginx服务器5的调用接口,同时,由于S3服务器4是一种简单存储服务装置,存在特定的访问接口,CEPH可以通过规范定义S3服务器4和nginx服务器5在存储对象调用过程中的调用接口。

所述上传模块202,用于上传视频文件至S3服务器4并存储至一存储段。具体地,所述上传模块202通过以下方式实现所述上传视频文件至S3服务器4并存储至一存储段的步骤:

所述上传模块202定义上传的视频文件名称;并根据S3服务器4规范设定访问所述视频文件的访问权限。

在本实施方式中,可以将mp4或者flv文件上传到S3服务器4的movie这个bucket(存储段),并将上传的文件名称命名为"video.mp4",同时设置访问权限为"public-read"以及对应的content-type,以s3cmd为例,其设置指令为:s3cmd put video.mp4s3://movie--acl-public。

所述命令定义模块203,在nginx服务器5的配置文件中定义播放所述存储段内容的命令。

具体地,所述nginx服务器5包括rtmp模块,其中,在nginx服务器5的配置文件中定义播放所述存储段内容的命令的步骤具体用于配置所述nginx服务器5的所述rtmp模块。rtmp(Real Time Messaging Protocol)实时消息传送协议是Adobe Systems公司为Flash播放器和服务器之间音频、视频和数据传输开发的开放协议。

在本实施方式中,配置nginx服务器5的rtmp模块,通过在nginx.conf中新增如下内容来实现:

所述接收模块204,通过nginx服务器5接收客户端1的视频播放指令,并判断所述视频播放指令与所述播放所述存储段内容的命令是否匹配。,所述视频播放指令用于触发播放所述存储段内容的命令。所述视频播放指令为所述客户端1利用播放器打开链接的点击命令。

在本实施方式中,所述客户端1可以通过利用VLC多媒体播放器或者其他支持rtmp协议的播放器打开如下链接来发起视频播放指令:rtmp://{nginx_server}/vod_http/video.mp4。

所述获取模块205,用于在所述视频播放指令与所述播放所述存储段内容的命令匹配时,通过所述调用接口调取所述存储段的内容至所述nginx服务器。

所述传输模块206,用于控制所述nginx服务器传输所述存储端的内容至客户端1。

通过上述程序模块201-206,本发明所提出的视频文件处理程序200,首先,基于CEPH规范定义S3服务器4与nginx服务器5之间的调用接口;其次,上传视频文件至S3服务器4并存储至一存储段;然后,在nginx服务器5的配置文件中定义播放所述存储段内容的命令;接着,通过nginx服务器接收客户端的视频播放指令,并判断所述视频播放指令与所述播放所述存储段内容的命令是否匹配;若所述视频播放指令与所述播放所述存储段内容的命令匹配,最后通过所述调用接口调取所述存储段的内容至所述nginx服务器,并由所述nginx服务器传输所述存储端的内容至所述客户端。这样,既可以利用S3服务器快速读取数据的特性,实现客户端对本地磁盘存储的视频文件的点播效果。又可以利用S3服务器的特性实现视频文件存储的任意存储,保证视频文件存储的稳定性以及读取的便捷性,同时还可以依据嵌入的视频点播指令在rtmp协议下实现视频点播的服务,提升了用户体验。

此外,本发明还提出一种视频文件处理方法。

参阅图4所示,是本发明视频文件处理方法第一实施例的实施流程示意图。在本实施例中,根据不同的需求,图4所示的流程图中的步骤的执行顺序可以改变,某些步骤可以省略。

步骤S401,基于CEPH规范定义S3服务器4与nginx服务器5之间的调用接口。

CEPH是一种分布式文件系统,其可以分为四个层次:(1)基础存储系统、(2)基础库librados、(3)高层应用接口:这一层包括了三个部分:RADOS GW(RADOS Gateway)、RBD(Reliable Block Device)和Ceph FS(Ceph File System),其作用是在librados库的基础上提供抽象层次更高、更便于应用或客户端1使用的上层接口,其中RADOS GW是一个提供与Amazon S3服务器4和Swift兼容的RESTful API的gateway,以供相应的对象存储应用开发使用。(4)应用层。上述CEPH具有CEPH规范,通过CEPH规范可以CEPH系统中各个层次之间的接口调用。

在上述CEPH系统中,其中一个层次——高层应用接口可以为外部相连的服务器或者客户端1提供上层接口,即CEPH可以规范自身同S3服务器4和nginx服务器5的调用接口,同时,由于S3服务器4是一种简单存储服务装置,存在特定的访问接口,CEPH可以通过规范定义S3服务器4和nginx服务器5在存储对象调用过程中的调用接口。

步骤S402,上传视频文件至S3服务器4并存储至一存储段。具体地,所述上传视频文件至S3服务器4并存储至一存储段的具体步骤将在本发明视频文件处理方法第二实施例(图5)进行详述。

步骤S403,在nginx服务器5的配置文件中定义播放所述存储段内容的命令。

具体地,所述nginx服务器5包括rtmp模块,其中,在nginx服务器5的配置文件中定义播放所述存储段内容的命令的步骤具体用于配置所述nginx服务器5的所述rtmp模块。rtmp(Real Time Messaging Protocol)实时消息传送协议是Adobe Systems公司为Flash播放器和服务器之间音频、视频和数据传输开发的开放协议。

在本实施方式中,配置nginx服务器5的rtmp模块,通过在nginx.conf中新增如下内容来实现:

步骤S404,通过nginx服务器5接收客户端1的视频播放指令,并判断所述视频播放指令与所述播放所述存储段内容的命令是否匹配。所述视频播放指令为所述客户端1利用播放器打开链接的点击命令。

在本实施方式中,所述客户端1可以通过利用VLC多媒体播放器或者其他支持rtmp协议的播放器打开如下链接来发起视频播放指令:rtmp://{nginx_server}/vod_http/video.mp4。

步骤S405,在所述视频播放指令与所述播放所述存储段内容的命令匹配时,通过所述调用接口调取所述存储段的内容至所述nginx服务器。。

步骤S406,用于控制所述nginx服务器传输所述存储端的内容至客户端1。

通过上述步骤S401-406,本发明所提出的视频文件处理方法,首先,基于CEPH规范定义S3服务器4与nginx服务器5之间的调用接口;其次,上传视频文件至S3服务器4并存储至一存储段;然后,在nginx服务器5的配置文件中定义播放所述存储段内容的命令;接着,通过nginx服务器接收客户端的视频播放指令,并判断所述视频播放指令与所述播放所述存储段内容的命令是否匹配;若所述视频播放指令与所述播放所述存储段内容的命令匹配,最后通过所述调用接口调取所述存储段的内容至所述nginx服务器,并由所述nginx服务器传输所述存储端的内容至所述客户端。这样,既可以利用S3服务器快速读取数据的特性,实现客户端对本地磁盘存储的视频文件的点播效果。又可以利用S3服务器的特性实现视频文件存储的任意存储,保证视频文件存储的稳定性以及读取的便捷性,同时还可以依据嵌入的视频点播指令在rtmp协议下实现视频点播的服务,提升了用户体验。

参阅图5所示,是本发明视频文件处理方法第二实施例的实施流程示意图。在本实施例中,根据不同的需求,图5所示的流程图中的步骤的执行顺序可以改变,某些步骤可以省略。

在本实施例中,所述上传视频文件至S3服务器4并存储至一存储段的流程,具体包括如下步骤:

步骤S501,定义上传的视频文件名称。

步骤S502,根据S3服务器4规范设定访问所述视频文件的访问权限。

在本实施方式中,可以将mp4或者flv文件上传到S3服务器4的movie这个bucket(存储段),并将上传的文件名称命名为"video.mp4",同时设置访问权限为"public-read"以及对应的content-type,以S3服务器cmd为例,其设置指令为:s3cmd put video.mp4s3://movie--acl-public。

通过上述步骤S501-502,本发明所提出的视频文件处理方法,可以通过定义上传的视频文件名称以及根据S3服务器4规范设定访问所述视频文件的访问权限来上传视频文件至S3服务器4。这样,实现视频文件存储的无限扩容,保证视频文件存储的稳定性以及读取的便捷性。

进一步地,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有视频文件处理程序,所述视频文件处理程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的视频文件处理方法的步骤。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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