视频文件提供方法及装置的制造方法

文档序号:9277127阅读:253来源:国知局
视频文件提供方法及装置的制造方法
【技术领域】
[0001]本发明属于网络视频技术领域,特别是涉及一种视频文件提供方法及装置。
【背景技术】
[0002]FLV(Flash Video)流媒体格式是一种新兴的视频格式。FLV视频文件不仅可以轻松迅速地导入闪存(Flash)中,且能够对视频文件起到保护版权的作用,也可以不通过本地的微软或者REAL播放器播放视频。目前几乎所有的大型视频网站都采用FLV视频文件,是目前增长最快、最为广泛的视频传播格式。
[0003]视频拖动是一种按照范围请求视频内容的方法,分为按时间范围和文件偏移量范围两种方式。现有技术中,FLV视频文件拖动一般是根据脚本标记(script tag)中的关键帧(keyframes)列表实现的,此列表将关键帧的时间与在闪存视频文件中的偏移量对应起来。
[0004]但是,不是所有的FLV视频文件中均带有keyframes列表。对于没有keyframes列表的FLV视频文件,当获取到用户的请求时间时,需要从文件的第一个数据帧到位于文件末尾的最后一个数据帧进行一一遍历,以确定用户需要的数据帧的起始位置和结束位置,并将对应的视频文件数据返回给用户。因此,对于这种视频文件的提供方法存在处理速度缓慢,且会对磁盘造成较大的压力。

【发明内容】

