CN108429922B - 视频文件处理方法、应用服务器及计算机可读存储介质 - Google Patents
视频文件处理方法、应用服务器及计算机可读存储介质 Download PDFInfo
- Publication number
- CN108429922B CN108429922B CN201810003951.2A CN201810003951A CN108429922B CN 108429922 B CN108429922 B CN 108429922B CN 201810003951 A CN201810003951 A CN 201810003951A CN 108429922 B CN108429922 B CN 108429922B
- Authority
- CN
- China
- Prior art keywords
- server
- video file
- hls
- http
- nginx
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
- H04N21/2347—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving video stream encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/254—Management at additional data server, e.g. shopping server, rights management server
- H04N21/2541—Rights Management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8455—Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
Abstract
本发明公开了一种视频文件处理方法,所述方法包括:基于CEPH规范定义S3服务器与nginx服务器之间的调用接口;上传视频文件至S3服务器并存储至一存储段;在所述nginx服务器的配置文件中定义HTTP转换为HLS的命令;通过所述调用接口将所述存储段中的视频文件以HTTP数据流的形式推送至所述nginx服务器;通过所述HTTP转换为HLS的命令使得所述nginx服务器将所述视频文件的HTTP数据流转换为HLS数据流;及命令所述客户端下载所述HLS数据流。本发明还提供一种应用服务器及计算机可读存储介质。本发明将现有的nginx服务器和客户端的rtmp协议转变成HLS,实现了视频数据的可下载性,同时也由于HLS的分发、加密特性,可以增加视频文件的安全性,同时还可以实现CDN分流。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种视频文件处理方法、应用服务器及计算机可读存储介质。
背景技术
目前,视频的存储及传输架构包括客户端、nginx(一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器,在本文中可以称之为前段服务器)、本地磁盘,其中本地磁盘指的是连接nginx服务器的应用服务器。而对于视频文件而言,所有视频文件均存储于本地磁盘上,通过文件系统(file system,fs)的I/O接口传送至nginx,并由nginx的rtmp(Real Time Messaging Protocol,实时消息传输协议)模块对接收的视频文件进行处理,并依据rtmp协议将视频文件以直播流的形式传送至客户端。在上述的视频存储及传输的结构中,由于本地磁盘的硬件容量限制,使得视频文件的存储大小受到限制,另外,由于rtmp的数据传输格式不支持端对端的数据下载服务,故在nginx通过rtmp模块将视频文件以rtmp的直播流的形式传送至客户端时,客户端无法针对本地存储的视频文件进行下载。
发明内容
有鉴于此,本发明提出一种视频文件处理方法、应用服务器及计算机可读存储介质,可以利用S3服务器的特性实现视频文件存储的无限扩容,保证视频文件存储的稳定性以及读取的便捷性,同时由于将现有的nginx服务器和客户端的rtmp协议转变成HLS,实现了视频数据的可下载性,同时也由于HLS的分发、加密特性,可以增加视频文件的安全性,同时还可以实现CDN分流。
首先,为实现上述目的,本发明提出一种应用服务器,所述应用服务器包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的视频文件处理程序,所述视频文件处理程序被所述处理器执行时实现如下步骤:
基于CEPH规范定义S3服务器与nginx服务器之间的调用接口;
上传视频文件至S3服务器并存储至一存储段;
在所述nginx服务器的配置文件中定义HTTP转换为HLS的命令;
通过所述调用接口将所述存储段中的视频文件以HTTP数据流的形式推送至所述nginx服务器;
通过所述HTTP转换为HLS的命令使得所述nginx服务器将所述视频文件的HTTP数据流转换为HLS数据流;及
命令所述客户端下载所述HLS数据流。
可选地,在所述通过所述HTTP转换为HLS的命令使得所述nginx服务器将所述视频文件的HTTP数据流转换为HLS数据流发送至客户端的步骤之前,所述视频文件处理程序被所述处理器执行时,还实现如下步骤:
连接所述客户端至所述nginx服务器。
可选地,所述上传视频文件至S3服务器并存储至一存储段的步骤,具体包括:
定义上传的视频文件名称;及
根据S3服务器规范设定访问所述视频文件的访问权限。
可选地,所述在nginx服务器的配置文件中定义HTTP转换为HLS的命令的步骤,具体包括:
在所述nginx服务器rtmp模块的配置文件中定义HTTP转换为HLS的命令。
可选地,所述连接所述客户端至所述nginx服务器的步骤,包括:
通过预设播放器打开预设地址。
此外,为实现上述目的,本发明还提供一种视频文件处理方法,该方法应用于应用服务器,所述方法包括:
基于CEPH规范定义S3服务器与nginx服务器之间的调用接口;
上传视频文件至S3服务器并存储至存储段;
在所述nginx服务器的配置文件中定义HTTP转换为HLS的命令;
通过所述调用接口将所述存储段中的视频文件以HTTP数据流的形式推送至所述nginx服务器;
通过所述HTTP转换为HLS的命令使得所述nginx服务器将所述视频文件的HTTP数据流转换为HLS数据流;及
命令所述客户端下载所述HLS数据流。
可选地,在所述通过所述HTTP转换为HLS的命令使得所述nginx服务器将所述视频文件的HTTP数据流转换为HLS数据流发送至客户端的步骤之前,所述方法还包括:
连接所述客户端至所述nginx服务器。
可选地,所述上传视频文件至S3服务器并存储至一存储段的步骤,具体包括:
定义上传的视频文件名称;及
根据S3服务器规范设定访问所述视频文件的访问权限。
可选地,所述在nginx服务器的配置文件中定义HTTP转换为HLS的命令的步骤,具体包括:
在所述nginx服务器rtmp模块的配置文件中定义HTTP转换为HLS的命令。
可选地,所述连接所述客户端至所述nginx服务器的步骤,包括:
通过预设播放器打开预设地址。
进一步地,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有视频文件处理程序,所述视频文件处理程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的视频文件处理方法的步骤。
相较于现有技术,本发明所提出的应用服务器、视频文件处理方法及计算机可读存储介质,首先,基于CEPH规范定义S3服务器与nginx服务器之间的调用接口;其次,上传视频文件至S3服务器4并存储至存储段;再次,在所述nginx服务器的配置文件中定义HTTP转换为HLS的命令;然后,通过所述调用接口将所述存储段中的视频文件以HTTP数据流的形式推送至所述nginx服务器;接着,通过所述HTTP转换为HLS的命令使得所述nginx服务器将所述视频文件的HTTP数据流转换为HLS数据流;最后,命令所述客户端下载所述HLS数据流。这样,既可以避免现有技术中nginx通过rtmp模块将视频文件以rtmp的直播流的形式传送至客户端,客户端无法针对本地存储的视频文件进行下载的弊端。又可以利用S3服务器的特性实现视频文件的任意存储,保证视频文件存储的稳定性以及读取的便捷性,同时由于将现有的nginx服务器和客户端的rtmp协议转变成HLS,实现了视频数据的可下载性,同时也由于HLS的分发、加密特性,可以增加视频文件的安全性,同时还可以实现CDN分流。
附图说明
图1是本发明各个实施例一可选的应用环境示意图;
图2是图1中应用服务器一可选的硬件架构的示意图;
图3是本发明视频文件处理程序第一实施例的程序模块图;
图4为本发明视频文件处理方法第一实施例的流程图;
图5为本发明视频文件处理方法第二实施例的流程图;
图6为本发明视频文件处理方法第三实施例的流程图。
附图标记:
客户端 | 1 |
应用服务器 | 2 |
网络 | 3 |
S3服务器 | 4 |
nginx服务器 | 5 |
存储器 | 11 |
处理器 | 12 |
网络接口 | 13 |
视频文件处理程序 | 200 |
接口定义模块 | 201 |
上传模块 | 202 |
命令定义模块 | 203 |
推送模块 | 204 |
发送模块 | 205 |
播放模块 | 206 |
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
参阅图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)、全球移动通讯系统(GlobalSystem of Mobile communication,GSM)、宽带码分多址(Wideband Code DivisionMultiple 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,当所述视频文件处理程序200运行时,所述应用服务器2基于CEPH规范定义上述S3服务器4与nginx服务器5之间的调用接口;上传视频文件至S3服务器4并存储至存储段;在所述nginx服务器5的配置文件中定义HTTP转换为HLS的命令;通过所述调用接口将所述存储段中的视频文件以HTTP数据流的形式推送至所述nginx服务器5;通过所述HTTP转换为HLS的命令使得所述nginx服务器5将所述视频文件的HTTP数据流转换为HLS数据流发送;命令所述客户端1下载所述HLS数据流。这样,既可以避免现有技术中nginx通过rtmp模块将视频文件以rtmp的直播流的形式传送至客户端1,客户端1无法针对本地存储的视频文件进行下载的弊端。又可以利用S3服务器4的特性实现视频文件的任意存储,保证视频文件存储的稳定性以及读取的便捷性,同时由于将现有的nginx服务器5和客户端1的rtmp协议转变成HLS,实现了视频数据的可下载性,同时也由于HLS的分发、加密特性,可以增加视频文件的安全性,同时还可以实现内容分发网络(Content Delivery Network,CDN)分流。
参阅图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 FileSystem),其作用是在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的配置文件中定义HTTP转换为HLS的命令。
具体地,所述nginx服务器5包括rtmp模块,所述命令定义模块203,在所述nginx服务器5rtmp模块的配置文件中定义HTTP转换为HLS的命令;及替换配置文件中的代码{nginx_server}为nginx服务器5的IP或者域名。
其中,rtmp(Real Time Messaging Protocol)实时消息传送协议是AdobeSystems公司为Flash播放器和服务器之间音频、视频和数据传输开发的开放协议。HLS(HTTP Live Streaming)是Apple的动态码率自适应技术。主要用于PC和Apple终端的音视频服务。包括一个m3u(8)的索引文件,TS媒体分片文件和key加密串文件。通过HLS,可以实现视频文件分片发送,还可以对发送的视频文件进行加密处理。
在本实施方式中,具体使rtmp模块将HTTP转换为HLS的配置代码为:
在本实施方式中,使用ffmpeg将所述存储段中的视频文件以HTTP数据流的形式推送至所述nginx服务器5的具体代码体现为:ffmpeg-re-i http://s3.ceph.work/movie/video.mp4-c:v copy-c:a aac-ar 44100-ab 128k-ac 2-strict-2-f flv rtmp://{nginx_server}/myapp/movie。
所述推送模块204,用于通过所述调用接口将所述存储段中的视频文件以HTTP数据流的形式推送至所述nginx服务器5。具体地,所述推送模块204,使用ffmpeg来实现通过所述调用接口将所述存储段中的视频文件以HTTP数据流的形式推送至所述nginx服务器5的步骤。FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。通过FFmpeg,可以使得存储段内的视频文件可以HTTP数据流的形式进行传输。
所述发送模块205,用于通过所述HTTP转换为HLS的命令使得所述nginx服务器5将所述视频文件的HTTP数据流转换为HLS数据流。在本实施方式中,HLS数据流的特性在于可以支持客户端对数据的下载。
具体地,在所述通过所述HTTP转换为HLS的命令使得所述nginx服务器5将所述视频文件的HTTP数据流转换为HLS数据流的步骤之前,所述发送模块205还用于连接所述客户端1至所述nginx服务器5。具体地,所述发送模块205通过预设播放器打开预设地址以实现将所述客户端1连接至所述nginx服务器5的步骤。
在本实施方式中,连接所述客户端1至所述nginx服务器5的方式可以通过如下手段实现:使用VLC播放器或者其他支持HLS的播放器打开预设地址,例如:http://{nginx_server}/myapp/movie.m3u8。
所述播放模块206,用于命令所述客户端1下载所述HLS数据流。这样,用户在客户端1观看的视频数据具有可下载性。
通过上述程序模块201-206,本发明所提出的视频文件处理程序200,首先,基于CEPH规范定义S3服务器4与nginx服务器5之间的调用接口;其次,上传视频文件至S3服务器4并存储至存储段;再次,在所述nginx服务器5的配置文件中定义HTTP转换为HLS的命令;然后,通过所述调用接口将所述存储段中的视频文件以HTTP数据流的形式推送至所述nginx服务器5;接着,通过所述HTTP转换为HLS的命令使得所述nginx服务器5将所述视频文件的HTTP数据流转换为HLS数据流;最后,命令所述客户端1下载所述HLS数据流。这样,既可以避免现有技术中nginx通过rtmp模块将视频文件以rtmp的直播流的形式传送至客户端1,客户端1无法针对本地存储的视频文件进行下载的弊端。又可以利用S3服务器4的特性实现视频文件的任意存储,保证视频文件存储的稳定性以及读取的便捷性,同时由于将现有的nginx服务器5和客户端1的rtmp协议转变成HLS,实现了视频数据的可下载性,同时也由于HLS的分发、加密特性,可以增加视频文件的安全性,同时还可以实现CDN分流。
此外,本发明还提出一种视频文件处理方法。
参阅图4所示,是本发明视频文件处理方法第一实施例的实施流程示意图。在本实施例中,根据不同的需求,图4所示的流程图中的步骤的执行顺序可以改变,某些步骤可以省略。
步骤S401,基于CEPH规范定义S3服务器4与nginx服务器5之间的调用接口。
CEPH是一种分布式文件系统,其可以分为四个层次:(1)基础存储系统、(2)基础库librados、(3)高层应用接口:这一层包括了三个部分:RADOSGW(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的配置文件中定义HTTP转换为HLS的命令。
步骤S404,通过所述调用接口将所述存储段中的视频文件以HTTP数据流的形式推送至所述nginx服务器5。具体地,所述应用服务器2,使用ffmpeg来实现通过所述调用接口将所述存储段中的视频文件以HTTP数据流的形式推送至所述nginx服务器5的步骤。FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。通过FFmpeg,可以使得存储段内的视频文件可以HTTP数据流的形式进行传输。
步骤S405,通过所述HTTP转换为HLS的命令使得所述nginx服务器5将所述视频文件的HTTP数据流转换为HLS数据流。
具体地,在所述通过所述HTTP转换为HLS的命令使得所述nginx服务器5将所述视频文件的HTTP数据流转换为HLS数据流发送至客户端1的步骤之前,所述应用服务器2还连接所述客户端1至所述nginx服务器5。具体地,所述应用服务器2通过预设播放器打开预设地址以实现将所述客户端1连接至所述nginx服务器5的步骤。
在本实施方式中,连接所述客户端1至所述nginx服务器5的方式可以通过如下手段实现:使用VLC播放器或者其他支持HLS的播放器打开预设地址,例如:http://{nginx_server}/myapp/movie.m3u8。
步骤S406,命令所述客户端1下载所述HLS数据流。这样,用户在客户端1观看的视频数据具有可下载性。
通过上述步骤S401-406,本发明所提出的视频文件处理方法,首先,基于CEPH规范定义S3服务器4与nginx服务器5之间的调用接口;其次,上传视频文件至S3服务器4并存储至存储段;再次,在所述nginx服务器5的配置文件中定义HTTP转换为HLS的命令;然后,通过所述调用接口将所述存储段中的视频文件以HTTP数据流的形式推送至所述nginx服务器5;接着,通过所述HTTP转换为HLS的命令使得所述nginx服务器5将所述视频文件的HTTP数据流转换为HLS数据流;最后,命令所述客户端1下载所述HLS数据流。这样,既可以避免现有技术中nginx通过rtmp模块将视频文件以rtmp的直播流的形式传送至客户端1,客户端1无法针对本地存储的视频文件进行下载的弊端。又可以利用S3服务器4的特性实现视频文件存储的无限扩容,保证视频文件存储的稳定性以及读取的便捷性,同时由于将现有的nginx服务器5和客户端1的rtmp协议转变成HLS,实现了视频数据的可下载性,同时也由于HLS的分发、加密特性,可以增加视频文件的安全性,同时还可以实现CDN分流。
参阅图5所示,是本发明视频文件处理方法第二实施例的实施流程示意图。在本实施例中,根据不同的需求,图5所示的流程图中的步骤的执行顺序可以改变,某些步骤可以省略。
在本实施例中,所述上传视频文件至S3服务器4并存储至一存储段的流程,具体包括如下步骤:
步骤S501,定义上传的视频文件名称。具体的名称根据用户需要自行设定。
步骤S502,根据S3服务器4规范设定访问所述视频文件的访问权限。
在本实施方式中,可以将mp4或者flv文件上传到S3服务器4的movie这个bucket(存储段),并将上传的文件名称命名为"video.mp4",同时设置访问权限为"public-read"以及对应的content-type,以s3cmd为例,其设置指令为:s3cmd put video.mp4s3://movie--acl-public。
通过上述步骤S501-502,本发明所提出的视频文件处理方法,可以通过定义上传的视频文件名称以及根据S3规范设定访问所述视频文件的访问权限来上传视频文件至S3服务器4。这样,实现视频文件存储的无限扩容,保证视频文件存储的稳定性以及读取的便捷性。
参阅图6所示,是本发明视频文件处理方法第三实施例的实施流程示意图。在本实施例中,根据不同的需求,图6所示的流程图中的步骤的执行顺序可以改变,某些步骤可以省略。
在本实施例中,所述nginx服务器5包括rtmp模块,所述在nginx服务器5的配置文件中定义HTTP转换为HLS的命令的步骤的流程,具体包括如下步骤:
步骤S601,在所述nginx服务器5rtmp模块的配置文件中定义HTTP转换为HLS的命令。
步骤S602,替换配置文件中的代码{nginx_server}为nginx服务器5的IP或者域名。
本实施例中,rtmp(Real Time Messaging Protocol)实时消息传送协议是AdobeSystems公司为Flash播放器和服务器之间音频、视频和数据传输开发的开放协议。HLS(HTTP Live Streaming)是Apple的动态码率自适应技术,主要用于PC和Apple终端的音视频服务。包括一个m3u(8)的索引文件,TS媒体分片文件和key加密串文件。通过HLS,可以实现视频文件分片发送下载,还可以对发送的视频文件进行加密处理。
在本实施方式中,具体使rtmp模块将HTTP转换为HLS的配置代码为:
在本实施方式中,使用ffmpeg将所述存储段中的视频文件以HTTP数据流的形式推送至所述nginx服务器5的具体代码体现为:ffmpeg-re-i http://s3.ceph.work/movie/video.mp4-c:v copy-c:a aac-ar 44100-ab 128k-ac 2-strict-2-f flv rtmp://{nginx_server}/myapp/movie。
通过上述步骤S601-602,本发明所提出的视频文件处理方法,可以在nginx服务器5的配置文件中定义HTTP转换为HLS的命令。这样,由于HLS的分发、加密特性,可以增加视频文件的安全性,同时还可以实现CDN分流。
进一步地,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有视频文件处理程序,所述视频文件处理程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的视频文件处理方法的步骤。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种视频文件处理方法,应用于应用服务器,其特征在于,所述方法包括:
所述应用服务器连接并管理S3服务器和nginx服务器,并基于CEPH规范定义S3服务器与nginx服务器之间的调用接口;
上传视频文件至S3服务器并存储至存储段;
在所述nginx服务器的配置文件中定义HTTP转换为HLS的命令;
通过所述调用接口将所述存储段中的视频文件以HTTP数据流的形式推送至所述nginx服务器;
通过所述HTTP转换为HLS的命令使得所述nginx服务器将所述视频文件的HTTP数据流转换为HLS数据流;及
命令客户端下载所述HLS数据流,所述客户端直接连接nginx服务器,并通过nginx服务器发起相应请求至应用服务器,并由应用服务器控制调取或处理存储于S3服务器中的对象;
所述在nginx服务器的配置文件中定义HTTP转换为HLS的命令,包括:
在所述nginx服务器rtmp模块的配置文件中定义HTTP转换为HLS的命令;
替换配置文件中的预设代码为nginx服务器的IP或者域名。
2.如权利要求1所述的视频文件处理方法,其特征在于,在所述通过所述HTTP转换为HLS的命令使得所述nginx服务器将所述视频文件的HTTP数据流转换为HLS数据流发送至客户端的步骤之前,所述方法还包括:
连接所述客户端至所述nginx服务器。
3.如权利要求1所述的视频文件处理方法,其特征在于,所述上传视频文件至S3服务器并存储至一存储段的步骤,包括:
定义上传的视频文件名称;及
根据S3服务器规范设定访问所述视频文件的访问权限。
4.如权利要求1所述的视频文件处理方法,其特征在于,所述在nginx服务器的配置文件中定义HTTP转换为HLS的命令的步骤,包括:
在所述nginx服务器rtmp模块的配置文件中定义HTTP转换为HLS的命令。
5.如权利要求2所述的视频文件处理方法,其特征在于,所述连接所述客户端至所述nginx服务器的步骤,包括:
通过预设播放器打开预设地址。
6.一种应用服务器,其特征在于,所述应用服务器包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的视频文件处理程序,所述视频文件处理程序被所述处理器执行时实现如下步骤:
所述应用服务器连接并管理S3服务器和nginx服务器,并基于CEPH规范定义S3服务器与nginx服务器之间的调用接口;
上传视频文件至S3服务器并存储至一存储段;
在所述nginx服务器的配置文件中定义HTTP转换为HLS的命令;
通过所述调用接口将所述存储段中的视频文件以HTTP数据流的形式推送至所述nginx服务器;
通过所述HTTP转换为HLS的命令使得所述nginx服务器将所述视频文件的HTTP数据流转换为HLS数据流;及
命令客户端下载所述HLS数据流,所述客户端直接连接nginx服务器,并通过nginx服务器发起相应请求至应用服务器,并由应用服务器控制调取或处理存储于S3服务器中的对象;
所述在nginx服务器的配置文件中定义HTTP转换为HLS的命令,包括:
在所述nginx服务器rtmp模块的配置文件中定义HTTP转换为HLS的命令;
替换配置文件中的预设代码为nginx服务器的IP或者域名。
7.如权利要求6所述的应用服务器,其特征在于,在所述通过所述HTTP转换为HLS的命令使得所述nginx服务器将所述视频文件的HTTP数据流转换为HLS数据流发送至客户端的步骤之前,所述视频文件处理程序被所述处理器执行时,还实现如下步骤:
连接所述客户端至所述nginx服务器。
8.如权利要求6所述的应用服务器,其特征在于,所述上传视频文件至S3服务器并存储至一存储段的步骤,包括:
定义上传的视频文件名称;及
根据S3服务器规范设定访问所述视频文件的访问权限。
9.如权利要求6所述的应用服务器,其特征在于,所述在nginx服务器的配置文件中定义HTTP转换为HLS的命令的步骤,包括:
在所述nginx服务器rtmp模块的配置文件中定义HTTP转换为HLS的命令。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有视频文件处理程序,所述视频文件处理程序可被至少一个处理器执行,以使所述至少一个处理器执行如权利要求1-5中任一项所述的视频文件处理方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810003951.2A CN108429922B (zh) | 2018-01-03 | 2018-01-03 | 视频文件处理方法、应用服务器及计算机可读存储介质 |
PCT/CN2018/077676 WO2019134248A1 (zh) | 2018-01-03 | 2018-02-28 | 视频文件处理方法、应用服务器及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810003951.2A CN108429922B (zh) | 2018-01-03 | 2018-01-03 | 视频文件处理方法、应用服务器及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108429922A CN108429922A (zh) | 2018-08-21 |
CN108429922B true CN108429922B (zh) | 2021-09-03 |
Family
ID=63155823
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810003951.2A Active CN108429922B (zh) | 2018-01-03 | 2018-01-03 | 视频文件处理方法、应用服务器及计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108429922B (zh) |
WO (1) | WO2019134248A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109286820B (zh) * | 2018-11-29 | 2019-08-06 | 无锡华云数据技术服务有限公司 | 基于分布式存储系统的流媒体点播方法及系统 |
CN111565168B (zh) * | 2020-03-02 | 2023-05-23 | 杭州云毅网络科技有限公司 | 一种对象存储方法、系统、存储介质及电子设备 |
CN114827670A (zh) * | 2022-06-30 | 2022-07-29 | 椭圆方程(深圳)信息技术有限公司 | 一种视频播放方法、装置及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105657440A (zh) * | 2016-01-05 | 2016-06-08 | 福建星网智慧科技股份有限公司 | 一种视频直播的方法及系统 |
CN105681838A (zh) * | 2015-12-30 | 2016-06-15 | 深圳市云宙多媒体技术有限公司 | 一种hls直播在线用户统计方法和系统 |
CN106791722A (zh) * | 2017-03-07 | 2017-05-31 | 河海大学常州校区 | 基于移动通信技术的竞赛运行监控系统 |
CN106803974A (zh) * | 2017-03-01 | 2017-06-06 | 北京牡丹电子集团有限责任公司数字电视技术中心 | 直播视频流实时转发方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103986976B (zh) * | 2014-06-05 | 2017-05-24 | 北京赛维安讯科技发展有限公司 | 基于cdn网络的传输系统及方法 |
CN106791931B (zh) * | 2017-01-05 | 2019-11-15 | 上海浦东软件园汇智软件发展有限公司 | 一种数据流转码的方法及设备 |
-
2018
- 2018-01-03 CN CN201810003951.2A patent/CN108429922B/zh active Active
- 2018-02-28 WO PCT/CN2018/077676 patent/WO2019134248A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105681838A (zh) * | 2015-12-30 | 2016-06-15 | 深圳市云宙多媒体技术有限公司 | 一种hls直播在线用户统计方法和系统 |
CN105657440A (zh) * | 2016-01-05 | 2016-06-08 | 福建星网智慧科技股份有限公司 | 一种视频直播的方法及系统 |
CN106803974A (zh) * | 2017-03-01 | 2017-06-06 | 北京牡丹电子集团有限责任公司数字电视技术中心 | 直播视频流实时转发方法 |
CN106791722A (zh) * | 2017-03-07 | 2017-05-31 | 河海大学常州校区 | 基于移动通信技术的竞赛运行监控系统 |
Non-Patent Citations (2)
Title |
---|
Cloud Enabled Media Streaming using Amazon Web Services;V.D. Ambeth Kumar等;《2017 IEEE International Conference on Smart Technologies and Management for Computing, Communication, Controls, Energy and Materials (ICSTM), Veltech Dr.RR & Dr.SR University, Chennai, T.N., India. 2 - 4 August 2017》;20170804;第195-198页摘要、第Ⅲ节 * |
基于流媒体技术的体育竞赛视频发布系统设计;缪刚等;《微处理机》;20161031(第5期);第85-86页第2-3节 * |
Also Published As
Publication number | Publication date |
---|---|
CN108429922A (zh) | 2018-08-21 |
WO2019134248A1 (zh) | 2019-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107222484B (zh) | 支持多协议输入和输出的流媒体服务器系统 | |
CN108429922B (zh) | 视频文件处理方法、应用服务器及计算机可读存储介质 | |
US10742720B2 (en) | Cloud storage accelerator | |
US20110072073A1 (en) | Systems and methods for formatting media content for distribution | |
CN104243430A (zh) | 一种流媒体播放方法及装置 | |
US9356985B2 (en) | Streaming video to cellular phones | |
JP6275201B2 (ja) | 文字送信方法、コンピュータプログラム、および、文字送信システム | |
CN110582764B (zh) | 一种文件预览方法、装置及存储介质 | |
US20080015999A1 (en) | Securely ingesting encrypted content into content servers | |
US20080183839A1 (en) | System For Computer To Mobile Device Place Shifting | |
US10419798B2 (en) | Method and apparatus for just-in-time transcoding | |
US20080184123A1 (en) | System And Method For Providing A Secure Connection Between A Computer And A Mobile Device | |
CN109347967B (zh) | 一种获取音视频数据的方法及装置 | |
CN108737355B (zh) | 基于用户带宽的流媒体播放 | |
US20090249011A1 (en) | Delivery data backup apparatus, delivery data backup method and delivery data backup program | |
CN103338263A (zh) | 基于播放器的共享音视频文件的方法及系统 | |
CN108271039B (zh) | 一种文件发送方法及装置 | |
CN108200061B (zh) | 视频文件处理方法、应用服务器及计算机可读存储介质 | |
CN110677443A (zh) | 数据发送和接收方法、发送端、接收端、系统及存储介质 | |
US10171545B2 (en) | System for transferring real-time audio/video stream | |
EP2360919A1 (en) | Device and method for providing played audio and/or video data | |
CN105493513A (zh) | 内容提供设备、内容提供方法、程序、终端设备以及内容提供系统 | |
KR101703963B1 (ko) | 캐시 서버를 이용한 멀티미디어 서비스를 제공하는 방법 및 시스템 | |
JP7486091B2 (ja) | 仮想サーバ、動画編集方法、および動画編集システム | |
ES2248713T3 (es) | Procedimiento de lanzamiento de un operador para el tratamiento de contenidos de mensajes multimedia y terminal de telecomunicaciones asociado. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |