CN102075792B - 视频文件播放方法及系统、用户端设备、服务器设备 - Google Patents

视频文件播放方法及系统、用户端设备、服务器设备 Download PDF

Info

Publication number
CN102075792B
CN102075792B CN201010602764XA CN201010602764A CN102075792B CN 102075792 B CN102075792 B CN 102075792B CN 201010602764X A CN201010602764X A CN 201010602764XA CN 201010602764 A CN201010602764 A CN 201010602764A CN 102075792 B CN102075792 B CN 102075792B
Authority
CN
China
Prior art keywords
video file
time
index area
zero
reproduction time
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.)
Expired - Fee Related
Application number
CN201010602764XA
Other languages
English (en)
Other versions
CN102075792A (zh
Inventor
李昭早
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wang Xiujuan
Xia Ping
Xie Jianjun
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201010602764XA priority Critical patent/CN102075792B/zh
Publication of CN102075792A publication Critical patent/CN102075792A/zh
Priority to US13/335,384 priority patent/US8606077B2/en
Application granted granted Critical
Publication of CN102075792B publication Critical patent/CN102075792B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6125Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2387Stream processing in response to a playback request from an end-user, e.g. for trick-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8455Structuring 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract

本发明公开了一种视频文件播放方法,本发明实施例还提供相应的系统以及用户端和服务器设备。本发明技术方案通过用户端从服务器下载视频文件并添加索引区,该索引区包括起始地址、下一个文件地址、起始时间;再将该视频文件插入到本地的视频文件队列中,使得该视频文件的上一个视频文件的索引区的下一个文件地址为该视频文件索引区的起始地址,并且该视频文件索引区的下一个文件地址为该视频文件的下一个视频文件的索引区的起始地址,视频文件队列为由多个视频文件根据索引区的起始时间的先后顺序拼接成的大视频文件;然后播放该视频文件;解决了用户端从远程服务器上下载视频文件进行播放时,在同一时间轴上不同视频文件不能够连续下载的问题。

Description

视频文件播放方法及系统、用户端设备、服务器设备
技术领域
本发明涉及互联网技术领域,具体涉及一种视频文件播放方法及系统、用户端设备、服务器设备。
背景技术
随着互联网的发展,视频监控与网络流媒体点播越来越得到广泛的应用,点播回放远程视频需求日益强劲。在现有技术中,都是从远程服务器上下载码流缓存到内存进行播放的。在服务器端,同一个时间轴的视频文件以一个视频文件的形式保存在服务器端供用户端下载,该视频文件有索引区和二级索引区,其中索引区包括起始地址、文件长度、起始时间、结束时间、文件信息及二级索引等,二级索引区包括各个帧内编码帧I帧信息,该I帧信息具体有I帧的起始时间、I帧的地址以及私有信息等。
在对现有技术的研究和实践过程中,本发明的发明人发现,在现有技术中,都是从远程服务器上下载码流缓存到内存进行播放的,随着高清时代的来临,这对终端的内存的消耗提出了更高的要求。并且,在同一时间轴上不同视频文件连续下载在当前的应用中几乎是一片空白。
发明内容
本发明实施例提供一种视频文件播放方法及系统、用户端设备、服务器设备,解决了用户端从远程服务器上下载视频文件进行播放时,在同一时间轴上不同视频文件不能够连续下载的问题。
一种视频文件播放方法,包括:
用户端从服务器下载视频文件;
将所述视频文件添加索引区,所述索引区包括所述视频文件的起始地址、下一个文件地址、起始时间;
根据所述视频文件索引区的起始时间将所述视频文件插入到本地的视频文件队列中,所述视频文件的上一个视频文件的索引区的下一个文件地址为所述视频文件的索引区的起始地址,所述视频文件的索引区的下一个文件地址为所述视频文件的下一个视频文件的索引区的起始地址,所述视频文件队列为由多个视频文件根据索引区的起始时间的先后顺序前后拼接而成的大视频文件;
播放所述视频文件。
一种视频文件播放方法,包括:
接收用户端发送的视频文件下载请求消息,所述视频文件下载请求消息携带播放时间;
根据所述播放时间查找对应的视频文件;
将所述视频文件发送给用户端;
所述视频文件发送完后,根据所述视频文件索引区的下一个文件地址查找到下一个视频文件的起始地址,前一个视频文件索引区的下一个文件地址为后一个视频文件索引区的起始地址,多个所述视频文件前后拼接成一个大视频文件,即视频文件队列;
将所述下一个视频文件发送给用户端,直到所述视频文件队列中的最后一个视频文件,或者直到停止时间对应的视频文件,所述停止时间由用户端发送。
一种用户端设备,包括:
下载模块,用于从服务器下载视频文件;
索引区添加模块,用于将存储模块存储的视频文件添加索引区,所述索引区包括所述视频文件的起始地址、下一个文件地址、起始时间;
视频文件队列管理模块,用于根据所述视频文件索引区的起始时间将所述视频文件插入到本地的视频文件队列中,所述视频文件的上一个视频文件的索引区的下一个文件地址为所述视频文件的索引区的起始地址,所述视频文件的索引区的下一个文件地址为所述视频文件的下一个视频文件的索引区的起始地址,所述视频文件队列为一个大视频文件,根据多个视频文件的索引区的起始时间的先后顺序前后拼接而成;
播放模块,用于播放视频文件队列管理模块插入视频文件队列的视频文件。
一种服务器设备,包括:
接收模块,用于接收用户端发送的视频文件下载请求消息,所述视频文件下载请求消息携带播放时间;
查找模块,用于根据接收模块接收的播放时间查找对应的视频文件;
发送模块,用于将查找模块查找到的视频文件发送给用户端,并在所述视频文件发送完后,根据所述视频文件索引区的下一个文件地址查找到下一个视频文件的起始地址,并将所述下一个视频文件发送给用户端,直到视频文件队列中的最后一个视频文件,或者停止时间对应的视频文件,所述停止时间由用户端发送;所述视频文件队列为一个大视频文件,根据多个视频文件的索引区的起始时间的先后顺序前后拼接而成,前一个视频文件索引区的下一个文件地址为后一个视频文件索引区的起始地址。
一种视频文件播放系统,包括:
上述用户端设备,以及上述服务器设备。
本发明实施例通过用户端从服务器下载视频文件,将该视频文件添加索引区,该索引区包括起始地址、下一个文件地址、起始时间,再根据该视频文件索引区的起始时间将该视频文件插入到本地的视频文件队列中,使得该视频文件的上一个视频文件的索引区的下一个文件地址为该视频文件的索引区的起始地址,并且该视频文件的索引区的下一个文件地址为该视频文件的下一个视频文件的索引区的起始地址,其中视频文件队列为由多个视频文件根据索引区的起始时间的先后顺序前后拼接而成的大视频文件;然后播放接收的视频文件;这样在同一时间轴上,不同的视频文件就能够不分先后连续下载,能够将不连续存储的视频文件按照时间顺序播放,并且因为是保存在本地,所以在回放的时候,不会消耗大量内存。
附图说明
图1是本发明实施例一种视频文件播放方法的数据流程示意图;
图2是本发明实施例一种视频文件播放方法的数据流程示意图;
图3是本发明实施例一种视频文件播放方法的数据流程示意图;
图4是本发明实施例视频文件索引区示意图;
图5是本发明实施例视频文件二级索引区示意图;
图6是本发明实施例I帧信息示意图;
图7是本发明一应用例中搜索结果示意图;
图8a是本发明实施例一种用户端设备逻辑结构示意图;
图8b是本发明实施例一种用户端设备逻辑结构示意图;
图9a是本发明实施例一种服务器设备逻辑结构示意图;
图9b是本发明实施例一种服务器设备逻辑结构示意图;
图10是本发明实施例一种视频文件播放系统逻辑结构示意图。
具体实施方式
本发明实施例提供一种视频文件播放方法,本发明实施例还提供相应的系统、用户端设备和服务器设备。以下分别进行详细说明。
请参阅图1,本发明实施例中视频文件播放方法的第一实施例,具体的:
101、用户端从服务器下载视频文件;
102、将视频文件添加索引区;
将下载的视频文件添加上索引区,该索引区包括视频文件的起始地址、下一个文件地址、起始时间等项目。
103、根据视频文件索引区的起始时间将下载的视频文件插入到本地的视频文件队列中;
视频文件的索引区有起始地址、下一个文件地址、起始时间等项目,根据视频文件的索引区的起始时间将该视频文件插入到本地的视频文件队列中,其中,视频文件队列为由多个视频文件根据索引区的起始时间的先后顺序前后拼接而成的大视频文件,组成视频文件队列的视频文件都在同一时间轴上;将下载的视频文件插入到视频文件队列中,使得该视频文件的上一个视频文件的索引区的下一个文件地址为该视频文件的索引区的起始地址,并且该视频文件的索引区的下一个文件地址为该视频文件的下一个视频文件的索引区的起始地址。
104、播放视频文件。
在本实施例中,用户端从服务器下载视频文件,将该视频文件添加索引区,该索引区包括起始地址、下一个文件地址、起始时间,再根据该视频文件索引区的起始时间将该视频文件插入到本地的视频文件队列中,使得该视频文件的上一个视频文件的索引区的下一个文件地址为该视频文件的索引区的起始地址,并且该视频文件的索引区的下一个文件地址为该视频文件的下一个视频文件的索引区的起始地址,其中视频文件队列为由多个视频文件根据索引区的起始时间的先后顺序前后拼接而成的大视频文件;然后播放接收的视频文件;这样在同一时间轴上,不同的视频文件就能够不分先后连续下载,能够将不连续存储的视频文件按照时间顺序播放,并且因为是保存在本地,所以在回放的时候,不会消耗大量内存。
请参阅图2,本发明实施例中视频文件播放方法的第二实施例,具体的:
201、用户端获取用户输入的播放时间;
用户端获取用户输入的播放时间,具体的,用户端获取用户在播放进度条上搜索(Seek)的位置,然后计算Seek的位置占播放进度条总长度的比例,再将该比例与播放总时间相乘得到的值加上第一个视频文件的起始时间,得到播放时间;或者是用户直接输入的播放时间;
202、判断本地是否有播放时间对应的视频文件;
在步骤201中获取播放时间后,根据该播放时间到存储在本地的视频文件队列中查找,判断是否有于该播放时间对应的视频文件,具体的:
同一时间轴上的不同视频文件,用户端在下载了视频文件后就会将视频文件保存在本地,形成一个视频文件队列,该视频文件队列中的各个视频文件在物理存储顺序上是不一定按顺序存储的,先下载的在前面,后下载的在后面,但是各个视频文件在播放时是按照各个视频文件的索引区的起始时间的先后顺序播放的,例如第一次下载的视频文件A的起始时间和结束时间为14:00至15:00;第二次下载的视频文件B的起始时间和结束时间为10:00至11:00,因为视频文件B的起始时间小于视频文件A的起始时间,所以将视频文件A的索引区的起始地址作为视频文件B的索引区的下一个文件地址;第三次下载的视频文件C的起始时间和结束时间为16:00至18:00,因为视频文件C的起始时间大于视频文件A的起始时间,所以将视频文件C的索引区的起始地址作为视频文件A的索引区的下一个文件地址;那么,这三个视频文件的物理存储顺序为A→B→C,而播放顺序为B→A→C,在播放完视频文件B后,根据视频文件B的索引区的下一个文件地址找到视频文件A的起始地址,继续播放视频文件A,在播放完视频文件A后,根据视频文件A的索引区的下一个文件地址找到视频文件C的起始地址,继续播放视频文件C;
从本地视频文件队列中的第一个视频文件开始,将播放时间与视频文件的索引区的结束时间进行比较,如果播放时间大于视频文件的索引区的结束时间,则根据该视频文件的索引区的下一个文件地址找到下一个视频文件,将播放时间与下一个视频文件的索引区的结束时间进行比较,如此循环,直至比较到最后一个视频文件。
203、如果没有,则发送视频文件下载请求消息给服务器;
如果在步骤202中,比较的结果是播放时间小于第一个视频文件的索引区的起始时间,或者播放时间大于视频文件队列中最后一个视频文件的索引区的起始时间,则说明本地没有与播放时间对应的视频文件,需要到服务器下载相应视频文件,则发送视频文件下载请求消息给服务器,该视频文件下载请求消息携带播放时间。
204、接收服务器发送的视频文件;
服务器接收用户端发送的视频文件下载请求消息后,根据该视频文件下载请求消息携带的播放时间到存储在服务器端预先设置的视频文件队列中寻找与该播放时间对应的视频文件的二级索引区的I帧,并从该I帧开始将视频文件发送给用户端,其中视频文件队列由多个同一时间轴上的视频文件按索引区的起始时间的先后顺序组合而成,其中前一个视频文件的索引区的下一个文件地址为下一个视频文件的索引区的起始地址;
具体的:
先判断播放时间是否小于第一个视频文件的索引区的结束时间;如果不小于,则根据第一个视频文件索引区的下一个文件地址找到下一个视频文件索引区,并判断播放时间是否小于下一个视频文件索引区的结束时间;依次循环,直至找到播放时间小于索引区的结束时间的视频文件;
再比较播放时间与播放时间小于索引区的结束时间的视频文件的二级索引区的第一个I帧的起始时间的大小;如果播放时间大于该I帧的起始时间,则再判断播放时间是否小于等于下一个I帧的起始时间;依次循环,直至找到该播放时间小于等于I帧的起始时间的I帧,如果播放时间等于I帧的起始时间,则从该I帧开始向用户端发送视频文件;如果播放时间小于I帧的起始时间,则从该I帧的前一个I帧开始向用户端发送视频文件;
当接收第一个I帧时,根据该I帧的起始时间定位该I帧在视频文件队列中的位置,具体的,将该I帧的起始时间与视频文件队列中第一个视频文件的起始时间比较,如果I帧的起始时间大于第一个视频文件的起始时间,则根据第一个视频文件的索引区的下一个视频文件找到第二个视频文件,再比较该I帧的起始时间和第二个视频文件的起始时间,依次循环,直至查找到起始时间大于该I帧的视频文件,第一个I帧的位置查找到的视频文件的前面;
当接收第二个以后的I帧时,根据该I帧的起始时间判断视频文件队列中是否已经存在该I帧,具体的,接收到第二个以后的I帧时,将I帧的起始时间与查找到的视频文件的起始时间比较,如果该I帧的起始时间等于查找到的视频文件的起始时间时,说明该I帧所在的视频文件用户端已经有了,此时,用户端发送停止下载的消息给服务器,服务器停止发送视频文件给用户端。
205、将下载的视频文件添加索引区;
用户端接收的视频文件是没有索引区的,为了能将接收的视频文件插入到存储在本地的视频文件队列中,需要将接收的视频文件添加索引区,索引区包括:起始时间、文件长度、起始时间、结束时间、文件信息、下一个文件地址、二级索引等项目。
206、根据视频文件索引区的起始时间将下载的视频文件插入到本地的视频文件队列中;
因为在步骤204中,已经将第一个I帧定位好了,直接将接收的视频文件插到第一个I帧定的位置。
207、播放视频文件;
进一步的,当播放到某个视频文件的最后一个帧内编码帧时,若根据该视频文件的索引区的下一个文件地址查找到的物理地址没有视频文件时,向服务器发送视频文件下载请求消息,该视频文件下载请求消息携带播放时间,该播放时间等于该视频文件的最后一个帧内编码帧的起始时间。
208、如果有,则根据播放时间获取并播放对应的视频文件;
如果在步骤202中,比较的结果是本地有与播放时间对应的视频文件,则获取并播放该视频文件,具体的:
判断播放时间是否小于等于本地视频文件队列中第一个视频文件的索引区的结束时间;如果大于,则根据第一个视频文件的索引区的下一个文件地址找到下一个视频文件,并判断播放时间是否小于等于下一个视频文件的索引区的结束时间;依次循环,直至找到播放时间小于等于索引区的结束时间的视频文件;
如果查找到播放时间等于索引区的结束时间的视频文件,则从该视频文件的二级索引区的第一个I帧开始播放;
如果查找到播放时间小于索引区的结束时间的视频文件,再比较播放时间与该视频文件的二级索引区的第一个I帧的起始时间的大小;如果播放时间大于该I帧的起始时间,则再判断播放时间是否小于等于下一个I帧的起始时间;依次循环,直至找到播放时间小于等于I帧的起始时间的I帧,如果播放时间等于I帧的起始时间,则从该I帧内编码帧开始播放;如果播放时间小于I帧的起始时间,则从该I帧的前一个I帧开始播放。
在本实施例中,用户端从服务器下载视频文件,将该视频文件添加索引区,该索引区包括起始地址、下一个文件地址、起始时间,再根据该视频文件索引区的起始时间将该视频文件插入到本地的视频文件队列中,使得该视频文件的上一个视频文件的索引区的下一个文件地址为该视频文件的索引区的起始地址,并且该视频文件的索引区的下一个文件地址为该视频文件的下一个视频文件的索引区的起始地址,其中视频文件队列为由多个视频文件根据索引区的起始时间的先后顺序前后拼接而成的大视频文件;然后播放接收的视频文件;这样在同一时间轴上,不同的视频文件就能够不分先后连续下载,能够将不连续存储的视频文件按照时间顺序播放,并且因为是保存在本地,所以在回放的时候,不会消耗大量内存。
请参阅图3,本发明实施例中视频文件播放方法的第三实施例,具体的:
301、接收用户端发送的视频文件下载请求消息;
服务器接收用户端发送的视频文件下载请求消息,该视频文件下载请求消息携带播放时间。
302、根据播放时间查找对应的视频文件;
服务器根据接收的视频文件下载请求消息携带的播放时间到存储在服务器端预先设置的视频文件队列中寻找与该播放时间对应的视频文件的二级索引区的I帧,并从该I帧开始将视频文件发送给用户端,其中视频文件队列由多个同一时间轴上的视频文件按索引区的起始时间的先后顺序组合而成,其中前一个视频文件的索引区的下一个文件地址为下一个视频文件的索引区的起始地址;
具体的:
先判断播放时间是否小于第一个视频文件的索引区的结束时间;如果不小于,则根据第一个视频文件索引区的下一个文件地址找到下一个视频文件索引区,并判断播放时间是否小于下一个视频文件索引区的结束时间;依次循环,直至找到播放时间小于索引区的结束时间的视频文件;
再比较播放时间与播放时间小于索引区的结束时间的视频文件的二级索引区的第一个I帧的起始时间的大小;如果播放时间大于该I帧的起始时间,则再判断播放时间是否小于等于下一个I帧的起始时间;依次循环,直至找到该播放时间小于等于I帧的起始时间的I帧。
303、发送视频文件给用户端;
在步骤302中,如果找到视频文件的I帧,若播放时间等于I帧的起始时间,则从该I帧开始向用户端发送视频文件;若播放时间小于I帧的起始时间,则从该I帧的前一个I帧开始向用户端发送视频文件;
在一个视频文件发送完毕后,如果还没有到达视频文件队列的末尾,或者还没有到达用户端发送的停止时间,则根据该视频文件的索引区的下一个文件地址找到下一个视频文件,从下一个视频文件的第一个I帧开始,将该下一个视频文件发送给用户端。
在本实施例中,通过在服务器端将同一时间轴上的多个视频文件前后拼接成一个视频文件队列,用户端在下载视频文件时可以分别下载便可播放,而不需要将同一时间轴上的所有视频文件都下载才能播放;并且服务器端都是从I帧开始将视频文件发送给用户端进行播放,使得用户端在播放时不会出现不完整的图像。
请参阅图4至图7,一下是本发明实施例中的一个应用例:
在服务器上的每个视频文件的存储格式如图4所示,包括索引区和数据区,索引区包括起始地址、文件长度、起始时间、结束时间、文件信息、下一个文件地址和二级索引区等等,二级索引区如图5所示,二级索引区存放各个I帧的信息,各个I帧信息的存储格式如图6所示,存有各个I帧的起始时间,和各个I帧的地址以及私有信息,例如报警信息;
例如服务器上有4个视频文件,第一个视频文件A的一级索引区的数据:起始地址为0,文件长度为3,起始时间为2010年9月1日,12:00:00,结束时间为2010年9月1日,15:00:00,下一个文件的地址为3;
第二个视频文件B的一级索引区的数据:起始地址为3,文件长度为5,起始时间为2010年9月1日,22:00:00,结束时间为2010年9月2日,03:00:00,下一个文件的地址为8;
第三个视频文件C的一级索引区的数据:起始地址为8,文件长度为4,起始时间为2010年9月2日,10:00:00,结束时间为2010年9月2日,14:00:00,下一个文件的地址为12;
第四个视频文件D的一级索引区的数据:起始地址为12,文件长度为3,起始时间为2010年9月2日,17:00:00,结束时间为2010年9月2日,20:00:00,下一个文件的地址为15;
用户在终端输入起始时间和结束时间,便可以非常方便地查看保存于远程服务器上的视频文件的数据信息;具体的:
第一步,服务器将输入的结束时间与第一个视频文件的起始时间比较,如果第一个视频文件的起始时间大于输入的结束时间,说明远程服务器中没有符合要求的视频文件,搜索失败;
第二步,如果视频文件A的起始时间小于输入的结束时间,则将视频文件A的结束时间与输入的起始时间比较,如果输入的起始时间大于视频文件A的结束时间,则将视频文件B的结束时间与输入的起始时间比较,依次循环,直至输入的起始时间小于本地存储的视频文件的结束时间;
第三步,再从搜索到的结束时间大于输入的起始时间的视频文件开始,将输入的结束时间与该视频文件的结束时间比较,直至输入的结束时间小于或者等于视频文件的结束时间;
如果在第二步,没有搜索到输入的时间小于结束时间的存储在本地的视频文件,则搜索失败;
通过上述搜索方法,如果用户输入的起始时间为2010年9月2日00:00:00,结束时间为2010年9月3日00:00:00,终端将起始时间和结束时间发送到远程服务器后,将符合条件的视频文件的数据信息在终端显示给用户,如图7阴影部分所示,搜索结果为2010年9月2日的00:00:00至03:00:00文件,10:00:00至14:00:00文件以及17:00:00至20:00:00文件。
用户在时间轴上进行第一次Seek操作,如果Seek的播放时间为2010年9月1日,22:00:00,计算播放时间具体的:用户端获取用户在播放进度条上搜索(Seek)的位置,然后计算Seek的位置占播放进度条总长度的比例,再将该比例与播放总时间相乘得到的值加上视频文件A的起始时间,得到播放时间;或者也可以是由用户直接输入的播放时间;
用户向服务器发送视频文件下载请求消息,该消息携带播放时间;
服务器接收视频文件下载请求消息,根据该消息携带的播放时间查找对应的视频文件,具体的:
服务器存储有同一时间轴的多个视频文件,并将多个视频文件根据起始时间的先后顺序前后拼接成一个视频文件队列,前一个视频文件的索引区的下一个文件地址为下一个视频文件的索引区的起始地址,视频文件队列的顺序是:视频文件A→视频文件B→视频文件C→视频文件D;
播放时间为2010年9月1日,22:00:00,视频文件A的索引区的结束时间为2010年9月1日,15:00:00,播放时间大于视频文件A的索引区的结束时间,则根据视频文件A索引区的下一个文件地址找到下一个视频文件索引区,即视频文件B的索引区,视频文件B的索引区的结束时间为2010年9月2日,03:00:00,播放时间小于视频文件B的索引区的结束时间,再比较播放时间和视频文件B的索引区的第一个I帧的起始时间的大小,视频文件B的索引区的第一个I帧的起始时间为2010年9月1日,22:00:00,与播放时间相等,说明找到了播放时间对应的I帧;
服务器从查找到的I帧开始发送视频文件给用户端;
用户端接收视频文件,播放该视频文件并将视频文件保存到本地硬盘,在播放到2010年9月2日,03:00:00时间点时,用户做了停止播放的操作,这时,用户端发送停止时间给服务器端,服务器停止发送视频文件;服务器给该视频文件,即视频文件B添加索引区:起始地址为0,文件长度为5,起始时间为2010年9月1日,22:00:00,结束时间为2010年9月2日,03:00:00,下一个文件的地址为5;
用户在时间轴上进行第二次Seek操作,如果Seek的播放时间为2010年9月1日,12:00:00;
用户端判断本地是否有播放时间对应的视频文件,具体的:
从本地视频文件队列中的第一个视频文件,即视频文件B开始,将播放时间与视频文件的索引区的结束时间进行比较,如果播放时间大于视频文件的索引区的结束时间,则根据该视频文件的索引区的下一个文件地址找到下一个视频文件,将播放时间与下一个视频文件的索引区的结束时间进行比较,如此循环,直至比较到最后一个视频文件,因为本地只有视频文件B,视频文件B的索引区的结束时间为2010年9月2日,03:00:00,播放时间为2010年9月1日,12:00:00,播放时间大于视频文件B的索引区的结束时间,所以本地视频文件队列中没有播放时间对应的视频文件,需要到服务器下载;
用户向服务器发送视频文件下载请求消息,该消息携带播放时间;
服务器接收视频文件下载请求消息,根据该消息携带的播放时间查找对应的视频文件,具体的:
播放时间为2010年9月1日,12:00:00,视频文件B的索引区的结束时间为2010年9月2日,03:00:00,播放时间小于视频文件B的索引区的结束时间,再比较播放时间和视频文件B的索引区的第一个I帧的起始时间的大小,视频文件B的索引区的第一个I帧的起始时间为2010年9月1日,12:00:00,与播放时间相等,说明找到了播放时间对应的I帧;
服务器从查找到的I帧开始发送视频文件给用户端;
用户端接收视频文件,用户端接收第一个I帧时,根据该I帧的起始时间迅速定到该I帧应该插入本地视频文件队列中的位置,具体的,将该I帧的起始时间与视频文件队列中第一个视频文件的起始时间比较,如果I帧的起始时间大于第一个视频文件的起始时间,则根据第一个视频文件的索引区的下一个视频文件找到第二个视频文件,再比较该I帧的起始时间和第二个视频文件的起始时间,依次循环,直至查找到起始时间大于该I帧的视频文件;接收到第二个以后的I帧时,将I帧的起始时间与查找到的视频文件的起始时间比较,如果该I帧的起始时间等于查找到的视频文件的起始时间时,用户端发送停止下载的消息给服务器,服务器停止发送视频文件给用户端;在本应用例中,第二次Seek操作接收的第一个I帧定位在视频文件B之前;
用户端播放该视频文件并将视频文件保存到本地硬盘,在播放到2010年9月1日,14:00:00时间点时,用户做了停止播放的操作,这时,用户端发送停止时间给服务器端,服务器停止发送视频文件;服务器给该视频文件A1添加索引区,具体的:起始地址为5,文件长度为2,起始时间为2010年9月1日,12:00:00,结束时间为2010年9月1日,14:00:00,下一个文件的地址为7;
再根据视频文件索引区的起始时间将下载的视频文件插入到本地的视频文件队列中,因为接收的视频文件的第一个I帧已经定位好了,直接将接收的视频文件插到视频文件B的前面,具体的:
将接收的视频文件的索引区的下一个文件地址改成视频文件B的索引区的起始地址;
用户在时间轴上进行第三次Seek操作,如果Seek的播放时间为2010年9月1日,14:30:00;
用户端判断本地是否有播放时间对应的视频文件,具体的:
从本地视频文件队列中的第一个视频文件开始,将播放时间与视频文件的索引区的结束时间进行比较,如果播放时间大于视频文件的索引区的结束时间,则根据该视频文件的索引区的下一个文件地址找到下一个视频文件,将播放时间与下一个视频文件的索引区的结束时间进行比较,如此循环,直至比较到最后一个视频文件;视频文件A1的索引区的结束时间为2010年9月1日,14:00:00,播放时间为2010年9月1日,14:30:00,播放时间大于视频文件A1的索引区的结束时间,在根据视频文件A1的索引区的下一个文件地址找到视频文件B,再比较播放时间和视频文件B的索引区的结束时间,视频文件B的索引区的结束时间为2010年9月2日,03:00:00,大于播放时间,再从视频文件B的第一个I帧开始,比较播放时间和I帧的起始时间,视频文件B的第一个I帧的起始时间为2010年9月1日,22:00:00,大于播放时间,说明本地视频文件队列中没有播放时间对应的视频文件,需要到服务器下载;
用户向服务器发送视频文件下载请求消息,该消息携带播放时间;
服务器接收视频文件下载请求消息,根据该消息携带的播放时间查找对应的视频文件,具体的:
播放时间为2010年9月1日,14:30:00,视频文件队列中第一个视频文件,即视频文件A的索引区的结束时间为2010年9月1日,15:00:00,播放时间小于第一个视频文件的索引区的结束时间,再将视频文件A的第一个I帧的起始时间与播放时间比较,视频文件A的第一个I帧的起始时间为2010年9月1日,12:00:00,小于播放时间,再将第二个I帧的起始时间与播放时间比较,依次循环,直至找到起始时间大于等于播放时间的I帧,如果I帧的起始时间与播放时间相等,从该I帧开始发送视频文件给用户端;如果I帧的起始时间大于播放时间,则从该I帧的上一个I帧开始发送视频文件给用户端;
用户端接收视频文件,接收第一个I帧时,根据该I帧的起始时间迅速定到该I帧应该插入本地视频文件队列中的位置,在本应用例中,第三次Seek操作接收的第一个I帧定位在视频文件B和视频文件A1之间;
用户端播放该视频文件并将视频文件保存到本地硬盘,在播放到2010年9月1日,14:45:00时间点时,用户做了停止播放的操作,这时,用户端发送停止时间给服务器端,服务器停止发送视频文件;服务器给该视频文件A2添加索引区,具体的:起始地址为7,文件长度为0.25,起始时间为2010年9月1日,14:30:00,结束时间为2010年9月1日,14:45:00,下一个文件的地址为7.25;
再根据视频文件索引区的起始时间将下载的视频文件A2插入到本地的视频文件队列中,因为接收的视频文件的第一个I帧已经定位好了,直接将接收的视频文件插到视频文件A1之后,视频文件B之前,具体的:
将视频文件A2的下一个文件地址改为视频文件A1的下一个文件地址,即视频文件B的起始地址,再将视频文件A1的下一个文件地址改为视频文件A2的起始地址;所以,视频文件队列的播放顺序为:A1→A2→B;
用户在时间轴上进行第四次Seek操作,如果Seek的播放时间为2010年9月1日,14:50:00;
方法同第一至第三次Seek操作,此处不赘述;
当接收的I帧的起始时间为2010年9月1日,22:00:00时,该I帧的起始时间与视频文件B的起始时间相同,说明从该I帧开始的视频文科用户端本地已经有了,只需要从本地硬盘获取数据播放即可,不需要从服务器下载,所以用户端发送停止下载的消息给服务器,服务器停止发送视频文件给用户端;
当用户端播放到起始时间为2010年9月2日,03:00:00的I帧时,发现视频文件B的索引区的下一个文件地址没有视频文件,说明需要从服务器端下载视频文件,所以用户端发送视频文件下载请求消息,该消息携带播放时间,此处即最后一个I帧的起始时间2010年9月2日,03:00:00;服务器从起始时间为2010年9月2日,03:00:00的I帧开始向用户端发送视频文件,用户端接收该I帧后,将该I帧定位,然后接收后续的I帧;对于本地已经有的I帧,用户端可以选择丢弃或者保留,此处不做限制。
在本实施例中,用户端从服务器下载视频文件,将该视频文件添加索引区,该索引区包括起始地址、下一个文件地址、起始时间,再根据该视频文件索引区的起始时间将该视频文件插入到本地的视频文件队列中,使得该视频文件的上一个视频文件的索引区的下一个文件地址为该视频文件的索引区的起始地址,并且该视频文件的索引区的下一个文件地址为该视频文件的下一个视频文件的索引区的起始地址,其中视频文件队列为由多个视频文件根据索引区的起始时间的先后顺序前后拼接而成的大视频文件;然后播放接收的视频文件;这样在同一时间轴上,不同的视频文件就能够不分先后连续下载,能够将不连续存储的视频文件按照时间顺序播放,并且因为是保存在本地,所以在回放的时候,不会消耗大量内存;并且,通过用户端发送起始时间和结束时间到服务器,服务器查找起始时间和结束时间之间的所有视频文件的数据信息,并将该数据信息发送到用户端,用户端快速在时间轴上显示,用户可以非常方便地查看保存于远程服务器上的视频文件的数据信息。
请参阅图8a、图8b,本发明实施例中用户端设备的第五实施例,具体的:
下载模块801,用于从服务器下载视频文件;
索引区添加模块802,用于将存储模块存储的视频文件添加索引区,其中索引区包括视频文件的起始地址、下一个文件地址、起始时间;
视频文件队列管理模块803,用于根据视频文件索引区的起始时间将该视频文件插入到本地的视频文件队列中,视频文件的上一个视频文件的索引区的下一个文件地址为该视频文件的索引区的起始地址,视频文件的索引区的下一个文件地址为该视频文件的下一个视频文件的索引区的起始地址,其中视频文件队列为一个大视频文件,根据多个视频文件的索引区的起始时间的先后顺序前后拼接而成;
播放模块804,用于播放视频文件队列管理模块插入视频文件队列的视频文件。
进一步的,请参阅图8b,下载模块801b,下载模块801包括:
第一获取单元801a,用于获取用户输入的播放时间;具体的,第一获取单元801a包括:获取单元,用于获取用户在播放进度条上搜索的位置;播放时间计算单元,用于计算获取单元获取的搜索的位置占播放进度条总长度的比例,再将该比例与播放总时间相乘得到的值加上第一个视频文件的起始时间,得到播放时间;
判断单元801b,用于判断本地是否有与获取模块获取的播放时间对应的视频文件;
发送单元801c,用于当判断单元判断出本地没有与获取模块获取的播放时间对应的视频文件时,则发送视频文件下载请求消息给服务器,其中视频文件下载请求消息携带播放时间;
第二获取模块801d,用于当判断单元判断出本地有获取模块获取的播放时间对应的视频文件时,获取该视频文件;具体的,第二获取模块801d包括:
第一查找单元,用于从视频文件队列中的第一个视频文件开始,判断播放时间是否小于等于视频文件队列的各个视频文件的索引区的起始时间,直至查找到播放时间小于等于索引区的起始时间的视频文件;
第二查找单元,用于当第一查找单元查找到播放时间小于索引区的起始时间的视频文件时,从该视频文件的第一个I帧开始,判断播放时间是否小于等于各个I帧的起始时间,直至查找到播放时间小于等I帧的起始时间的I帧;
发送单元,用于当第一查找单元查找到播放时间等于索引区的起始时间的视频文件时,则将该视频文件的二级索引区的第一个I帧开始发送给播放模块进行播放;当第二查找单元查找到播放时间等于I帧的起始时间的I帧时,则将该I帧开始发送给播放模块进行播放;当第二查找单元查找到播放时间小于I帧的起始时间的I帧,则从该I帧的前一个I帧开始发送给播放模块进行播放;
接收单元801e,用于接收服务器发送的视频文件。
在本实施例中,用户端从服务器下载视频文件,将该视频文件添加索引区,该索引区包括起始地址、下一个文件地址、起始时间,再根据该视频文件索引区的起始时间将该视频文件插入到本地的视频文件队列中,使得该视频文件的上一个视频文件的索引区的下一个文件地址为该视频文件的索引区的起始地址,并且该视频文件的索引区的下一个文件地址为该视频文件的下一个视频文件的索引区的起始地址,其中视频文件队列为由多个视频文件根据索引区的起始时间的先后顺序前后拼接而成的大视频文件;然后播放接收的视频文件;这样在同一时间轴上,不同的视频文件就能够不分先后连续下载,能够将不连续存储的视频文件按照时间顺序播放,并且因为是保存在本地,所以在回放的时候,不会消耗大量内存。
请参阅图9a、图9b,本发明实施例中用户端设备的第六实施例,具体的:
接收模块901,用于接收用户端发送的视频文件下载请求消息,该视频文件下载请求消息携带播放时间;
查找模块902,用于根据接收模块接收的播放时间查找对应的视频文件;
发送模块903,用于将查找模块查找到的视频文件发送给用户端,并在该视频文件发送完后,根据该视频文件索引区的下一个文件地址查找到下一个视频文件的起始地址,并将下一个视频文件发送给用户端,直到视频文件队列中的最后一个视频文件,或者停止时间对应的视频文件,其中停止时间由用户端发送;视频文件队列为一个大视频文件,根据多个视频文件的索引区的起始时间的先后顺序前后拼接而成,前一个视频文件索引区的下一个文件地址为后一个视频文件索引区的起始地址。
如图9b,进一步的,查找模块902包括:
第一查找单元902a,用于从视频文件队列中的第一个视频文件开始,判断播放时间是否小于等于该视频文件队列的各个视频文件的索引区的起始时间,直至查找到播放时间小于等于索引区的起始时间的视频文件;
第二查找单元902b,用于当第一查找单元查找到播放时间小于索引区的起始时间的视频文件时,从该视频文件的第一个I帧开始,判断播放时间是否小于等于各个I帧的起始时间,直至查找到播放时间小于等于I帧的起始时间的I帧;
发送单元902c,用于当第一查找单元查找到播放时间等于索引区的起始时间的视频文件时,则将该视频文件的二级索引区的第一个I帧开始发送给用户端;当第二查找单元查找到播放时间等于I帧的起始时间的I帧时,则将该I帧开始发送给用户端;当第二查找单元查找到播放时间小于I帧的起始时间的I帧,则将该I帧的前一个I帧开始发送给用户端。
在本实施例中,通过在服务器端将同一时间轴上的多个视频文件前后拼接成一个视频文件队列,用户端在下载视频文件时可以分别下载便可播放,而不需要将同一时间轴上的所有视频文件都下载才能播放;并且服务器端都是从I帧开始将视频文件发送给用户端进行播放,使得用户端在播放时不会出现不完整的图像。
请参阅图10,本实施例中视频文件播放系统的第七实施例,该视频文件播放系统可以包括用户端设备1001和服务器设备1002。该用户端设备1001可以为上述用户端设备实施例中描述的用户端设备,该服务器设备1002可以为上述服务器设备实施例中描述的服务器设备。由于前述实施例已经进行了详细描述,此处不赘。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁盘或光盘等。
以上对本发明实施例所提供的一种视频文件播放方法以及系统、用户端设备和服务器设备进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (14)

1.一种视频文件播放方法,其特征在于,包括:
用户端从服务器下载视频文件;
将所述视频文件添加索引区,所述索引区包括所述视频文件的起始地址、下一个文件地址、起始时间;
根据所述视频文件索引区的起始时间将所述视频文件插入到本地的视频文件队列中,所述视频文件的上一个视频文件的索引区的下一个文件地址为所述视频文件的索引区的起始地址,所述视频文件的索引区的下一个文件地址为所述视频文件的下一个视频文件的索引区的起始地址,所述视频文件队列为由多个视频文件根据索引区的起始时间的先后顺序前后拼接而成的大视频文件;
播放所述视频文件。
2.根据权利要求1所述的方法,其特征在于,所述从服务器下载视频文件的步骤包括:
用户端获取用户输入的播放时间;
判断本地是否有与所述播放时间对应的视频文件;
如果没有,则发送视频文件下载请求消息给服务器,所述视频文件下载请求消息携带所述播放时间;
接收服务器发送的视频文件。
3.根据权利要求2所述的方法,其特征在于,所述判断本地是否有与所述播放时间对应的视频文件的步骤之后还包括:
如果有,则根据所述播放时间获取并播放对应的视频文件,具体的:
判断所述播放时间是否小于等于所述视频文件队列中第一个视频文件的索引区的结束时间;
如果大于,则根据第一个视频文件的索引区的下一个文件地址找到下一个视频文件,并判断所述播放时间是否小于等于所述下一个视频文件的索引区的结束时间;
依次循环,直至找到所述播放时间小于等于索引区的结束时间的视频文件;
如果查找到所述播放时间等于索引区的结束时间的视频文件,则从所述视频文件的二级索引区的第一个帧内编码帧开始播放;
如果查找到所述播放时间小于索引区的结束时间的视频文件,再比较所述播放时间与所述视频文件的二级索引区的第一个帧内编码帧的起始时间的大小;
如果所述播放时间大于所述帧内编码帧的起始时间,则再判断所述播放时间是否小于等于下一个帧内编码帧的起始时间;
依次循环,直至找到所述播放时间小于等于帧内编码帧的起始时间的帧内编码帧,如果所述播放时间等于所述帧内编码帧的起始时间,则从所述帧内编码帧开始播放;如果所述播放时间小于所述帧内编码帧的起始时间,则从所述帧内编码帧的前一个帧内编码帧开始播放。
4.根据权利要求2所述的方法,其特征在于,所述接收服务器发送的视频文件的步骤包括:
当接收第一个帧内编码帧时,根据所述帧内编码帧的起始时间定位所述帧内编码帧在所述视频文件队列中的位置;
当接收第二个以后的帧内编码帧时,根据所述帧内编码帧的起始时间判断所述视频文件队列中是否已经存在所述帧内编码帧;
如果所述视频文件队列中已经存在所述帧内编码帧,则发送停止下载的消息给服务器。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
当播放到某个视频文件的最后一个帧内编码帧时,若根据所述视频文件的索引区的下一个文件地址查找到的物理地址没有视频文件时,向服务器发送视频文件下载请求消息,所述视频文件下载请求消息携带播放时间,所述播放时间等于所述最后一个帧内编码帧的起始时间。
6.根据权利要求5所述的方法,其特征在于,所述用户端获取用户输入的播放时间的步骤包括:
获取用户在播放进度条上搜索的位置,然后计算所述搜索的位置占播放进度条总长度的比例,再将所述比例与播放总时间相乘得到的值加上第一个视频文件的起始时间,得到播放时间。
7.一种视频文件播放方法,其特征在于,包括:
接收用户端发送的视频文件下载请求消息,所述视频文件下载请求消息携带播放时间;
根据所述播放时间查找对应的视频文件;
将所述视频文件发送给用户端;
所述视频文件发送完后,根据所述视频文件索引区的下一个文件地址查找到下一个视频文件的起始地址,前一个视频文件索引区的下一个文件地址为后一个视频文件索引区的起始地址,多个所述视频文件前后拼接成一个大视频文件,即视频文件队列;
将所述下一个视频文件发送给用户端,直到所述视频文件队列中的最后一个视频文件,或者直到停止时间对应的视频文件,所述停止时间由用户端发送。
8.根据权利要求7所述的方法,其特征在于,所述根据播放时间查找对应的视频文件的步骤具体的:
判断所述播放时间是否小于第一个视频文件的索引区的结束时间;
如果不小于,则根据第一个视频文件索引区的下一个文件地址找到下一个视频文件索引区,并判断所述播放时间是否小于所述下一个视频文件索引区的结束时间;
依次循环,直至找到所述播放时间小于索引区的结束时间的视频文件;
再比较所述播放时间与所述播放时间小于索引区的结束时间的视频文件的二级索引区的第一个帧内编码帧的起始时间的大小;
如果所述播放时间大于所述帧内编码帧的起始时间,则再判断所述播放时间是否小于等于下一个帧内编码帧的起始时间;
依次循环,直至找到所述播放时间小于等于帧内编码帧的起始时间的帧内编码帧,如果所述播放时间等于所述帧内编码帧的起始时间,则从所述帧内编码帧开始向用户端发送视频文件;如果所述播放时间小于所述帧内编码帧的起始时间,则从所述帧内编码帧的前一个帧内编码帧开始向用户端发送视频文件。
9.一种用户端设备,其特征在于,包括:
下载模块,用于从服务器下载视频文件;
索引区添加模块,用于将存储模块存储的视频文件添加索引区,所述索引区包括所述视频文件的起始地址、下一个文件地址、起始时间;
视频文件队列管理模块,用于根据所述视频文件索引区的起始时间将所述视频文件插入到本地的视频文件队列中,所述视频文件的上一个视频文件的索引区的下一个文件地址为所述视频文件的索引区的起始地址,所述视频文件的索引区的下一个文件地址为所述视频文件的下一个视频文件的索引区的起始地址,所述视频文件队列为一个大视频文件,根据多个视频文件的索引区的起始时间的先后顺序前后拼接而成;
播放模块,用于播放视频文件队列管理模块插入视频文件队列的视频文件。
10.根据权利要求9所述的设备,其特征在于,所述下载模块包括:
第一获取单元,用于获取用户输入的播放时间;
判断单元,用于判断本地是否有与第一获取单元获取的播放时间对应的视频文件;
第一发送单元,用于当判断单元判断出本地没有与第一获取单元获取的播放时间对应的视频文件时,则发送视频文件下载请求消息给服务器,所述视频文件下载请求消息携带所述播放时间;
第二获取模块,用于当判断单元判断出本地有第一获取单元获取的播放时间对应的视频文件时,获取所述视频文件;
接收单元,用于接收服务器发送的视频文件。
11.根据权利要求10所述的设备,其特征在于,包括:
所述第一获取单元包括:
获取单元,用于获取用户在播放进度条上搜索的位置;
播放时间计算单元,用于计算获取单元获取的搜索的位置占播放进度条总长度的比例,再将所述比例与播放总时间相乘得到的值加上第一个视频文件的起始时间,得到播放时间;
所述第二获取模块包括:
第一查找单元,用于从所述视频文件队列中的第一个视频文件开始,判断所述播放时间是否小于等于所述视频文件队列的各个视频文件的索引区的起始时间,直至查找到所述播放时间小于等于索引区的起始时间的视频文件;
第二查找单元,用于当第一查找单元查找到所述播放时间小于索引区的起始时间的视频文件时,从所述视频文件的二级索引区的第一个帧内编码帧开始,判断所述播放时间是否小于等于各个帧内编码帧的起始时间,直至查找到所述播放时间小于等于帧内编码帧的起始时间的帧内编码帧;
第二发送单元,用于当第一查找单元查找到所述播放时间等于索引区的起始时间的视频文件时,则将所述视频文件的二级索引区的第一个帧内编码帧开始发送给播放模块进行播放;当第二查找单元查找到所述播放时间等于所述帧内编码帧的起始时间的帧内编码帧时,则将所述帧内编码帧开始发送给播放模块进行播放;当第二查找单元查找到所述播放时间小于所述帧内编码帧的起始时间的帧内编码帧,则从所述帧内编码帧的前一个帧内编码帧开始发送给播放模块进行播放。
12.一种服务器设备,其特征在于,包括:
接收模块,用于接收用户端发送的视频文件下载请求消息,所述视频文件下载请求消息携带播放时间;
查找模块,用于根据接收模块接收的播放时间查找对应的视频文件;
发送模块,用于将查找模块查找到的视频文件发送给用户端,并在所述视频文件发送完后,根据所述视频文件索引区的下一个文件地址查找到下一个视频文件的起始地址,并将所述下一个视频文件发送给用户端,直到视频文件队列中的最后一个视频文件,或者停止时间对应的视频文件,所述停止时间由用户端发送;所述视频文件队列为一个大视频文件,根据多个视频文件的索引区的起始时间的先后顺序前后拼接而成,前一个视频文件索引区的下一个文件地址为后一个视频文件索引区的起始地址。
13.根据权利要求12所述的设备,其特征在于,所述查找模块包括:
第一查找单元,用于从所述视频文件队列中的第一个视频文件开始,判断所述播放时间是否小于等于所述视频文件队列的各个视频文件的索引区的起始时间,直至查找到所述播放时间小于等于索引区的起始时间的视频文件;
第二查找单元,用于当第一查找单元查找到所述播放时间小于索引区的起始时间的视频文件时,从所述视频文件的二级索引区的第一个帧内编码帧开始,判断所述播放时间是否小于等于各个帧内编码帧的起始时间,直至查找到所述播放时间小于等于帧内编码帧的起始时间的帧内编码帧;
发送单元,用于当第一查找单元查找到所述播放时间等于索引区的起始时间的视频文件时,则将所述视频文件的二级索引区的第一个帧内编码帧开始发送给用户端;当第二查找单元查找到所述播放时间等于所述帧内编码帧的起始时间的帧内编码帧时,则将所述帧内编码帧开始发送给用户端;当第二查找单元查找到所述播放时间小于所述帧内编码帧的起始时间的帧内编码帧,则从所述帧内编码帧的前一个帧内编码帧开始发送给用户端。
14.一种视频文件播放系统,其特征在于,包括权9至权11任一项权利要求所述的用户端设备,以及权12至权13任一项权利要求所述的服务器设备。
CN201010602764XA 2010-12-23 2010-12-23 视频文件播放方法及系统、用户端设备、服务器设备 Expired - Fee Related CN102075792B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201010602764XA CN102075792B (zh) 2010-12-23 2010-12-23 视频文件播放方法及系统、用户端设备、服务器设备
US13/335,384 US8606077B2 (en) 2010-12-23 2011-12-22 Method, system, user equipment, and server equipment for video file playback

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010602764XA CN102075792B (zh) 2010-12-23 2010-12-23 视频文件播放方法及系统、用户端设备、服务器设备

Publications (2)

Publication Number Publication Date
CN102075792A CN102075792A (zh) 2011-05-25
CN102075792B true CN102075792B (zh) 2013-01-02

Family

ID=44034113

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010602764XA Expired - Fee Related CN102075792B (zh) 2010-12-23 2010-12-23 视频文件播放方法及系统、用户端设备、服务器设备

Country Status (2)

Country Link
US (1) US8606077B2 (zh)
CN (1) CN102075792B (zh)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102857794B (zh) * 2011-06-28 2018-03-06 上海聚力传媒技术有限公司 一种用于合并视频分段的方法与设备
CN103177465B (zh) * 2011-12-26 2016-04-13 腾讯科技(深圳)有限公司 动画控制方法及系统
KR101895048B1 (ko) * 2012-01-11 2018-09-04 주식회사 케이티 스트림 변환을 수행하는 단말 및 방법, 그리고 단말로 스트림을 전송하는 스트리밍 서버
CN102883187B (zh) * 2012-09-17 2015-07-08 华为技术有限公司 一种时移节目服务方法、设备和系统
CN104581337A (zh) * 2013-10-09 2015-04-29 腾讯科技(深圳)有限公司 视频的播放控制方法及装置
CN104581404B (zh) * 2013-10-21 2018-12-07 腾讯科技(深圳)有限公司 多媒体数据的处理方法、装置及系统
CN104581354A (zh) * 2013-10-25 2015-04-29 腾讯科技(深圳)有限公司 一种视频缓冲方法及视频缓冲装置
CN104731834B (zh) * 2013-12-24 2019-04-16 安凯(广州)微电子技术有限公司 一种文件顺序播放方法及装置
TWI533678B (zh) * 2014-01-07 2016-05-11 緯創資通股份有限公司 即時轉播同步方法以及使用該方法的系統
CN103873883B (zh) * 2014-03-06 2017-05-03 小米科技有限责任公司 一种视频播放的方法、装置及终端设备
CN104320707A (zh) * 2014-09-19 2015-01-28 小米科技有限责任公司 网络视频的播放方法及装置
CN104967864B (zh) * 2014-09-26 2019-01-11 腾讯科技(北京)有限公司 一种合并视频的方法及装置
US9839843B1 (en) 2014-11-14 2017-12-12 Amazon Technologies, Inc. Coordination of content presentation operations
US10158700B1 (en) 2014-11-14 2018-12-18 Amazon Technologies, Inc. Coordination of content presentation operations
US9821222B1 (en) 2014-11-14 2017-11-21 Amazon Technologies, Inc. Coordination of content presentation operations
RU2583764C1 (ru) 2014-12-03 2016-05-10 Общество С Ограниченной Ответственностью "Яндекс" Способ обработки запроса пользователя на доступ к веб-ресурсу и сервер
CN104394380A (zh) * 2014-12-09 2015-03-04 浙江省公众信息产业有限公司 视频监控管理系统以及视频监控录像的回放方法
CN104869338B (zh) * 2015-05-18 2019-03-12 浙江宇视科技有限公司 一种音视频文件转存及检索方法
CN104935856A (zh) * 2015-06-05 2015-09-23 深圳市凯立德科技股份有限公司 一种行车记录视频显示方法及装置
CN106713940B (zh) * 2015-08-04 2019-12-20 杭州海康威视数字技术股份有限公司 视频流的存储方法、读取方法及装置
CN105120321A (zh) * 2015-08-21 2015-12-02 北京佳讯飞鸿电气股份有限公司 一种视频搜索方法、视频存储方法和相关装置
CN106550202A (zh) * 2015-09-16 2017-03-29 深圳市凯立德科技股份有限公司 一种行车记录影像显示方法及装置
CN105245940A (zh) * 2015-10-08 2016-01-13 北京时医康科技发展有限公司 一种窄带宽在线播放高清视频的方法及播放器
CN106888360A (zh) * 2015-12-16 2017-06-23 丛北华 一种基于事件形式控制视频信号上传的系统及其方法
CN106294814B (zh) * 2016-08-16 2019-09-20 上海欣方软件有限公司 基于内存数据库的HBase二级索引构建与查询的装置及方法
CN106791988B (zh) * 2016-11-23 2020-05-26 海信视像科技股份有限公司 多媒体数据轮播方法和终端
CN108184159B (zh) * 2016-12-08 2020-09-08 武汉斗鱼网络科技有限公司 一种进度条的实现方法及装置
CN107197359B (zh) * 2017-05-18 2021-01-08 百度在线网络技术(北京)有限公司 视频文件缓存方法及装置
CN110234020B (zh) * 2018-03-06 2021-11-19 阿里巴巴(中国)有限公司 视频播放方法及装置
CN108965910B (zh) * 2018-08-09 2022-05-10 网宿科技股份有限公司 一种视频缓存方法及播放器
CN109862423B (zh) * 2019-01-03 2021-06-22 珠海亿智电子科技有限公司 一种视频seek方法、装置、终端及计算机可读存储介质
US11437072B2 (en) * 2019-02-07 2022-09-06 Moxtra, Inc. Recording presentations using layered keyframes
KR102654716B1 (ko) * 2019-02-11 2024-04-04 한화비전 주식회사 요청된 영상 재생시점에 따라 영상을 재생하는 방법 및 그 장치
CN110113389B (zh) * 2019-04-17 2022-06-07 浙江大华技术股份有限公司 一种视频播放方法、装置、电子设备及存储介质
CN114786065B (zh) * 2022-03-29 2024-08-20 广州埋堆堆科技有限公司 一种基于FFmpeg的HLS视频播放进度精准切换方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101252401A (zh) * 2008-02-27 2008-08-27 华为技术有限公司 下载节目数据的方法、系统和终端设备
CN101478564A (zh) * 2008-12-31 2009-07-08 西安交通大学 P2p流媒体网络自适应分级传输结构设计方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4777537A (en) * 1985-10-21 1988-10-11 Sony Corporation Signal recording apparatus and method
US20070002871A1 (en) * 2005-06-30 2007-01-04 Nokia Corporation Padding time-slice frames with useful data
US20090043692A1 (en) * 2007-08-07 2009-02-12 Nokia Corporation Downloading of Content
JP2009163643A (ja) * 2008-01-09 2009-07-23 Sony Corp 映像検索装置、編集装置、映像検索方法およびプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101252401A (zh) * 2008-02-27 2008-08-27 华为技术有限公司 下载节目数据的方法、系统和终端设备
CN101478564A (zh) * 2008-12-31 2009-07-08 西安交通大学 P2p流媒体网络自适应分级传输结构设计方法

Also Published As

Publication number Publication date
CN102075792A (zh) 2011-05-25
US20120163771A1 (en) 2012-06-28
US8606077B2 (en) 2013-12-10

Similar Documents

Publication Publication Date Title
CN102075792B (zh) 视频文件播放方法及系统、用户端设备、服务器设备
CN102685554B (zh) 视频播放的处理方法和装置
CN108154384A (zh) 广告投放方法、广告投放服务器及广告投放系统
CN104243590B (zh) 资源对象推荐方法和装置
CN102196008A (zh) 点对点下载方法、视频设备和内容发送方法
CN105451087A (zh) 弹幕信息的推送方法、终端、历史数据服务器及系统
CN101677325A (zh) 发布媒体描述信息和获取媒体的方法、装置、系统
CN103686455A (zh) 一种基于hls协议的视频播放方法和装置
CN103024593A (zh) 一种网络视频点播加速系统及其播放方法
CN106303588A (zh) 视频推荐方法、客户端以及服务器
CN104077296A (zh) 处理信息的方法和服务器
CN103944994A (zh) 分布式资源获取方法及装置
CN103136348A (zh) 一种文件显示方法及装置
CN110311959A (zh) 消息推送与页面更新的方法、装置及数据处理系统
CN102035859A (zh) 一种显示上传进度的方法、系统和装置
CN205430501U (zh) 移动终端网络广告视频和正片视频无缝切换装置
JP2009541877A (ja) ウェブ・オブジェクトを制御する方法、システム、装置、及びコンピュータ・プログラム(放送情報をキャッシュする方法及び装置)
CN102868936A (zh) 存储视频日志的方法和系统
CN103618787A (zh) 一种网页展现系统和方法
CN103685476A (zh) 利用网页模板实现网页展现的方法和网页模板服务器
CN103190097A (zh) 发送和接收用于http流送的媒体信息文件的方法
CN101945124B (zh) 一种基于微视频和对等网络的实景网络地图漫游中的视频下载方法
CN103248921B (zh) 广告播放方法、装置及系统
CN110719526A (zh) 视频播放方法及装置
CN114650433B (zh) 缓存方法及缓存装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20170713

Address after: 510640 Guangdong City, Tianhe District Province, No. five, road, public education building, unit 371-1, unit 2401

Patentee after: Guangdong Gaohang Intellectual Property Operation Co., Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: Huawei Technologies Co., Ltd.

TR01 Transfer of patent right
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Xia Ping

Inventor after: Wang Xiujuan

Inventor after: Xie Jianjun

Inventor before: Li Zhaozao

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20171017

Address after: Yongcheng City, Ma Mu Xiang Xia Tanglin village in Shangqiu City, Henan province 476631 three Group No. 040

Co-patentee after: Wang Xiujuan

Patentee after: Xia Ping

Co-patentee after: Xie Jianjun

Address before: 510640 Guangdong City, Tianhe District Province, No. five, road, public education building, unit 371-1, unit 2401

Patentee before: Guangdong Gaohang Intellectual Property Operation Co., Ltd.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130102

Termination date: 20171223