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

文档序号:9277127阅读:来源:国知局
的帧头部分中记录有对应数据帧的数据部分的大小,数据帧的帧尾中记录的数据大小是包括11个字节的帧头大小和数据部分的大小,由此可知,数据帧的帧头中记录的数据大小和帧尾中记录的数据大小之间相差11个字节的大小。
[0076]当所述具有数据帧帧头特征的位置为一数据帧的帧头时,从其中获取的数据大小,与从所述具有数据帧帧头特征的位置偏移一个数据帧的大小的位置处获取的数据大小将相差11个字节。因此,当确定从第二数值与11之和与第三数值相等时,可以确定所述具有数据帧帧头特征的位置所在的帧为一数据帧。
[0077]在具体实施中,为了进一步提高所确定的数据帧的准确性,在确定得到一完整的数据帧时,可以通过所确定的数据帧的前一数据帧和后一数据帧的帧类型和数据大小的信息,来进一步对得到的数据帧的准确性进行进一步验证。具体地,本发明实施例中的视频文件提供方法,还可以包括:
[0078]步骤S207:判断所述前一数据帧是否为预设类型的数据帧,且所述前一数据帧的帧头中记录的数据大小与所述预设数值之和,与帧尾中记录的数据大小是否相等。
[0079]步骤S208:判断所述后一数据帧是否为预设类型的数据帧,且所述后一数据帧的帧头中记录的数据大小与所述预设数值之和,与帧尾中记录的数据大小是否相等。
[0080]这里需要指出的是,步骤S207和步骤S208中所示的验证过程,请比照S205?步骤S206中相应部分的介绍执行,在此不再赘述。同时,步骤S207和步骤S208可以同时存在,也可以仅选取其中一个步骤进行执行,且当步骤S207和步骤S208同时存在时,二者的执行顺序也可以根据实际的需要进行变换,在此不作限定。
[0081]这里需要指出的是,在对所确定的数据帧的前一数据帧和后一数据帧的帧类型和数据大小进行验证的过程,实际上也提前为客户端加载了与所确定的数据帧的前一数据帧和/或后一数据帧的内容,为快速提供视频文件做了准备。
[0082]步骤S209:当确定所述具有数据帧帧头特征的位置所在的帧为数据帧时,判断所述数据帧是否为关键帧。
[0083]在具体实施中,需要返回给客户端的从播放起始时间对应的关键帧至播放结束时间点对应的关键帧的内容,因此,在确定所述具有数据帧帧头特征的位置所在的帧为数据帧时,可以进一步判断所述数据帧是否为关键帧。
[0084]在具体实施中,关键帧的数据部分的第一个字节的高四位为关键帧标记字段,且所述标记字段的数值为I。因此,当确定一数据帧时,可以通过所述数据帧的数据数据部分的高4位的数值是否为I来确定所述数据帧是否为关键帧。
[0085]步骤S210:从所述关键帧的数据部分中获取与所述关键帧对应的时间的信息,并判断所述关键帧对应的时间与所述播放请求起始时间点是否一致,当判断结果为是时,执行步骤S211 ;反之,则继续进行位置偏移。
[0086]在具体实施中,关键帧的数据部分的相应位置处记录有所述关键帧的对应时间的信息。当确定所述数据帧为关键帧时,并不能确定所述关键帧就是与播放请求起始时间对应的关键帧。此时,还需要根据关键帧中相应位置处记录的对应时间的信息,来进一步判断搜索得到的当前关键帧是否为播放请求起始时间相对应的关键帧。
[0087]在本发明一实施例中,当确定所述关键帧的数据部分中记录的对应时间与所述播放请求起始时间一致时,则可以确定所述关键帧即为与播放请求起始时间对应的关键帧。反之,则可以根据所获取的所述关键帧对应的时间与所述播放起始时间点,确定是向前还是向后进行位置偏移,并在每得到达一关键帧位置处时,通过当前到达的关键帧中记录的对应时间的信息与播放请求起始时间点进行比较,以最终得到与所述播放起始时间点对应的关键帧。
[0088]例如,当确定所述关键帧对应的时间为720s,而播放起始时间点为700s时,则向所述关键帧的前方进行偏移。再如,当确定所述关键帧对应的时间为720s,而确定的播放起始时间点为800s时,则向当前关键帧的后方进行偏移。步骤S211:确定所述关键帧为与所述播放请求起始时间对应的关键帧。
[0089]在具体实施中,当确定根据所述搜索起始位置确定的关键帧中数据部分中记录的对应时间的信息与所述播放请求起始时间点一致时,可以确定所述关键帧为与所述播放起始时间点对应的关键帧。
[0090]步骤S212:从所述与播放请求起始时间对应的关键帧向后进行位置偏移得到与从播放请求中获取的播放请求结束时间对应的关键帧。
[0091]在具体实施中,当得到与所述播放请求起始时间点对应的关键帧时,从所述关键帧向后进行逐帧偏移,以得到与从播放请求时间中获取的播放请求结束时间点对应的关键帧。
[0092]步骤S213:将所述与播放请求起始时间对应的关键帧至所述播放请求结束时间对应的关键帧对应的视频文件内容返回给客户端进行播放。
[0093]在具体实施中,所述播放请求起始时间点对应的关键帧至所述播放请求结束时间点对应的关键帧的视频文件的内容,即是需要返回给客户端的视频文件的内容。此时,可以将所述播放请求起始时间点对应的关键帧至所述播放请求结束时间点对应的关键帧的视频文件的内容返回至客户端进行播放。
[0094]通过上述的介绍可知,本发明实施例中的视频文件播放方法,在检测到用户拖动到请求播放开始时间点时,最少只需要缓存一个数据帧的内容,最多也仅需要缓存数个数据帧的内容,而无需从视频文件的开始缓冲到用户请求播放起始时间对应数据帧的视频文件的内容,因此,可以提高视频文件提供的速度,同时可以减少磁盘的读写压力。
[0095]在具体实施中,在执行完毕步骤S206之后,也可以不执行步骤S207、S208,而直接执行步骤S209?S213,以向客户端快速反馈所请求的视频文件的内容。
[0096]为使本领域技术人员更好地理解和实现本发明,以下参照附图,对上述方法对应的视频文件提供装置通过具体实施例进行详细介绍。
[0097]图3示出了本发明实施例中的一种视频文件提供装置的结构示意图。如图3所示的视频文件提供装置300,可以包括接收单元301、获取单元302和提供单元303,其中:
[0098]接收单元301,适于接收来自客户端的播放请求。
[0099]获取单元302,适于根据所述播放请求,获取视频文件的搜索起始位置。
[0100]在具体实施中,所述视频文件为FLV文件。
[0101]在具体实施中,所述获取单元302适于从所述播放请求中获取所述请求播放起始时间点,从所述视频文件的文件头中获取所述视频文件的总时间和总大小的信息;采用所述播放起始时间点与所述视频文件的总大小的乘积除以所述视频文件的总时间得到所述搜索起始位置。
[0102]提供单元303,适于根据所述搜索起始位置,确定对应的数据帧,并将所确定的所述数据帧对应的视频文件的内容返回给所述客户端进行播放,所述视频文件包括两个以上的数据帧。
[0103]在具体实施中,所述提供单元303适于当确定所述搜索起始位置不具有数据帧帧头特征时,从所述搜索起始位置开始进行位置偏移,以搜索得到一具有数据帧帧头特征的位置;从所述具有数据帧帧头特征的位置的第一位置中获取第一数值的信息;当确定所述第一数值为第一预设数值时,从所述具有数据帧帧头特征的位置中的第二位置处获取第二数值的信息,并从所述具有数据帧帧头特征的位置偏移一数据帧的大小到达第三位置处,从所述第三位置处获取第三数值的信息;当确定所述第二数值与第二预设数值之和等于所述第三数值时,确定所述具有数据帧帧头特征的位置所在的帧为数据帧;判断所述数据帧是否为关键帧;当判断所述数据帧为关键帧时,判断所述关键帧对应的时间与所述播放起始时间点是否一致;当确定所述关键帧对应的时间与所述播放起始时间点一致时,确定所述关键帧为与所述播放请求起始时间对应的关键帧;从所述与所述播放请求起始时间对应的数据帧开始向后进行位置偏移得到与从所述播放请求中获取的播放请求结束时间对应的关键帧,并将所述播放请求的播放请求起始时间点对应的关键帧至所述播放请求结束时间点对应的关键帧对应的视频文件的内容返回给客户端进行播放。
[0104]在具体实施中,所述提供单元303还适于当确定所述第二数值与第二预设数值之和等于所述第三数值时,分别获取所述数据帧的前一数据帧的帧头中记录的帧类型和数据大小,以及帧尾
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1