CN107231581B - 用于视频播放的方法、系统及流媒体播放控制服务器 - Google Patents
用于视频播放的方法、系统及流媒体播放控制服务器 Download PDFInfo
- Publication number
- CN107231581B CN107231581B CN201610177972.7A CN201610177972A CN107231581B CN 107231581 B CN107231581 B CN 107231581B CN 201610177972 A CN201610177972 A CN 201610177972A CN 107231581 B CN107231581 B CN 107231581B
- Authority
- CN
- China
- Prior art keywords
- playing
- video
- index
- file
- information
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/47217—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for controlling playback functions for recorded or on-demand content, e.g. using progress bars, mode or play-point indicators or bookmarks
-
- 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/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- 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/60—Network 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/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/643—Communication protocols
-
- 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/60—Network 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/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/643—Communication protocols
- H04N21/6437—Real-time Transport Protocol [RTP]
-
- 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/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8547—Content authoring involving timestamps for synchronizing content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/18—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
- H04N7/183—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast for receiving images from a single remote source
Abstract
本发明公开了一种用于视频播放的方法、流媒体播放控制服务器和视频播放系统,涉及云存储技术领域,其中的方法包括:判断前端摄像机是否向云服务器上传了监控视频文件,如果是,则从监控视频文件中抽取索引信息生成索引文件并存储;当接收到客户端发送的播放请求时,获取与播放请求相对应的索引文件,并基于索引文件向云服务器发送播放控制指令。本发明的方法、流媒体播放控制服务器和视频播放系统,通过建立独立的针对于视频文件的索引文件,解决了播放器无法处理保存在尾部的索引而导致播放缓冲时间长的问题,也解决了存储在云上的监控录像无法在线播放、定时定长播放、播放时拖拽进度的问题,实现了云存储视频监控的多种流媒体播放方式。
Description
技术领域
本发明涉及云存储技术领域,尤其涉及一种用于视频播放的方法、流媒体播放控制服务器和视频播放系统。
背景技术
随着视频监控技术及云存储的快速发展,业务日益趋向互联网化,出现了多种技术的创新与融合。从监控录像的安全性、稳定性、节约性等方面考虑,人们已不满足传统的前端录像存储,而希望将录像保存在云端。但是,由于目前大多数的监控录像为实时生成并上传,只能形成后置索引,大部分主流播放器,例如wmplayer等,无法处理后置索引,播放时缓冲时间较长,并且目前一些主流云存储服务商,如亚马逊、华为等,只提供文件存储服务,不具备专门针对视频录像的流式播放、控制等服务能力,用户只能先下载再播放,无法在线播放、定时播放及拖拽进度等操作,非常不方便。
发明内容
有鉴于此,本发明要解决的一个技术问题是提供一种用于视频播放的方法、流媒体播放控制服务器和视频播放系统。
根据本发明的一个方面,提供一种用于视频播放的方法,包括:判断前端摄像机是否向云服务器上传了监控视频文件,如果是,则从所述监控视频文件中抽取索引信息生成索引文件并存储;当接收到客户端发送的播放请求时,获取与所述播放请求相对应的所述索引文件,并基于所述索引文件向所述云服务器发送播放控制指令,以便于所述云服务器向所述客户端发送与所述播放请求相对应的视频数据。
可选地,所述判断前端摄像机是否向云服务器上传了监控视频文件、如果是、则从所述监控视频文件中抽取索引信息生成索引文件并存储包括:在判断所述云存储服务器接收到新的视频监控文件时,读取所述新的监控视频文件的文件头信息,获取视频索引信息在所述视频文件中的保存位置;其中,所述前端摄像机周期性地生成监控视频文件并发送到所述云服务器,其中,所述视频索引信息保存在所述监控视频文件的尾部;根据所述保存位置抽取所述视频索引信息并生成索引文件;下载所述索引文件并将所述索引文件存储在索引库中。
可选地,所述索引文件与所述视频监控文件相对应,所述索引文件中的一条索引记录都与所述视频监控文件的一帧视频数据相对应;其中,所述索引记录包括:视频时间戳、I帧序列、P/B帧序列。
可选地,所述当接收到客户端发送的播放请求时、获取与所述播放请求相对应的所述索引文件、并基于所述索引文件向所述云服务器发送播放控制指令包括:接收到所述客户端发送的播放请求,其中,所述播放请求携带有时间戳信息;从所述播放请求中提取所述时间戳信息,基于所述时间戳信息获取第一索引文件;将所述时间戳信息与所述第一索引文件中的索引记录进行匹配,确定所述视频时间戳与所述时间戳信息相同的第一索引记录,并提取第一索引记录中的I帧序列作为第一播放关键帧序列;向云服务器发送播放控制指令,所述播放控制指令中携带有所第一述播放关键帧序列。
可选地,所述云服务器向所述客户端发送与所述播放请求相对应的视频数据包括:所述云服务器接收到所述第一播放控制指令,从所述第一播放控制指令中提取出所述第一播放关键帧序列;基于所述第一播放关键帧序列确定播放视频的第一关键帧位置,并从第一关键帧位置以实时流传输协议RTSP流的形式向所述客户端发送视频。
可选地,判断所述播放请求是否携带有播放时间长度信息,如果是,则从所述播放请求中提取所述播放时间长度信息;向云服务器发送所述第一播放控制指令,其中,所述第一播放控制指令中携带第一播放关键帧序列和所述播放时间长度信息。
可选地,所述云服务器接收到所述播放控制指令,从所述播放控制指令中提取出所述播放时间长度信息;在所述云服务器向所述客户端发送视频数据时开始计时,当计时达到所述播放时间长度信息对应的时间长度时,则所述云服务器停止发送视频数据。
可选地,接收到所述客户端向前拖动播放进度条发送的播放请求,其中,所述播放请求携带有新的时间戳信息;从所述播放请求中提取所述新的时间戳信息,基于所述新的时间戳信息获取第二索引文件;将所述新的时间戳信息与所述第二索引文件中的索引记录进行匹配,确定所述视频时间戳与所述新的时间戳信息相同的第二索引记录,并提取此第二索引记录中的I帧序列作为第二播放关键帧序列;向云服务器发送播放控制指令,所述播放控制指令中携带有所述第二播放关键帧序列。
可选地,所述云服务器接收到所述播放控制指令,从所述播放控制指令中提取出所述第二播放关键帧序列;基于所述第二播放关键帧序列确定播放视频的第二关键帧位置,停止发送当前的视频数据,并从第二关键帧位置以实时流传输协议RTSP流的形式向所述客户端发送视频。
可选地,所述播放请求为超文本传输协议HTTP请求,所述监控视频文件为H.264格式的视频文件。
根据本发明的一个方面,提供一种流媒体播放控制服务器,包括:索引文件生成模块,用于判断前端摄像机是否向云服务器上传了监控视频文件,如果是,则从所述监控视频文件中抽取索引信息生成索引文件并存储;索引文件检索模块,用于当接收到客户端发送的播放请求时,获取与所述播放请求相对应的所述索引文件;控制指令发送模块,用于基于所述索引文件向所述云服务器发送播放控制指令,以便于所述云服务器向所述客户端发送与所述播放请求相对应的视频数据。
可选地,所述索引文件生成模块,包括:索引位置确定单元,用于在判断所述云存储服务器接收到新的视频监控文件时,读取所述新的监控视频文件的文件头信息,获取视频索引信息在所述视频文件中的保存位置;其中,所述前端摄像机周期性地生成监控视频文件并发送到所述云服务器,其中,所述视频索引信息保存在所述监控视频文件的尾部;索引信息提取单元,用于根据所述保存位置抽取所述视频索引信息并生成索引文件;索引文件下载单元,用于下载所述索引文件并将所述索引文件存储在索引库中。
可选地,所述索引文件与所述视频监控文件相对应,所述索引文件中的一条索引记录都与所述视频监控文件的一帧视频数据相对应;其中,所述索引记录包括:视频时间戳、I帧序列、P/B帧序列。
可选地,所述索引文件检索模块,包括:播放信息提取单元,用于接收到所述客户端发送的播放请求,其中,所述播放请求携带有时间戳信息;索引文件确定单元,用于从所述播放请求中提取所述时间戳信息,基于所述时间戳信息获取第一索引文件。
可选地,所述控制指令发送模块,包括:关键帧位置确定单元,用于将所述时间戳信息与所述第一索引文件中的索引记录进行匹配,确定所述视频时间戳与所述时间戳信息相同的第一索引记录,并提取第一索引记录中的I帧序列作为第一播放关键帧序列;指令发送单元,用于向云服务器发送播放控制指令,所述播放控制指令中携带有所第一述播放关键帧序列;其中,所述云服务器接收到所述第一播放控制指令,从所述第一播放控制指令中提取出所述第一播放关键帧序列,基于所述第一播放关键帧序列确定播放视频的第一关键帧位置,并从第一关键帧位置以实时流传输协议RTSP流的形式向所述客户端发送视频。
可选地,所述播放信息提取单元,用于判断所述播放请求是否携带有播放时间长度信息,如果是,则从所述播放请求中提取所述播放时间长度信息;所述指令发送单元,用于向云服务器发送所述第一播放控制指令,其中,所述第一播放控制指令中携带第一播放关键帧序列和所述播放时间长度信息;其中,所述云服务器接收到所述播放控制指令,从所述播放控制指令中提取出所述播放时间长度信息,在所述云服务器向所述客户端发送视频数据时开始计时,当计时达到所述播放时间长度信息对应的时间长度时,则所述云服务器停止发送视频数据。
可选地,所述播放信息提取单元,用于接收到所述客户端向前拖动播放进度条发送的播放请求,其中,所述播放请求携带有新的时间戳信息;索引文件确定单元,用于从所述播放请求中提取所述新的时间戳信息,基于所述新的时间戳信息获取第二索引文件。
可选地,所述关键帧位置确定单元,用于将所述新的时间戳信息与所述第二索引文件中的索引记录进行匹配,确定所述视频时间戳与所述新的时间戳信息相同的第二索引记录,并提取此第二索引记录中的I帧序列作为第二播放关键帧序列;所述指令发送单元,用于向云服务器发送播放控制指令,所述播放控制指令中携带有所述第二播放关键帧序列;其中,所述云服务器接收到所述播放控制指令,从所述播放控制指令中提取出所述第二播放关键帧序列,基于所述第二播放关键帧序列确定播放视频的第二关键帧位置,停止发送当前的视频数据,并从第二关键帧位置以实时流传输协议RTSP流的形式向所述客户端发送视频.
根据本发明的又一方面,提供一种视频播放系统,包括:客户端、云服务器、如上所述的流媒体播放控制服务器。
本发明的用于视频播放的方法、流媒体播放控制服务器和视频播放系统,通过建立独立的针对于视频文件的索引文件,解决了播放器无法处理保存在尾部的索引而导致播放缓冲时间长的问题,也解决了存储在云上的监控录像无法在线播放、定时定长播放、播放时拖拽进度的问题,实现了云存储视频监控的多种流媒体播放方式。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为根据本发明的用于视频播放的方法的一个实施例的流程示意图;
图2为根据本发明的用于视频播放的方法的一个实施例中的生成索引文件的流程示意图。
图3为根据本发明的用于视频播放的方法的另一个实施例的流程示意图;
图4为根据本发明的用于视频播放的方法的又一个实施例的流程示意图;
图5为根据本发明的用于视频播放的方法的再一个实施例的流程示意图;
图6为根据本发明的流媒体播放控制服务器的一个实施例的模块示意图;
图7为根据本发明的流媒体播放控制服务器的一个实施例中的索引文件生成模块的模块示意图;
图8为根据本发明的流媒体播放控制服务器的一个实施例中的索引文件检索模块的模块示意图;
图9为根据本发明的流媒体播放控制服务器的一个实施例中的控制指令发送模块的模块示意图;
图10为根据本发明的视频播放系统的一个实施例的示意图。
具体实施方式
下面参照附图对本发明进行更全面的描述,其中说明本发明的示例性实施例。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。下面结合各个图和实施例对本发明的技术方案进行多方面的描述。
下文中的“第一”、“第二”等,仅用于描述上相区别,并没有其它特殊的含义。
图1为根据本发明的用于视频播放的方法的一个实施例的流程示意图,如图1所示:
步骤101,判断前端摄像机是否向云服务器上传了监控视频文件,如果是,则从监控视频文件中抽取索引信息生成索引文件并存储。
步骤102,当接收到客户端发送的播放请求时,获取与播放请求相对应的索引文件。
步骤103,基于索引文件向云服务器发送播放控制指令,以便于云服务器向客户端发送与播放请求相对应的视频数据。
前端摄像机实时生成监控录像并上传,索引保存在录像尾部,多数播放器播放时在头文件找不到索引,造成了要读取到索引信息的时候才开始播放,因此缓冲时间很长。
上述实施例中的用于视频播放的方法,在播放前生成索引文件,建立索引库,播放时可以直接找到索引文件,根据用户提出的播放时间、长度等要求,下载索引文件和视频数据,进行在线播放。例如,对实时生成的后置索引监控视频文件的索引进行抽取,形成单独的索引文件,根据时间戳在索引文件中查找出关键帧位置,基于关键帧位置实现rtsp流式播放,实现了云存储视频监控的多种流媒体播放方式。
图2为根据本发明的用于视频播放的方法的一个实施例中的生成索引文件的流程示意图,如图2所示:
步骤201,摄像机实时生成H.264编码格式的监控视频文件,监控视频文件的索引保存在视频尾部,并上传保存到云存储。
例如,前端摄像机以每15分钟为间隔,周期性地生成监控视频文件并发送到云服务器进行存储,在生成监控视频文件时,视频索引信息保存在监控视频文件的尾部。
步骤202,在判断云存储服务器接收到新的视频监控文件时,读取新的监控视频文件的文件头信息,获取视频索引信息在视频文件中的保存位置。
例如,当云存储服务器接收到新的视频监控文件时,向流媒体播放控制服务器发送通知消息。流媒体播放控制服务器可以在云存储服务器中部署一个应用A,能够接收到通知消息,并能够访问云服务器中存储的监控视频文件,并读取监控视频文件的文件头,获取索引的位置。
步骤203、流媒体播放控制服务器根据保存位置抽取视频索引信息并生成索引文件,即应用A生成独立的索引文件。
步骤204、流媒体播放控制服务器下载索引文件,保存在流媒体播放控制服务器中的索引库中。每当有新的监控视频文件上传,则重复步骤201-2044。
在流媒体播放控制服务器的索引库中存储索引文件,索引文件与云服务器上存储视频监控文件相对应,索引文件中的一条索引记录都与视频监控文件的一帧视频数据相对应,索引记录包括:视频时间戳、I帧序列、P/B帧序列等。
例如,一个视频文件对应一个索引文件,两者之间是一一对应的关系。索引文件中的一条索引记录唯一对应视频文件中的一条视频帧。一个视频文件都有一个唯一标识id,每个块是一段视频,都是由帧组成,帧类别分别为:I帧,P帧和B帧。
与视频文件对应的索引文件中的由N条索引记录组成,视频文件的每一帧对应索引文件的一条索引记录。例如,一条索引记录由4个字段组成:Time、I_Seqno、P,B_Seqno和Offset。Time为视频时间戳、I_Seqno为I帧序列、P,B_Seqno为P/B帧序列、Offset为每一帧对应视频文件的偏移值。
图3为根据本发明的用于视频播放的方法的另一个实施例的流程示意图,如图3所示:
步骤301,接收到客户端发送的播放请求,播放请求携带有时间戳信息;例如,接收到用户客户端携带时间戳信息的http请求。播放请求为超文本传输协议HTTP请求等,可以包括用户需要播放的视频名称、ID、时间戳信息等。
步骤302,从播放请求中提取时间戳信息,基于时间戳信息获取第一索引文件。例如,流媒体索引控制服务器可以在存储索引文件时建立一张表,表中维护索引文件中的视频时间戳区间信息,以及对应的在云服务器中存储的监控视频的文件名、ID等,根据文件名和时间戳信息可以检索出一个索引文件,时间戳信息可以为标准时间等,根据现有的方法可以进行转换。
将时间戳信息与第一索引文件中的索引记录进行匹配,确定视频时间戳与时间戳信息相同的第一索引记录,并提取第一索引记录中的I帧序列作为第一播放关键帧序列。
步骤303,向云服务器发送播放控制指令,播放控制指令中携带有所第一述播放关键帧序列。
例如,根据索引文件中确定的I帧序列以及用户发送的播放请求中的文件名、ID等,可以确定云服务器中存储的监控视频的具体的关键帧位置。监控视频中每隔几秒有一个关键帧,即I帧,根据索引文件找到向客户端播放的视频的相应的关键帧,视频的播放时间能够精确到秒级。
步骤304,云服务器接收到第一播放控制指令,从第一播放控制指令中提取出第一播放关键帧序列。基于第一播放关键帧序列确定播放视频的第一关键帧位置,并从第一关键帧位置以实时流传输协议RTSP流的形式向客户端发送视频。云服务器可以找到播放视频的关键帧下载转发rtsp流,用户客户端在线播放成功。
步骤305、用户客户端向流媒体播放控制服务器发送http请求停止播放。
步骤306、流媒体播放控制服务器向云服务器发送停止停止播放的控制指令,播放结束。
图4为根据本发明的用于视频播放的方法的又一个实施例的流程示意图,如图4所示:
步骤401,接收到客户端发送的播放请求,播放请求携带有时间戳信息和播放时间长度信息。
例如,接收到用户客户端携带时间戳信息和播放时间长度信息的http请求,时间戳信息为12:30和播放时间长度信息为300秒。
步骤402,从播放请求中提取时间戳信息,基于时间戳信息获取第一索引文件。将时间戳信息与第一索引文件中的索引记录进行匹配,确定视频时间戳与时间戳信息相同的第一索引记录,并提取第一索引记录中的I帧序列作为第一播放关键帧序列。
步骤403,向云服务器发送播放控制指令,播放控制指令中携带有第一述播放关键帧序列和播放时间长度信息,播放控制指令中也可以携带有在云服务器中存储的监控视屏文件的文件名。
步骤404,云服务器接收到第一播放控制指令,从第一播放控制指令中提取出第一播放关键帧序列、以及监控视频的文件名等。基于监控视频的文件名确定需要播放的监控视频文件,基于第一播放关键帧序列确定播放视频的第一关键帧位置。
云服务器从第一关键帧位置以实时流传输协议RTSP流的形式向客户端发送视频。云服务器可以找到播放视频的关键帧下载转发rtsp流,用户客户端在线播放成功。
步骤405,从播放控制指令中提取出播放时间长度信息,在云服务器向客户端发送视频数据时开始计时,当计时达到播放时间长度信息对应的时间长度时,则云服务器停止发送视频数据。
图5为根据本发明的用于视频播放的方法的再一个实施例的流程示意图,如图5所示:
步骤501,接收到客户端发送的播放请求,播放请求携带有时间戳信息。例如,接收到用户客户端携带时间戳信息的http请求。
步骤502,从播放请求中提取时间戳信息,基于时间戳信息获取第一索引文件。将时间戳信息与第一索引文件中的索引记录进行匹配,确定视频时间戳与时间戳信息相同的第一索引记录,并提取第一索引记录中的I帧序列作为第一播放关键帧序列。
步骤503,向云服务器发送播放控制指令,播放控制指令中携带有所第一述播放关键帧序列。
步骤504,云服务器接收到第一播放控制指令,从第一播放控制指令中提取出第一播放关键帧序列。基于第一播放关键帧序列确定播放视频的第一关键帧位置,并从第一关键帧位置以实时流传输协议RTSP流的形式向客户端发送视频。云服务器可以找到播放视频的关键帧下载转发rtsp流,用户客户端在线播放成功。
步骤505,接收到客户端向前拖动播放进度条发送的播放请求,其中,播放请求携带有新的时间戳信息。例如,用户客户端向前拖动播放进度条,即重新发送http请求(携带新的时间戳)。
步骤506,从播放请求中提取新的时间戳信息,基于新的时间戳信息获取第二索引文件。将新的时间戳信息与第二索引文件中的索引记录进行匹配,确定视频时间戳与新的时间戳信息相同的第二索引记录,并提取此第二索引记录中的I帧序列作为第二播放关键帧序列。第二索引文件与第一索引文件也可以相同。
步骤507,向云服务器发送播放控制指令,播放控制指令中携带有第二播放关键帧序列。
步骤508,云服务器接收到播放控制指令,从播放控制指令中提取出第二播放关键帧序列。基于第二播放关键帧序列确定播放视频的第二关键帧位置,停止发送当前的视频数据,并从第二关键帧位置以实时流传输协议RTSP流的形式向客户端发送视频。从找到的新关键帧重新下载转发rtsp流,用户客户端在线播放时拖动进度成功。
如图6至图9所示,本发明提供一种流媒体播放控制服务器。如图6所示,流媒体播放控制服务器60包括:索引文件生成模块61、索引文件检索模块62和控制指令发送模块63。索引文件生成模块61判断前端摄像机是否向云服务器上传了监控视频文件,如果是,则索引文件生成模块61从监控视频文件中抽取索引信息生成索引文件并存储。
当接收到客户端发送的播放请求时,索引文件检索模块62获取与播放请求相对应的索引文件。控制指令发送模块63基于索引文件向云服务器发送播放控制指令,以便于云服务器向客户端发送与播放请求相对应的视频数据。
如图7所示,索引文件生成模块61包括:索引位置确定单元611、索引信息提取单元612和索引文件下载单元613。在判断云存储服务器接收到新的视频监控文件时,索引位置确定单元611读取新的监控视频文件的文件头信息,获取视频索引信息在视频文件中的保存位置。索引信息提取单元612根据保存位置抽取视频索引信息并生成索引文件。索引文件下载单元613下载索引文件并将索引文件存储在索引库中。
如图8所示,索引文件检索模块61包括:播放信息提取单元621和索引文件确定单元622。播放信息提取单元621接收到客户端发送的播放请求,其中,播放请求携带有时间戳信息。索引文件确定单元622从播放请求中提取时间戳信息,基于时间戳信息获取第一索引文件。
如图9所示,控制指令发送模块63包括:关键帧位置确定单元631和指令发送单元632。关键帧位置确定单元631将时间戳信息与第一索引文件中的索引记录进行匹配,确定视频时间戳与时间戳信息相同的第一索引记录,并提取第一索引记录中的I帧序列作为第一播放关键帧序列。
指令发送单元632向云服务器发送播放控制指令,播放控制指令中携带有所第一述播放关键帧序列。云服务器接收到第一播放控制指令,从第一播放控制指令中提取出第一播放关键帧序列,基于第一播放关键帧序列确定播放视频的第一关键帧位置,并从第一关键帧位置以实时流传输协议RTSP流的形式向客户端发送视频。
播放信息提取单元621判断播放请求是否携带有播放时间长度信息,如果是,则播放信息提取单元621从播放请求中提取播放时间长度信息。指令发送单元632向云服务器发送第一播放控制指令,第一播放控制指令中携带第一播放关键帧序列和播放时间长度信息。云服务器接收到播放控制指令,从播放控制指令中提取出播放时间长度信息,在云服务器向客户端发送视频数据时开始计时,当计时达到播放时间长度信息对应的时间长度时,则云服务器停止发送视频数据。
播放信息提取单元621接收到客户端向前拖动播放进度条发送的播放请求,其中,播放请求携带有新的时间戳信息。索引文件确定单元622从播放请求中提取新的时间戳信息,基于新的时间戳信息获取第二索引文件。
关键帧位置确定单元631将新的时间戳信息与第二索引文件中的索引记录进行匹配,确定视频时间戳与新的时间戳信息相同的第二索引记录,并提取此第二索引记录中的I帧序列作为第二播放关键帧序列;指令发送单元632向云服务器发送播放控制指令,播放控制指令中携带有第二播放关键帧序列。
云服务器接收到播放控制指令,从播放控制指令中提取出第二播放关键帧序列,基于第二播放关键帧序列确定播放视频的第二关键帧位置,停止发送当前的视频数据,并从第二关键帧位置以实时流传输协议RTSP流的形式向客户端发送视频。
如图10所示,本发明提供一种视频播放系统,包括:客户端74、云服务器、如上的流媒体播放控制服务器73。例如,前端摄像头将监控视频文件发送到亚马逊云存储平台72上存储,即在云服务器上存储。
上述实施例中提供的用于视频播放的方法、系统及流媒体播放控制服务器,通过建立独立的针对于视频文件的索引文件,解决了播放器无法处理保存在尾部的索引而导致播放缓冲时间长的问题,也解决了存储在云上的监控录像无法在线播放、定时定长播放、播放时拖拽进度的问题,实现了云存储视频监控的多种流媒体播放方式,也可以为其他业务和应用提供基于云存储的视频录像流媒体能力开放,应用范围非常广。
可能以许多方式来实现本发明的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和系统。用于方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。
本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
Claims (15)
1.一种用于视频播放的方法,其特征在于,包括:
判断前端摄像机是否向云服务器上传了监控视频文件,如果是,则从所述监控视频文件中抽取索引信息生成索引文件并存储;
其中,在判断所述云存储服务器接收到新的视频监控文件时,读取所述新的监控视频文件的文件头信息,获取视频索引信息在所述视频文件中的保存位置;其中,所述前端摄像机周期性地生成监控视频文件并发送到所述云服务器;所述视频索引信息保存在所述监控视频文件的尾部;根据所述保存位置抽取所述视频索引信息并生成索引文件;所述索引文件中的索引记录包括:视频时间戳、I帧序列、P/B帧序列;
当接收到客户端发送的播放请求时,获取与所述播放请求相对应的所述索引文件,并基于所述索引文件向所述云服务器发送播放控制指令,以便于所述云服务器向所述客户端发送与所述播放请求相对应的视频数据;
其中,所述索引文件与所述视频监控文件相对应,所述索引文件中的一条索引记录都与所述视频监控文件的一帧视频数据相对应;接收到所述客户端发送的播放请求,所述播放请求携带有时间戳信息;从所述播放请求中提取所述时间戳信息,基于所述时间戳信息获取第一索引文件;将所述时间戳信息与所述第一索引文件中的索引记录进行匹配,确定所述视频时间戳与所述时间戳信息相同的第一索引记录,并提取第一索引记录中的I帧序列作为第一播放关键帧序列;向云服务器发送播放控制指令,所述播放控制指令中携带有所第一述播放关键帧序列。
2.如权利要求1所述的方法,其特征在于,还包括:
下载所述索引文件并将所述索引文件存储在索引库中。
3.如权利要求2所述的方法,其特征在于,所述云服务器向所述客户端发送与所述播放请求相对应的视频数据包括:
所述云服务器接收到所述第一播放控制指令,从所述第一播放控制指令中提取出所述第一播放关键帧序列;
基于所述第一播放关键帧序列确定播放视频的第一关键帧位置,并从第一关键帧位置以实时流传输协议RTSP流的形式向所述客户端发送视频。
4.如权利要求3所述的方法,其特征在于,包括:
判断所述播放请求是否携带有播放时间长度信息,如果是,则从所述播放请求中提取所述播放时间长度信息;
向云服务器发送所述第一播放控制指令,其中,所述第一播放控制指令中携带第一播放关键帧序列和所述播放时间长度信息。
5.如权利要求4所述的方法,其特征在于,包括:
所述云服务器接收到所述播放控制指令,从所述播放控制指令中提取出所述播放时间长度信息;
在所述云服务器向所述客户端发送视频数据时开始计时,当计时达到所述播放时间长度信息对应的时间长度时,则所述云服务器停止发送视频数据。
6.如权利要求3所述的方法,其特征在于,包括:
接收到所述客户端向前拖动播放进度条发送的播放请求,其中,所述播放请求携带有新的时间戳信息;
从所述播放请求中提取所述新的时间戳信息,基于所述新的时间戳信息获取第二索引文件;
将所述新的时间戳信息与所述第二索引文件中的索引记录进行匹配,确定所述视频时间戳与所述新的时间戳信息相同的第二索引记录,并提取此第二索引记录中的I帧序列作为第二播放关键帧序列;
向云服务器发送播放控制指令,所述播放控制指令中携带有所述第二播放关键帧序列。
7.如权利要求6所述的方法,其特征在于,包括:
所述云服务器接收到所述播放控制指令,从所述播放控制指令中提取出所述第二播放关键帧序列;
基于所述第二播放关键帧序列确定播放视频的第二关键帧位置,停止发送当前的视频数据,并从第二关键帧位置以实时流传输协议RTSP流的形式向所述客户端发送视频。
8.如权利要求1所述的方法,其特征在于:
所述播放请求为超文本传输协议HTTP请求,所述监控视频文件为H.264格式的视频文件。
9.一种流媒体播放控制服务器,其特征在于,包括:
索引文件生成模块,用于判断前端摄像机是否向云服务器上传了监控视频文件,如果是,则从所述监控视频文件中抽取索引信息生成索引文件并存储;
其中,所述索引文件生成模块,包括:
索引位置确定单元,用于在判断所述云存储服务器接收到新的视频监控文件时,读取所述新的监控视频文件的文件头信息,获取视频索引信息在所述视频文件中的保存位置;其中,所述前端摄像机周期性地生成监控视频文件并发送到所述云服务器,所述视频索引信息保存在所述监控视频文件的尾部;
索引信息提取单元,用于根据所述保存位置抽取所述视频索引信息并生成索引文件;所述索引文件中的索引记录包括:视频时间戳、I帧序列、P/B帧序列;
索引文件检索模块,用于当接收到客户端发送的播放请求时,获取与所述播放请求相对应的所述索引文件;
控制指令发送模块,用于基于所述索引文件向所述云服务器发送播放控制指令,以便于所述云服务器向所述客户端发送与所述播放请求相对应的视频数据;
其中,所述索引文件与所述视频监控文件相对应,所述索引文件中的一条索引记录都与所述视频监控文件的一帧视频数据相对应;
所述索引文件检索模块,包括:
播放信息提取单元,用于接收到所述客户端发送的播放请求,其中,所述播放请求携带有时间戳信息;
索引文件确定单元,用于从所述播放请求中提取所述时间戳信息,基于所述时间戳信息获取第一索引文件;
所述控制指令发送模块,包括:
关键帧位置确定单元,用于将所述时间戳信息与所述第一索引文件中的索引记录进行匹配,确定所述视频时间戳与所述时间戳信息相同的第一索引记录,并提取第一索引记录中的I帧序列作为第一播放关键帧序列;
指令发送单元,用于向云服务器发送播放控制指令,所述播放控制指令中携带有所第一述播放关键帧序列。
10.如权利要求9所述的流媒体播放控制服务器,其特征在于:
所述索引文件生成模块,包括:
索引文件下载单元,用于下载所述索引文件并将所述索引文件存储在索引库中。
11.如权利要求10所述的流媒体播放控制服务器,其特征在于:
所述云服务器接收到所述第一播放控制指令,从所述第一播放控制指令中提取出所述第一播放关键帧序列,基于所述第一播放关键帧序列确定播放视频的第一关键帧位置,并从第一关键帧位置以实时流传输协议RTSP流的形式向所述客户端发送视频。
12.如权利要求11所述的流媒体播放控制服务器,其特征在于:
所述播放信息提取单元,用于判断所述播放请求是否携带有播放时间长度信息,如果是,则从所述播放请求中提取所述播放时间长度信息;
所述指令发送单元,用于向云服务器发送所述第一播放控制指令,其中,所述第一播放控制指令中携带第一播放关键帧序列和所述播放时间长度信息;
其中,所述云服务器接收到所述播放控制指令,从所述播放控制指令中提取出所述播放时间长度信息,在所述云服务器向所述客户端发送视频数据时开始计时,当计时达到所述播放时间长度信息对应的时间长度时,则所述云服务器停止发送视频数据。
13.如权利要求12所述的流媒体播放控制服务器,其特征在于,包括:
所述播放信息提取单元,用于接收到所述客户端向前拖动播放进度条发送的播放请求,其中,所述播放请求携带有新的时间戳信息;
索引文件确定单元,用于从所述播放请求中提取所述新的时间戳信息,基于所述新的时间戳信息获取第二索引文件。
14.如权利要求13所述的流媒体播放控制服务器,其特征在于,包括:
所述关键帧位置确定单元,用于将所述新的时间戳信息与所述第二索引文件中的索引记录进行匹配,确定所述视频时间戳与所述新的时间戳信息相同的第二索引记录,并提取此第二索引记录中的I帧序列作为第二播放关键帧序列;
所述指令发送单元,用于向云服务器发送播放控制指令,所述播放控制指令中携带有所述第二播放关键帧序列;
其中,所述云服务器接收到所述播放控制指令,从所述播放控制指令中提取出所述第二播放关键帧序列,基于所述第二播放关键帧序列确定播放视频的第二关键帧位置,停止发送当前的视频数据,并从第二关键帧位置以实时流传输协议RTSP流的形式向所述客户端发送视频。
15.一种视频播放系统,其特征在于,包括:
客户端、云服务器、如权利要求9至14任一项所述的流媒体播放控制服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610177972.7A CN107231581B (zh) | 2016-03-25 | 2016-03-25 | 用于视频播放的方法、系统及流媒体播放控制服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610177972.7A CN107231581B (zh) | 2016-03-25 | 2016-03-25 | 用于视频播放的方法、系统及流媒体播放控制服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107231581A CN107231581A (zh) | 2017-10-03 |
CN107231581B true CN107231581B (zh) | 2020-04-28 |
Family
ID=59931818
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610177972.7A Active CN107231581B (zh) | 2016-03-25 | 2016-03-25 | 用于视频播放的方法、系统及流媒体播放控制服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107231581B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110784741A (zh) * | 2018-07-31 | 2020-02-11 | 中移(杭州)信息技术有限公司 | 媒体数据的时移响应方法及装置 |
CN109327680A (zh) * | 2018-09-21 | 2019-02-12 | 北京世纪东方国铁科技股份有限公司 | 多路视频数据并发存储及读取方法 |
CN109862423B (zh) * | 2019-01-03 | 2021-06-22 | 珠海亿智电子科技有限公司 | 一种视频seek方法、装置、终端及计算机可读存储介质 |
CN110262752B (zh) * | 2019-05-16 | 2020-08-11 | 罗普特科技集团股份有限公司 | 一种用于存储流媒体数据的方法、装置、存储介质 |
CN110719520A (zh) * | 2019-09-29 | 2020-01-21 | 天脉聚源(杭州)传媒科技有限公司 | 一种视频信息提取方法、系统及装置 |
CN110737669A (zh) * | 2019-10-18 | 2020-01-31 | 北京百度网讯科技有限公司 | 数据存储方法、装置、设备及存储介质 |
CN113709412B (zh) * | 2020-05-21 | 2023-05-19 | 中国电信股份有限公司 | 直播流处理方法、装置和系统、计算机可读存储介质 |
CN112423140A (zh) * | 2020-12-16 | 2021-02-26 | 富盛科技股份有限公司 | 视频播放方法、装置、电子设备和存储介质 |
CN113242437A (zh) * | 2021-04-01 | 2021-08-10 | 联通(广东)产业互联网有限公司 | 一种rtsp协议视频无插件播放方法、系统、装置及存储介质 |
CN113867632A (zh) * | 2021-09-23 | 2021-12-31 | 恒睿(重庆)人工智能技术研究院有限公司 | 云视频识别方法、设备及计算机存储介质 |
CN114025199A (zh) * | 2022-01-10 | 2022-02-08 | 北京美摄网络科技有限公司 | 一种直播视频剪辑方法、装置和系统 |
CN115250266B (zh) * | 2022-09-22 | 2022-12-16 | 中电信数字城市科技有限公司 | 视频处理方法及装置、流媒体设备及存储点播系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5703655A (en) * | 1995-03-24 | 1997-12-30 | U S West Technologies, Inc. | Video programming retrieval using extracted closed caption data which has been partitioned and stored to facilitate a search and retrieval process |
CN101232407A (zh) * | 2007-12-19 | 2008-07-30 | 深圳市同洲电子股份有限公司 | 用于实现网络监控中时移播放的方法、装置和视频服务器 |
CN101873481A (zh) * | 2010-03-01 | 2010-10-27 | 杭州海康威视数字技术股份有限公司 | 视频监控系统中录像回放的方法、系统及网络监控客户端 |
-
2016
- 2016-03-25 CN CN201610177972.7A patent/CN107231581B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107231581A (zh) | 2017-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107231581B (zh) | 用于视频播放的方法、系统及流媒体播放控制服务器 | |
US8914833B2 (en) | Video session shifting using a provider network | |
WO2018076952A1 (zh) | 一种视频文件的存储、定位播放方法及装置 | |
KR101750048B1 (ko) | 변속 재생 서비스 제공 방법 및 장치 | |
JP5588517B2 (ja) | データセグメントのオプションのブロードキャスト配信によるストリーミング | |
EP3713224B1 (en) | Live data processing method and system, and server | |
KR101758613B1 (ko) | 방송 컨텐츠 제공 방법 및 장치와 그 시스템 | |
US20090274437A1 (en) | Embedding data in media metadata tracks during playback | |
CN108965910B (zh) | 一种视频缓存方法及播放器 | |
TWI540890B (zh) | 用以處理動作視訊之方法及裝置 | |
CN103314579A (zh) | 用于在多媒体流传输系统中存储和播放内容的装置及方法 | |
CN105407307B (zh) | 多通道视频录像数据的处理方法、系统及装置 | |
US20200314509A1 (en) | Video Processing Method, Terminal and Server | |
WO2015180688A1 (zh) | 媒体处理方法及设备 | |
US20100191755A1 (en) | Method and apparatus for managing contents by using content tag | |
WO2011063737A1 (zh) | 一种实时流文件播放方法及其装置 | |
CN113242437A (zh) | 一种rtsp协议视频无插件播放方法、系统、装置及存储介质 | |
US10498787B2 (en) | Communication apparatus, communication method, and program | |
KR101841259B1 (ko) | 클라이언트의 동영상 시청 트래킹 방법 및 장치 | |
JP4719506B2 (ja) | 端末装置、コンテンツ再生方法、及びコンピュータプログラム | |
JP2009194767A (ja) | ビデオ評価装置及び方法、並びにビデオ提供装置 | |
US9420316B2 (en) | Control apparatus, reproduction control method, and recording medium | |
JP6642016B2 (ja) | 配信装置および情報機器 | |
JP2005323068A (ja) | ホームネットワークavサーバ及びホームネットワークavサーバプログラム | |
JP2016213709A (ja) | 動画再生システム、クライアント装置、サーバ装置及びプログラム |
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 |