发明内容
本发明的示例性实施方式涉及视频提供方法和系统。
根据本发明的实施方式,公开了一种视频提供方法,该视频提供方法包括:接收针对下载播放视频的请求;根据请求判断需要提供的视频的格式;在需要提供FLV格式视频的情况下,提供FLV格式视频;以及在需要提供MP4格式视频的情况下,利用FLV格式视频和与该FLV格式视频对应的MP4文件头部将该FLV格式视频封装为MP4格式视频并提供该MP4格式视频。
优选地,在该视频提供方法中还包括:在利用FLV格式视频和与该FLV格式视频对应的MP4文件头部将该FLV格式视频封装为MP4格式视频之前,针对该FLV格式视频生成与该FLV格式视频对应的MP4文件头部。
优选地,在该视频提供方法中还包括,根据请求验证是否提供该视频。
根据本发明的实施方式,还公开了一种视频提供系统,包括请求接收装置,配置用于接收针对下载播放视频的请求;视频格式判断装置,配置用于根据请求判断需要提供的视频的格式;第一视频传送装置,配置用于在需要提供FLV格式视频的情况下,提供FLV格式视频;MP4文件封装装置,配置用于在需要提供MP4格式视频的情况下,利用FLV格式视频和与该FLV格式视频对应的MP4文件头部将该FLV格式视频封装为MP4格式视频;以及第二视频传送装置,配置用于提供该MP4格式视频。
优选地,在该视频提供系统中,还包括MP4文件头部生成装置,配置用于针对FLV格式视频生成与该FLV格式视频对应的MP4文件头部。
优选地,在该视频提供系统中,还包括验证装置,配置用于根据请求验证是否提供视频。
本发明的优点包括:可以节省服务器端一半的视频文件存储空间。
具体实施方式
以下参考附图详细描述本发明的各个示例性实施方式。附图中的流程图和框图示出了根据本发明的各种实施方式的方法和系统的可能实现的体系架构、功能和操作。应当注意,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分可以包括一个或多个用于实现各个实施方式中所规定的逻辑功能的可执行指令。也应当注意,在有些作为备选的实现中,方框中所标注的功能也可以按照不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,或者它们有时也可以按照相反的顺序执行,这取决于所涉及的功能。同样应当注意的是,流程图和/或框图中的每个方框、以及流程图和/或框图中的方框的组合,可以使用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以使用专用硬件与计算机指令的组合来实现。
应当理解,给出这些示例性实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。
在MP4文件中,文件的物理格式和媒体数据的排列均不受媒体的时间顺序的控制,因此,MP4文件中具有非常重要的部分——头部。MP4文件头部中对该MP4的数据和播放信息进行定义,所定义的对象包括但不限于媒体类型、媒体持续时间、引用的媒体轨道(track)以及音频/视频流等。
可以针对已经存在的包括音频/视频流的原始文件生成相应的MP4文件头部以用于将该原始文件封装为MP4文件,因此,可以针对预先存在的FLV文件生成相应的MP4文件头部以将该FLV文件封装为MP4文件。
这样,在视频提供网站中针对一段视频可以仅生成其相应的FLV格式文件以及相应的MP4文件头部,并在需要以MP4格式提供该视频时使用该FLV格式文件以及相应的MP4文件头部生成相应的MP4格式文件以用于提供,而无需生成并同时存储针对同一视频的FLV和MP4两种格式的文件。
参照图1,其为根据本发明的示例性实施方式的视频提供方法100的流程图。
根据图1所示,在步骤S101中,客户端向服务器发出针对下载播放视频的请求。
根据本发明的各种示例性实施方式,客户端通过通信网络向服务器发出针对下载播放视频的请求。本说明书中提及的通信网络可以包括各类网络,包括但不限于局域网(“LAN”)、无线局域网(WLAN)、广域网(“WAN”),根据IP协议的网络(例如,因特网)、公共交换电话网(PSTN)、端对端网络(例如,ad hoc对等网络)以及其它无线网络和可以用来互连信息操纵系统的任何其它网络拓扑。
继续参照图1,根据本发明的某些示例性实施方式,在方法100中,还可以包括可选步骤S102。在步骤S102中,服务器对在步骤S101中从客户端接收的请求进行验证,当验证结果为允许客户端下载播放该视频时,进入步骤S103,否则方法100的过程结束。
继续参照图1,在步骤S103中,服务器根据在步骤S101中由客户端发送的请求判断需要向客户端传送的该视频的文件格式。当判断需要向客户端提供MP4格式视频时,进入步骤S104,当判断为需要向客户端提供FLV格式视频时,进入步骤S105。
根据本发明的某些示例性实施方式,在步骤S101中由客户端发送的请求中包括指示需要向客户端传送的该视频的文件格式的信息,因而在步骤S103中,服务器根据该信息判断需要向客户端传送的该视频的文件格式。
根据本发明的某些示例性实施方式,可以根据该客户端的类型判断需要向该客户端传送的该视频的文件格式。一般而言,当该客户端为移动客户端时,服务器向该客户端传送MP4格式的视频文件,当该客户端为桌面客户端,服务器向该客户端传送FLV格式的视频文件。
应当理解,也可以由客户端在所发送的信息中指示需要服务器提供的文件格式,例如,桌面客户端也可以在请求中指示需要服务器提供MP4格式的视频文件。
继续参照图1,在步骤S104中,服务器将与在步骤S101中由客户端发送的请求下载播放的视频对应的FLV格式文件和与该视频对应的MP4文件头部封装成与该视频对应的MP4格式文件。其中,与该视频对应的MP4文件头部可以是预先针对该FLV文件生成并存储的,或者可以是在步骤S101、步骤S102、步骤S103中的任一步骤中或步骤之后针对该FLV文件生成的。
继续参照图1,在步骤S105中,服务器按照在步骤S101中由客户端发送的请求提供与该请求对应的相应格式的视频以供客户端下载播放。
根据本发明的某些示例性实施方式,服务器可以采用包括但不限于HTTP和FTP之类的网络传输协议通过通信网络向客户端传送该视频。
以上参照图1描述了根据本发明的示例性实施方式的视频提供方法。应当理解,尽管按照特定顺序(步骤S101、步骤S102、步骤S103、步骤S104、步骤S105)描述了该方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。例如,在某些实施方式中,可以加入针对FLV格式文件生成相应的MP4文件头部的步骤,并且该步骤与步骤S101、步骤S102或步骤S103可以按照任意顺序执行或者同时执行,可以省略步骤S102,可以将步骤S101与步骤S102合并为一个步骤执行,和/或将步骤S104分解为获取对应的MP4文件头部的步骤S104a以及将FLV文件和该MP4文件头部封装成MP4文件的步骤S104b。
参照图2,其为根据本发明的示例性实施方式的视频提供系统10的框图。
根据图2所示,视频提供系统10包括存储装置11、请求接收装置12、视频格式判断装置13、MP4文件头部生成装置14、MP4文件封装装置15和视频传送装置16。其中,存储装置11配置用于存储FLV格式视频以及与该FLV格式视频对应的MP4文件头部;请求接收装置12配置用于从客户端接收针对下载播放视频的请求;视频格式判断装置13配置用于根据在从客户端接收的请求判断需要向客户端传送的视频的文件格式;MP4文件头部生成装置14配置用于针对FLV格式视频生成与该FLV格式视频对应的MP4文件头部;MP4文件封装装置15配置用于将与从客户端接收的请求下载播放的视频对应的FLV格式视频和与该FLV格式视频对应的MP4文件头部封装成与该视频对应的MP4格式视频;视频传送装置16配置用于按照从客户端接收的请求提供与该请求对应的相应格式的视频以供客户端下载播放。
本领域技术人员可以理解,存储装置11可以位于视频提供系统10中或者视频提供系统10以外,其实现的功能为存储FLV格式视频、与该FLV格式视频对应的MP4文件头部以及可能地存储封装之后的MP4格式视频,无论其是否位于视频提供系统10中,均不影响本发明的视频提供系统10的正常运作。
继续参照图2,根据本发明的某些示例性实施方式,视频提供系统10还可以包括可选的验证装置17,其配置用于对从客户端接收的请求进行验证,当验证结果为允许传送该视频以供客户端下载播放时允许视频格式判断装置13、MP4文件头部生成装置14、MP4文件封装装置15和视频传送装置16进行后续操作,否则禁止视频格式判断装置13、MP4文件头部生成装置14、MP4文件封装装置15和视频传送装置16进行后续操作。
请求接收装置12、视频格式判断装置13、MP4文件头部生成装置14、MP4文件封装装置15、视频传送装置16以及验证装置17的操作方式与以上关于视频提供方法所描述的类似,在此不再赘述。
应当注意,本发明的示例性实施方式可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的系统及其模块不仅可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如固件)来实现。
应当注意,尽管在上文的详细描述中提及了系统的若干装置或子装置,但是这种划分仅仅是示例性而非强制性的。实际上,根据本发明的示例性实施方式,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化,例如可以将请求接收装置12和视频格式判断装置13结合为一个处理装置以实现相同的功能。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化,例如可以将MP4文件封装装置15划分为用于获取对应的MP4文件头部的MP4文件头部获取装置15a和用于封装成MP4格式视频的封装装置15b。再次,例如可以将视频传送装置16划分为用于传送FLV格式视频的第一视频传送装置16a以及用于传送封装成的MP4格式视频的第二视频传送装置16b。
下面参考图3,其示出了适于用来实践本发明的实施方式的计算机系统300的示意性框图。如图3中所示,计算机系统300可以包括:CPU(中央处理单元)301、RAM(随机存取存储器)302、ROM(只读存储器)303、系统总线304、硬盘控制器305、键盘控制器306、串行接口控制器307、并行接口控制器308、显示控制器309、硬盘310、键盘311、串行外部设备312、并行外部设备313和显示器314。在这些设备中,与系统总线304耦合的有CPU 301、RAM 302、ROM 303、硬盘控制器305、键盘控制器306、串行控制器307、并行控制器308和显示控制器309。硬盘310与硬盘控制器305耦合,键盘311与键盘控制器306耦合,串行外部设备312与串行接口控制器307耦合,并行外部设备313与并行接口控制器308耦合,以及显示器314与显示控制器309耦合。应当理解,图3所述的结构框图仅仅为了示例的目的而示出的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况而增加或者减少某些设备。
虽然已经参考若干具体实施方式描述了本发明,但是应该理解,本发明并不限于所公开的具体实施方式。本发明旨在涵盖在所附权利要求的精神和范围内所包括的各种修改和等同布置。所附权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。