[0005]本发明实施例解决的问题是提高视频文件的提供速度,减小对磁盘造成的压力。
[0006]为解决上述问题,本发明实施例提供了一种视频文件播放方法,所述方法包括:
[0007]根据接收到的来自客户端的播放请求,获取视频文件的搜索起始位置;
[0008]根据所述搜索起始位置,确定对应的数据帧,并将所确定的所述数据帧对应的视频文件的内容返回给所述客户端进行播放,其中,所述视频文件包括两个以上的关键帧。
[0009]可选地,所述根据接收到的来自客户端的播放请求,获取视频文件的搜索起始位置,包括:
[0010]从所述播放请求中获取所述请求播放起始时间点,从所述视频文件的文件头中获取所述视频文件的总时间和总大小的信息;
[0011]采用所述播放起始时间点与所述视频文件的总大小的乘积除以所述视频文件的总时间得到所述搜索起始位置。
[0012]可选地,所述根据所述搜索起始位置,确定对应的数据帧,并将所确定的数据帧对应的视频文件的内容返回给客户端进行播放,包括:
[0013]当确定所述搜索起始位置不具有数据帧帧头特征时,从所述搜索起始位置开始进行位置偏移,以搜索得到一具有数据帧帧头特征的位置;
[0014]从所述具有数据帧帧头特征的位置的第一位置中获取第一数值的信息;
[0015]当确定所述第一数值为第一预设数值时,从所述具有数据帧帧头特征的位置中的第二位置处获取第二数值的信息,并从所述具有数据帧帧头特征的位置偏移一数据帧的大小到达第三位置处,从所述第三位置处获取第三数值的信息;
[0016]当确定所述第二数值与第二预设数值之和等于所述第三数值时,确定所述具有数据帧帧头特征的位置所在的帧为数据帧;
[0017]判断所述数据帧是否为关键帧;
[0018]当判断所述数据帧为关键帧时,判断所述关键帧对应的时间与所述播放起始时间点是否一致;
[0019]当确定所述关键帧对应的时间与所述播放起始时间点一致时,确定所述关键帧为与所述播放请求起始时间对应的关键帧;
[0020]从所述与所述播放请求起始时间对应的数据帧开始向后进行位置偏移得到与从所述播放请求中获取的播放请求结束时间对应的关键帧;
[0021 ] 将所述播放请求起始时间点对应的关键帧至所述播放请求结束时间点对应的关键帧对应的视频文件的内容返回给客户端进行播放。
[0022]可选地,当确定所述第二数值与第二预设数值之和等于所述第三数值时,还包括:
[0023]分别获取所述数据帧的前一数据帧的帧头中记录的帧类型和数据大小,以及帧尾中记录的数据大小的信息;
[0024]当根据所述前一数据帧的帧头中的帧类型确定所述前一数据帧为所述预设类型的数据帧,且所述前一数据帧的帧头中记录的数据大小与所述预设数值之和,与帧尾中记录的数据大小相等时,确定所述数据帧为所述搜索起始时间对应的数据帧。
[0025]可选地,当所述数据帧的帧头中记录的数据大小与预设数值之和,与所述数据帧的帧尾中记录的数据大小相等时,还包括:
[0026]分别获取所述数据帧的后一数据帧的帧头中记录的帧类型和数据大小,以及帧尾中记录的数据大小的信息;
[0027]当根据所述后一数据帧的帧头中帧类型确定所述后一数据帧为所述预设类型的数据帧,且所述后一数据帧的帧头中记录的数据大小与所述预设数值之和,与帧尾中记录的数据大小相等时,确定所述数据帧为与所述请求时间对应的数据帧。
[0028]可选地,所述视频文件为FLV文件。
[0029]本发明实施例还提供了一种视频文件提供装置,所述装置包括:
[0030]接收单元,适于接收来自客户端的播放请求;
[0031]获取单元,适于根据所述播放请求,获取视频文件的搜索起始位置;
[0032]确定单元,适于根据所述搜索起始位置,确定对应的关键帧,所述视频文件包括两个以上的关键帧;
[0033]提供单元,适于将所确定的所述关键帧对应的视频文件的内容返回给所述客户端进行播放。
[0034]可选地,所述获取单元适于从所述播放请求中获取所述请求播放起始时间点,从所述视频文件的文件头中获取所述视频文件的总时间和总大小的信息;采用所述播放起始时间点与所述视频文件的总大小的乘积除以所述视频文件的总时间得到所述搜索起始位置。
[0035]可选地,所述确定单元适于当确定所述搜索起始位置不具有数据帧帧头特征时,从所述搜索起始位置开始进行位置偏移,以搜索得到一具有数据帧帧头特征的位置;从所述具有数据帧帧头特征的位置的第一位置中获取第一数值的信息;当确定所述第一数值为第一预设数值时,从所述具有数据帧帧头特征的位置中的第二位置处获取第二数值的信息,并从所述具有数据帧帧头特征的位置偏移一数据帧的大小到达第三位置处,从所述第三位置处获取第三数值的信息;当确定所述第二数值与第二预设数值之和等于所述第三数值时,确定所述具有数据帧帧头特征的位置所在的帧为数据帧;判断所述数据帧是否为关键帧;当判断所述数据帧为关键帧时,判断所述关键帧对应的时间与所述播放起始时间点是否一致;当确定所述关键帧对应的时间与所述播放起始时间点一致时,确定所述关键帧为与所述播放请求起始时间对应的关键帧;从所述与所述播放请求起始时间对应的数据帧开始向后进行位置偏移得到与从所述播放请求中获取的播放请求结束时间对应的关键帧,其中,所述播放请求的播放请求起始时间点对应的关键帧至所述播放请求结束时间点对应的关键帧为所述对应的关键帧。
[0036]可选地,所述确定单元还适于当确定所述第二数值与第二预设数值之和等于所述第三数值时,分别获取所述数据帧的前一数据帧的帧头中记录的帧类型和数据大小,以及帧尾中记录的数据大小的信息;当根据所述前一数据帧的帧头中的帧类型确定所述前一数据帧为所述预设类型的数据帧,且所述前一数据帧的帧头中记录的数据大小与所述预设数值之和,与帧尾中记录的数据大小相等时,确定所述数据帧为所述搜索起始时间对应的数据帧。
[0037]可选地,所述确定单元还适于当确定所述第二数值与第二预设数值之和等于所述第三数值时,分别获取所述数据帧的后一数据帧的帧头中记录的帧类型和数据大小,以及帧尾中记录的数据大小的信息;当根据所述后一数据帧的帧头中帧类型确定所述后一数据帧为所述预设类型的数据帧,且所述后一数据帧的帧头中记录的数据大小与所述预设数值之和,与帧尾中记录的数据大小相等时,确定所述数据帧为与所述请求时间对应的数据帧。
[0038]可选地,所述视频文件为FLV文件。
[0039]与现有技术相比,本发明的技术方案具有以下的优点:
[0040]上述的方案,根据用户的请求时间计算搜索起始位置,并以所述搜索起始位置向前和向后搜索确定与所述请求时间对应的数据帧的起始位置和结束位置,而无需遍历整个视频文件以确定用户需求的起始位置和终止位置,因此,可以提高
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1