CN107426603B - 一种视频播放方法及装置 - Google Patents

一种视频播放方法及装置 Download PDF

Info

Publication number
CN107426603B
CN107426603B CN201610347663.XA CN201610347663A CN107426603B CN 107426603 B CN107426603 B CN 107426603B CN 201610347663 A CN201610347663 A CN 201610347663A CN 107426603 B CN107426603 B CN 107426603B
Authority
CN
China
Prior art keywords
gop packet
gop
packet
frame
storage position
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
Application number
CN201610347663.XA
Other languages
English (en)
Other versions
CN107426603A (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.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology 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 Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN201610347663.XA priority Critical patent/CN107426603B/zh
Priority to PCT/CN2017/073341 priority patent/WO2017202060A1/zh
Publication of CN107426603A publication Critical patent/CN107426603A/zh
Application granted granted Critical
Publication of CN107426603B publication Critical patent/CN107426603B/zh
Active 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/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/432Content retrieval operation from a local storage medium, e.g. hard-disk
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/432Content retrieval operation from a local storage medium, e.g. hard-disk
    • H04N21/4325Content retrieval operation from a local storage medium, e.g. hard-disk by playing back content from the storage medium
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4333Processing operations in response to a pause request
    • 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/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • 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/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8547Content authoring involving timestamps for synchronizing content

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract

本发明实施例提供了一种视频播放方法及装置,该方法中,接收视频播放请求,根据所接收到的视频播放请求中的目标时间戳,在数据库中查找目标时间戳对应的GOP包的存储位置,其中,数据库中存储有每个GOP包的时间戳和每个GOP包在所述电子设备中的存储位置,根据所查找到的存储位置在电子设备中获取所述目标时间戳对应的GOP包,并将获取的GOP包发送给播放器播放。由于本发明在数据库中存储每个GOP包的时间戳和每个GOP包在电子设备中的存储位置,因此当接收到目标时间戳后根据该目标时间戳查找其对应的GOP包的存储位置,提高GOP包的查询效率,进而提高视频播放的效率,另外,在本发明中每个GOP包存储有完整的视频图像的信息,因此可保证后续视频播放的真实性。

Description

一种视频播放方法及装置
技术领域
本发明涉及视频播放技术领域,特别是涉及一种视频播放方法及装置。
背景技术
视频数据通常是以I帧、P帧和B帧的形式存储的,其中,I帧记录的是完整的视频图像,P帧和B帧记录的是相对于I帧的视频图像的图像变化。目前,对已经保存的视频数据进行视频播放的过程通常包括如下步骤:
1、接收视频播放请求;
2、根据视频播放请求中的时间戳,查找已经保存的视频数据中与该时间戳对应的I帧;
3、确定与该I帧相邻的下一个I帧;
4、获得视频数据中两个I帧之间的差值,确定两个I帧之间的P帧和/或B帧的图像并播放。
实际应用中,例如安防监控系统,在视频监控过程中保存了大量的视频数据。当用户需要查看感兴趣的事件片段时,可对电子设备中存储的视频数据进行回放和倒放,视频数据的回放和倒放不仅为事件的取证提供了影像数据,而且为用户反复查看感兴趣的事件片段以清晰掌握事件过程提供了方便。
其中,视频数据回放的过程与上述过程相同,播放查找到的视频数据时,从视频播放请求中的时间戳开始从早往晚正序播放;视频数据倒放的过程与上述过程相似,区别为步骤3为确定与该I帧相邻的上一个I帧,播放查找到的视频数据时,从视频播放请求中的时间戳开始从晚往早倒序播放。
在视频数据回放或倒放过程中,事件所在的视频片段可能只有一瞬间,但是始终需要通过时间戳查找每一帧图像的数据,才能找到对应的I帧,因此,该方法比较耗时,当视频数据较大时,效率较低,并且通过差值计算得到的视频图像会产生失真。
发明内容
本发明实施例的目的在于提供一种视频播放方法及装置,以实现快速定位视频数据,播放更真实视频图像的目的。具体技术方案如下:
一种视频播放方法,应用于电子设备,所述电子设备中存储有画面组GOP包形式的视频数据,所述方法包括:
接收视频播放请求;
根据所接收到的视频播放请求中的目标时间戳,在数据库中查找所述目标时间戳对应的GOP包的存储位置,其中,所述数据库中存储有每个GOP包的时间戳和每个GOP包在所述电子设备中的存储位置;
根据所查找到的存储位置在所述电子设备中获取所述目标时间戳对应的GOP包,并将获取的GOP包发送给播放器播放。
可选的,所述电子设备存储GOP包形式的视频数据的过程包括:
针对电子设备接收到的视频数据中的每个I帧,判断是否存在与其相邻的下一个I帧:
如果存在与所述I帧相邻的下一个I帧,将所述I帧和所述下一个I帧之间的视频帧以及所述I帧作为一个GOP包存储,记录所述GOP包在所述电子设备中的存储位置,将所述GOP包中的I帧对应的时间戳作为所述GOP包的时间戳,将所述GOP包的时间戳和所述GOP包在电子设备中的存储位置对应存储至所述数据库中;
如果不存在与所述I帧相邻的下一个I帧,将所述I帧以及所述视频数据中剩余的视频帧作为一个GOP包存储,记录所述GOP包在所述电子设备中的存储位置,将所述GOP包中的I帧对应的时间戳作为所述GOP包的时间戳,将所述GOP包的时间戳和所述GOP包在电子设备中的存储位置对应存储至所述数据库中。
可选的,当所述视频播放请求为视频回放请求时,所述将获取的GOP包发送给播放器播放包括:
将获取的GOP包发送给播放器,以使所述播放器对所述GOP包进行解析,并将解析出的视频帧正序播放。
可选的,所述方法还包括:
在所述GOP包播放过程中,如果未接收到用户的停止播放请求,则将所述目标时间戳的下一时间戳作为新的目标时间戳;
在所述数据库中查找所述新的目标时间戳对应的GOP包在所述电子设备中的存储位置,根据所查找到的存储位置获得相应的GOP包,并将获得的GOP包发送给播放器,以使所述播放器对接收到的GOP包进行解析,并将解析出的视频帧正序播放。
可选的,当所述视频播放请求为视频倒放请求时,所述将获取的GOP包发送给播放器播放包括:
将获取的GOP包发送给播放器,以使所述播放器对所述GOP包进行解析,并将解析出的视频帧倒序播放。
可选的,所述方法还包括:
在所述GOP包播放过程中,如果未接收到用户的停止播放请求,则将所述目标时间戳的上一时间戳作为新的目标时间戳;
在所述数据库中查找所述新的目标时间戳对应的GOP包在所述电子设备中的存储位置,根据所查找到的存储位置获得相应的GOP包,并将获得的GOP包发送给播放器,以使所述播放器对接收到的GOP包进行解析,并将解析出的视频帧倒序播放。
一种视频播放装置,应用于电子设备,所述电子设备中存储有画面组GOP包形式的视频数据,所述装置包括:
接收模块,用于接收视频播放请求;
查找模块,用于根据所接收到的视频播放请求中的目标时间戳,在数据库中查找所述目标时间戳对应的GOP包的存储位置,其中,所述数据库中存储有每个GOP包的时间戳和每个GOP包在所述电子设备中的存储位置;
第一发送模块,用于根据所查找到的存储位置在所述电子设备中获取所述目标时间戳对应的GOP包,并将获取的GOP包发送给播放器播放。
可选的,通过储存模块存储GOP包形式的视频数据,所述储存模块,具体用于:
针对电子设备接收到的视频数据中的每个I帧,判断是否存在与其相邻的下一个I帧:
如果存在与所述I帧相邻的下一个I帧,将所述I帧和所述下一个I帧之间的视频帧以及所述I帧作为一个GOP包存储,记录所述GOP包在所述电子设备中的存储位置,将所述GOP包中的I帧对应的时间戳作为所述GOP包的时间戳,将所述GOP包的时间戳和所述GOP包在电子设备中的存储位置对应存储至所述数据库中;
如果不存在与所述I帧相邻的下一个I帧,将所述I帧以及所述视频数据中剩余的视频帧作为一个GOP包存储,记录所述GOP包在所述电子设备中的存储位置,将所述GOP包中的I帧对应的时间戳作为所述GOP包的时间戳,将所述GOP包的时间戳和所述GOP包在电子设备中的存储位置对应存储至所述数据库中。
可选的,所述第一发送模块,具体用于:
当所述视频播放请求为视频回放请求时,根据所查找到的存储位置在所述电子设备中获取所述目标时间戳对应的GOP包,并将获取的GOP包发送给播放器,以使所述播放器对所述GOP包进行解析,并将解析出的视频帧正序播放。
可选的,所述装置还包括:
第一确定模块,用于在所述GOP包播放过程中,如果未接收到用户的停止播放请求,则将所述目标时间戳的下一时间戳作为新的目标时间戳;
第二发送模块,用于在所述数据库中查找所述新的目标时间戳对应的GOP包在所述电子设备中的存储位置,根据所查找到的存储位置获得相应的GOP包,并将获得的GOP包发送给播放器,以使所述播放器对接收到的GOP包进行解析,并将解析出的视频帧正序播放。
可选的,所述第一发送模块,具体用于:
当所述视频播放请求为视频倒放请求时,根据所查找到的存储位置在所述电子设备中获取所述目标时间戳对应的GOP包,并将获取的GOP包发送给播放器,以使所述播放器对所述GOP包进行解析,并将解析出的视频帧倒序播放。
可选的,所述装置还包括:
第二确定模块,用于在所述GOP包播放过程中,如果未接收到用户的停止播放请求,则将所述目标时间戳的上一时间戳作为新的目标时间戳;
第三发送模块,用于在所述数据库中查找所述新的目标时间戳对应的GOP包在所述电子设备中的存储位置,根据所查找到的存储位置获得相应的GOP包,并将获得的GOP包发送给播放器,以使所述播放器对接收到的GOP包进行解析,并将解析出的视频帧倒序播放。
本发明实施例提供的一种视频播放方法及装置,由于本发明实施例中在数据库中存储有每个GOP包的时间戳和每个GOP包在电子设备中的存储位置,因此当接收到目标时间戳后可以根据该目标时间戳查找其对应的GOP包的存储位置,从而提高了GOP包的查询效率,进而提高了视频播放的效率,另外,在本发明实施例中每个GOP包中存储有完整的视频图像的信息,因此可以保证后续视频播放的真实性。实施本发明的任一产品或方法不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种视频播放方法的流程示意图;
图2为本发明实施例提供的一种视频播放方法的另一流程示意图;
图3为本发明实施例提供的一种视频播放方法的另一流程示意图;
图4为本发明实施例提供的一种视频播放装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决现有技术问题,本发明实施例提供了一种视频播放方法及装置。
下面首先对本发明实施例所提供的一种视频播放方法进行介绍。
需要说明的是,本发明实施例所提供的一种视频播放方法应用于电子设备。该电子设备可以为带屏幕的摄像机、手机、平板电脑、台式机和笔记本电脑等,这都是合理的。
如图1所示,本发明实施例提供的一种视频播放方法,应用于电子设备,该电子设备中存储有画面组(Group of Pictures,GOP)包形式的视频数据,该方法包括:
S101:接收视频播放请求。
在实际应用中,用户可以根据自身的需求,点击播放器中时间进度条中的某个位置,以发出视频播放请求,电子设备接收用户发出的视频播放请求,以便进行后续步骤。
其中,视频播放请求中携带目标时间戳,该目标时间戳可以为用户点击的时间进度条中位置对应的时间点。
S102:根据所接收到的视频播放请求中的目标时间戳,在数据库中查找该目标时间戳对应的GOP包的存储位置。
其中,数据库中存储有每个GOP包的时间戳和每个GOP包在电子设备中的存储位置。
由于数据库中存储有每个GOP包的时间戳和每个GOP包在电子设备中的存储位置,因此,可以根据用户发出的视频播放请求中的目标时间戳,在数据库中查找与该目标时间戳相同的时间戳,当查找到时,确定该查找到的时间戳对应的GOP包在电子设备中的存储位置,将该存储位置确定为目标时间戳对应的GOP包的存储位置。由于无需遍历每帧图像的数据,所以,查找数据库速度较快,因此此过程减少了耗时。
S103:根据所查找到的存储位置在电子设备中获取该目标时间戳对应的GOP包,并将获取的GOP包发送给播放器播放。
根据查找到的存储位置,在电子设备中存储的视频数据中查找到该存储位置上的GOP包,并且将该GOP包发送到播放器。其中,播放器可以为该电子设备本地播放器,也可以为独立的播放设备中的播放器。
播放器在接收到该GOP包时,对该GOP包进行解析,将解析出的视频帧放入播放器的内存中,然后将内存中的视频帧绘制到播放器的播放窗口进行播放。其中,由于GOP包中的I帧、B帧和P帧都可以解码出完整的视频图像,无需通过差值计算解析图像,不会产生图像失真,所以播放器的播放窗口中播放的每幅视频图像都是完整且真实的图像。
与现有技术相比,由于本发明实施例中在数据库中存储有每个GOP包的时间戳和每个GOP包在电子设备中的存储位置,因此当接收到目标时间戳后可以根据该目标时间戳查找其对应的GOP包的存储位置,从而提高了GOP包的查询效率,进而提高了视频播放的效率,另外,在本发明实施例中每个GOP包中存储有完整的视频图像的信息,因此可以保证后续视频播放的真实性。
本实施例中,电子设备存储GOP包形式的视频数据的过程可以包括:
针对电子设备接收到的视频数据中的每个I帧,判断是否存在与其相邻的下一个I帧:
如果存在与该I帧相邻的下一个I帧,将该I帧和该下一个I帧之间的视频帧以及该I帧作为一个GOP包存储,记录该GOP包在该电子设备中的存储位置,将该GOP包中的I帧对应的时间戳作为该GOP包的时间戳,将该GOP包的时间戳和该GOP包在电子设备中的存储位置对应存储至该数据库中;
如果不存在与该I帧相邻的下一个I帧,将该I帧以及该视频数据中剩余的视频帧作为一个GOP包存储,记录该GOP包在该电子设备中的存储位置,将该GOP包中的I帧对应的时间戳作为该GOP包的时间戳,将该GOP包的时间戳和该GOP包在电子设备中的存储位置对应存储至该数据库中。
其中,一个GOP包就是一组连续的画面。GOP包为I帧、P帧和B帧的序列集合,并且序列集合中只有一个I帧,例如:一个GOP包可以为I帧P帧B帧P帧、I帧P帧P帧B帧P帧、I帧P帧B帧P帧或I帧B帧P帧P帧。当确定一个GOP包后,存储该GOP包并记录该GOP包在电子设备中的存储位置,然后再继续确定下一个GOP包,将确定的GOP包一个一个分别存储到电子设备中。
由于一个GOP包的时间长度一般为1S,可以包括20-30帧,时间较短,因此,一个GOP包对应一个时间戳。本实施例中在确定一个GOP包后,就将该GOP包中的I帧对应的时间戳作为该GOP包的时间戳,将该GOP包的时间戳和该GOP包在电子设备中的存储位置对应存储至数据库中。
由于每个GOP包和其对应的原始视频数据的数据长度和数据值是一致的,且各GOP包之间没有间隙,因此,在将视频数据存储为GOP包形式时不会出现视频数据丢失的现象。
将视频数据以GOP包的形式存储,具有如下优势:
一、播放器从任意时间点得到的视频数据都是一个完整的GOP包。
二、由于每个GOP包都以I帧开头,因此播放器解码时不会产生解码延时或解码失败的情况。
三、当电子设备对视频流这种源源不断的视频数据进行播放时,不会产生单个视频文件过大的问题。
另外,在本发明的另一种实现方式中,电子设备存储GOP包形式的视频数据的过程可以包括:
当电子设备接收的视频数据达到预设长度时,对接收的视频数据执行如下步骤:
确定该视频数据中最早的时间戳对应的参考I帧,确定与该参考I帧相邻的下一个目标I帧,将该参考I帧及该参考I帧与该目标I帧之间的视频帧确定为一个GOP包,存储该GOP包并记录该GOP包在电子设备中的存储位置,将该GOP包中的I帧对应的时间戳作为该GOP包的时间戳,将该GOP包的时间戳和该GOP包在电子设备中的存储位置对应存储至数据库中;
将该目标I帧确定为参考I帧,判断是否存在与该参考I帧相邻的下一个目标I帧,如果是,返回执行将该参考I帧及该参考I帧与该目标I帧之间的视频帧确定为一个GOP包的步骤,如果否,将该参考I帧及该视频数据中剩余的视频帧确定为一个GOP包,存储该GOP包并记录该GOP包在电子设备中的存储位置,将该GOP包中的I帧对应的时间戳作为该GOP包的时间戳,将该GOP包的时间戳和该GOP包在电子设备中的存储位置对应存储至数据库中。
下面通过一个具体实施例对上述过程进行详细描述:
例如:可以设置预设视频数据的长度为0.5MB。当电子设备接收的视频数据达到0.5MB时,其中,该0.5MB视频数据包括I1 P B PPP B P PBPBPPP B P BP B I2 P B PPP B PP B P B P PP B P BP BI3 P B P,存储的过程包括:
首先,确定该0.5MB视频数据中最早的时间戳对应的参考I帧即I1,确定与I1相邻的下一个目标I帧I2,将I1及I1与I2之间的视频帧确定为一个GOP包,即将I1 P B PPP B P P BP B P PP B P BP B确定为一个GOP包,存储该GOP包并记录该GOP包在电子设备中的存储位置,将该GOP包中的I1帧对应的时间戳作为该GOP包的时间戳,将该GOP包的时间戳和该GOP包在电子设备中的存储位置对应存储至数据库中;
然后,将I2确定为参考I帧,判断是否存在与I2相邻的下一个目标I帧。由于存在I3帧,将I2及I2与I3之间的视频帧确定为一个GOP包,即将I2P B PPP B P P B P B P PP B PBP B确定为一个GOP包,存储该GOP包并记录该GOP包在电子设备中的存储位置,将该GOP包中的I2帧对应的时间戳作为该GOP包的时间戳,将该GOP包的时间戳和该GOP包在电子设备中的存储位置对应存储至数据库中;
最后,将I3确定为参考I帧,判断是否存在与I3相邻的下一个目标I帧,由于未存在下一个目标I帧,将及I3及视频数据中剩余的视频帧确定为一个GOP包即将I3 P B P确定为一个GOP包,存储该GOP包并记录该GOP包在电子设备中的存储位置,将该GOP包中的I3帧对应的时间戳作为该GOP包的时间戳,将该GOP包的时间戳和该GOP包在电子设备中的存储位置对应存储至数据库中;
由此,将0.5MB的视频数据存储为3个GOP包。
在本发明实施例中,视频播放请求可以为视频回放请求也可以为视频倒放请求。
当视频播放请求为视频回放请求时,将获取的GOP包发送给播放器播放可以包括:
将获取的GOP包发送给播放器,以使该播放器对该GOP包进行解析,将解析出的视频帧正序播放。
具体的,应用本发明实施例进行视频回放的过程参见图2。
如图2所示,本发明提供的一种视频播放方法的另一流程,包括:
S201:接收视频回放请求。
接收用户发出的视频回放请求,以便进行后续步骤。
S202:根据所接收到的视频播放请求中的目标时间戳,在数据库中查找该目标时间戳对应的GOP包的存储位置。
其中,该数据库中存储有每个GOP包的时间戳和每个GOP包在电子设备中的存储位置。
其中,步骤S202与图1所示步骤S102相同,在此不再赘述。
S203:根据所查找到的存储位置在电子设备中获取该目标时间戳对应的GOP包,并将获取的GOP包发送给播放器以使播放器对该GOP包进行解析,将解析出的视频帧正序播放。
根据查找到的存储位置,在电子设备中查找到该存储位置上的GOP包,并且将该GOP包发送到播放器,播放器解析接收到的该GOP包,将解析出的视频帧按照视频录制时间从早往晚绘制到播放窗口进行播放。
例如:播放器从GOP包中解析出了25个视频帧,按照时间早晚依次编号为1到25,则回放是将25个视频帧按照从1到25的顺序绘制到播放窗口进行播放。
S204:在该GOP包播放过程中,如果未接收到用户的停止播放请求,则将目标时间戳的下一时间戳作为新的目标时间戳。
在未接收到用户的停止播放请求时,由于所接收到的是用户发出的视频回放请求,所以自动将该目标时间戳的下一时间戳作为新的目标时间戳,以进行后续的步骤。
S205:在数据库中查找该新的目标时间戳对应的GOP包在电子设备中的存储位置,根据所查找到的存储位置获得相应的GOP包,并将获得的GOP包发送给播放器,以使播放器对接收到的GOP包进行解析,并将解析出的视频帧正序播放。
由于数据库中存储有每个GOP包的时间戳和每个GOP包在电子设备中的存储位置,因此,可以根据新的目标时间戳,在数据库中查找与该新的目标时间戳相同的时间戳,当查找到时,确定该查找到的时间戳对应的GOP包的存储位置,将该存储位置确定为新的目标时间戳对应的GOP包的存储位置。根据查找到的存储位置,在电子设备中获得该存储位置上的GOP包,并且将获得的GOP包发送到播放器。播放器解析接收到的该GOP包,将解析出的视频帧按照视频录制时间从早往晚绘制到播放窗口进行播放。
视频回放即播放器正序播放完一个GOP包后,再正序播放已播完的GOP包的下一个GOP包。
由此,通过将目标时间戳的下一时间戳作为目标时间戳的方式,查找到下一时间戳对应的GOP包并按照从早往晚的顺序,将下一时间戳对应的GOP包的视频帧绘制到播放窗口进行播放完成了视频回放。
下面以电子设备为电脑,播放器为电脑的本地播放器为例,通过一具体实施例对图2所示方法进行详细说明。
例如:接收视频回放请求,其中,目标时间戳为B时间戳,在视频数据中,C时间戳为B时间戳的下一时间戳,每个GOP包中可解析出25个视频帧,按照时间早晚依次编号为1到25,在接收视频回放请求后,在数据库中查找到B时间戳对应的GOP包的存储位置,根据所查找到的存储位置在电子设备中获取B时间戳对应的GOP包,并将获取的GOP包发送给本地播放器。本地播放器解析出B时间戳对应的GOP包中的25个视频帧,将该25个视频帧按照从1到25的顺序绘制到本地播放器的播放窗口进行播放,完成B时间戳对应的GOP包的播放。当该GOP包播放过程中,如果未接收到用户的停止播放请求,则将C时间戳作为新的目标时间戳,在数据库中查找到C时间戳对应的GOP包在电子设备中的存储位置,根据所查找到的存储位置获得C时间戳对应的GOP包,并将获得的GOP包发送给本地播放器。本地播放器解析出C时间戳对应的GOP包中的25个视频帧,将该25个视频帧按照从1到25的顺序绘制到本地播放器的播放窗口进行播放,完成C时间戳对应的GOP包的播放。
类似的,当视频播放请求为视频倒放请求时,将获取的GOP包发送给播放器播放可以包括:
将获取的GOP包发送给播放器以使该播放器对该GOP包进行解析,将解析出的视频帧倒序播放。
具体的,应用本发明实施例进行视频倒放的过程参见图3。
如图3所示,本发明提供的一种视频播放方法的另一流程,包括:
S301:接收视频倒放请求。
接收用户发出的视频倒放请求,以便进行后续步骤。
S302:根据所接收到的视频播放请求中的目标时间戳,在数据库中查找该目标时间戳对应的GOP包的存储位置。
其中,该数据库中存储有每个GOP包的时间戳和每个GOP包在电子设备中的存储位置。
其中,步骤S302与图1所示步骤S102相同,在此不再赘述。
S303:根据所查找到的存储位置在电子设备中获取该目标时间戳对应的GOP包,并将获取的GOP包发送给播放器以使播放器对该GOP包进行解析,将解析出的视频帧倒序播放。
根据查找到的存储位置,在电子设备中查找到该存储位置上的GOP包,并且将该GOP包发送到播放器,播放器解析接收到的该GOP包,将解析出的视频帧按照视频录制时间从晚往早绘制到播放窗口进行播放。
例如:播放器从GOP包中解析出了25个视频帧,按照时间早晚依次编号为1到25,则回放是将25个视频帧按照从25到1的顺序绘制到播放窗口进行播放。
S304:在该GOP包播放过程中,如果未接收到用户的停止播放请求,则将该目标时间戳的上一时间戳作为新的目标时间戳。
在未接收到用户的停止播放请求时,由于所接收到的是用户发出的视频倒放请求,所以自动将该目标时间戳的上一时间戳作为目标时间戳,以进行后续的步骤。
S305:在数据库中查找该新的目标时间戳对应的GOP包在电子设备中的存储位置,根据所查找到的存储位置获得相应的GOP包,并将获得的GOP包发送给播放器,以使播放器对接收到的GOP包进行解析,并将解析出的视频帧倒序播放。
由于数据库中存储有每个GOP包的时间戳和每个GOP包在电子设备中的存储位置,因此,可以根据新的目标时间戳,在数据库中查找与该新的目标时间戳相同的时间戳,当查找到时,确定该查找到的时间戳对应的GOP包的存储位置,将该存储位置确定为新的目标时间戳对应的GOP包的存储位置。根据查找到的存储位置,在电子设备中获得该存储位置上的GOP包,并且将该GOP包发送到播放器。播放器解析接收到的该GOP包,将解析出的视频帧按照视频录制时间从晚往早绘制到播放窗口进行播放。
视频倒放即播放器倒序播放完一个GOP包后,再倒序播放已播完的GOP包的上一个GOP包。
由此,通过将目标时间戳的上一时间戳作为目标时间戳的方式,查找到上一时间戳对应的GOP包并按照从晚往早的顺序,将上一时间戳对应的GOP包的视频帧绘制到播放窗口进行播放完成了视频倒放。
下面以电子设备为电脑,播放器为电脑的本地播放器为例,通过一具体实施例对图3所示方法进行详细说明。
例如:接收视频倒放请求,其中,目标时间戳为B时间戳,在视频数据中,A时间戳为B时间戳的上一时间戳,每个GOP包中可解析出25个视频帧,按照时间早晚依次编号为1到25,在接收视频回放请求后,在数据库中查找到B时间戳对应的GOP包的存储位置,根据所查找到的存储位置在电子设备中获取B时间戳对应的GOP包,并将获取的GOP包发送给本地播放器。本地播放器解析出B时间戳对应的GOP包中的25个视频帧,将该25个视频帧按照从25到1的顺序绘制到本地播放器的播放窗口进行播放,完成B时间戳对应的GOP包的播放。当该GOP包播放过程中,如果未接收到用户的停止播放请求,则将A时间戳作为新的目标时间戳,在数据库中查找到A时间戳对应的GOP包在电子设备中的存储位置,根据所查找到的存储位置获得A时间戳对应的GOP包,并将获得的GOP包发送给本地播放器。本地播放器解析出A时间戳对应的GOP包中的25个视频帧,将该25个视频帧按照25到1的顺序绘制到本地播放器的播放窗口进行播放,完成A时间戳对应的GOP包的播放。
相对于上述方法实施例,本发明实施例还提供了一种视频播放装置,应用于电子设备,该电子设备中存储有画面组GOP包形式的视频数据,如图4所示,该装置可以包括:
接收模块401,用于接收视频播放请求;
查找模块402,用于根据所接收到的视频播放请求中的目标时间戳,在数据库中查找该目标时间戳对应的GOP包的存储位置,其中,该数据库中存储有每个GOP包的时间戳和每个GOP包在该电子设备中的存储位置;
第一发送模块403,用于根据所查找到的存储位置在该电子设备中获取该目标时间戳对应的GOP包,并将获取的GOP包发送给播放器播放。
与现有技术相比,由于本发明实施例中在数据库中存储有每个GOP包的时间戳和每个GOP包在电子设备中的存储位置,因此当接收到目标时间戳后可以根据该目标时间戳查找其对应的GOP包的存储位置,从而提高了GOP包的查询效率,进而提高了视频播放的效率,另外,在本发明实施例中每个GOP包中存储有完整的视频图像的信息,因此可以保证后续视频播放的真实性。
具体的,通过储存模块存储GOP包形式的视频数据,该储存模块,可以具体用于:
针对电子设备接收到的视频数据中的每个I帧,判断是否存在与其相邻的下一个I帧:
如果存在与该I帧相邻的下一个I帧,将该I帧和该下一个I帧之间的视频帧以及该I帧作为一个GOP包存储,记录该GOP包在该电子设备中的存储位置,将该GOP包中的I帧对应的时间戳作为该GOP包的时间戳,将该GOP包的时间戳和该GOP包在电子设备中的存储位置对应存储至该数据库中;
如果不存在与该I帧相邻的下一个I帧,将该I帧以及该视频数据中剩余的视频帧作为一个GOP包存储,记录该GOP包在该电子设备中的存储位置,将该GOP包中的I帧对应的时间戳作为该GOP包的时间戳,将该GOP包的时间戳和该GOP包在电子设备中的存储位置对应存储至该数据库中。
具体的,该第一发送模块403,可以具体用于:
当该视频播放请求为视频回放请求时,根据所查找到的存储位置在该电子设备中获取该目标时间戳对应的GOP包,并将获取的GOP包发送给播放器,以使该播放器对该GOP包进行解析,并将解析出的视频帧正序播放。
具体的,该装置还可以包括:
第一确定模块,用于在该GOP包播放过程中,如果未接收到用户的停止播放请求,则将该目标时间戳的下一时间戳作为新的目标时间戳;
第二发送模块,用于在该数据库中查找该新的目标时间戳对应的GOP包在该电子设备中的存储位置,根据所查找到的存储位置获得相应的GOP包,并将获得的GOP包发送给播放器,以使该播放器对接收到的GOP包进行解析,并将解析出的视频帧正序播放。
具体的,该第一发送模块403,可以具体用于:
当该视频播放请求为视频倒放请求时,根据所查找到的存储位置在该电子设备中获取该目标时间戳对应的GOP包,并将获取的GOP包发送给播放器,以使该播放器对该GOP包进行解析,并将解析出的视频帧倒序播放。
具体的,该装置还可以包括:
第二确定模块,用于在该GOP包播放过程中,如果未接收到用户的停止播放请求,则将该目标时间戳的上一时间戳作为新的目标时间戳;
第三发送模块,用于在该数据库中查找该新的目标时间戳对应的GOP包在该电子设备中的存储位置,根据所查找到的存储位置获得相应的GOP包,并将获得的GOP包发送给播放器,以使该播放器对接收到的GOP包进行解析,并将解析出的视频帧倒序播放。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (10)

1.一种视频播放方法,其特征在于,应用于电子设备,所述电子设备中存储有画面组GOP包形式的视频数据,所述方法包括:
接收视频播放请求;
根据所接收到的视频播放请求中的目标时间戳,在数据库中查找所述目标时间戳对应的GOP包的存储位置,其中,所述数据库中存储有每个GOP包的时间戳和每个GOP包在所述电子设备中的存储位置;
根据所查找到的存储位置在所述电子设备中获取所述目标时间戳对应的GOP包,并将获取的GOP包发送给播放器播放;
所述电子设备存储GOP包形式的视频数据的过程包括:
针对所述电子设备接收到的视频数据中的每个I帧,判断是否存在与其相邻的下一个I帧:
如果存在与所述I帧相邻的下一个I帧,将所述I帧和所述下一个I帧之间的视频帧以及所述I帧作为一个GOP包存储,记录所述GOP包在所述电子设备中的存储位置,将所述GOP包中的I帧对应的时间戳作为所述GOP包的时间戳,将所述GOP包的时间戳和所述GOP包在电子设备中的存储位置对应存储至所述数据库中;
如果不存在与所述I帧相邻的下一个I帧,将所述I帧以及所述视频数据中剩余的视频帧作为一个GOP包存储,记录所述GOP包在所述电子设备中的存储位置,将所述GOP包中的I帧对应的时间戳作为所述GOP包的时间戳,将所述GOP包的时间戳和所述GOP包在电子设备中的存储位置对应存储至所述数据库中。
2.根据权利要求1所述的方法,其特征在于,当所述视频播放请求为视频回放请求时,所述将获取的GOP包发送给播放器播放包括:
将获取的GOP包发送给播放器,以使所述播放器对所述GOP包进行解析,并将解析出的视频帧正序播放。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在所述GOP包播放过程中,如果未接收到用户的停止播放请求,则将所述目标时间戳的下一时间戳作为新的目标时间戳;
在所述数据库中查找所述新的目标时间戳对应的GOP包在所述电子设备中的存储位置,根据所查找到的存储位置获得相应的GOP包,并将获得的GOP包发送给播放器,以使所述播放器对接收到的GOP包进行解析,并将解析出的视频帧正序播放。
4.根据权利要求1所述的方法,其特征在于,当所述视频播放请求为视频倒放请求时,所述将获取的GOP包发送给播放器播放包括:
将获取的GOP包发送给播放器,以使所述播放器对所述GOP包进行解析,并将解析出的视频帧倒序播放。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在所述GOP包播放过程中,如果未接收到用户的停止播放请求,则将所述目标时间戳的上一时间戳作为新的目标时间戳;
在所述数据库中查找所述新的目标时间戳对应的GOP包在所述电子设备中的存储位置,根据所查找到的存储位置获得相应的GOP包,并将获得的GOP包发送给播放器,以使所述播放器对接收到的GOP包进行解析,并将解析出的视频帧倒序播放。
6.一种视频播放装置,其特征在于,应用于电子设备,所述电子设备中存储有画面组GOP包形式的视频数据,所述装置包括:
接收模块,用于接收视频播放请求;
查找模块,用于根据所接收到的视频播放请求中的目标时间戳,在数据库中查找所述目标时间戳对应的GOP包的存储位置,其中,所述数据库中存储有每个GOP包的时间戳和每个GOP包在所述电子设备中的存储位置;
第一发送模块,用于根据所查找到的存储位置在所述电子设备中获取所述目标时间戳对应的GOP包,并将获取的GOP包发送给播放器播放;通过储存模块存储GOP包形式的视频数据,所述储存模块,具体用于:
针对所述电子设备接收到的视频数据中的每个I帧,判断是否存在与其相邻的下一个I帧:
如果存在与所述I帧相邻的下一个I帧,将所述I帧和所述下一个I帧之间的视频帧以及所述I帧作为一个GOP包存储,记录所述GOP包在所述电子设备中的存储位置,将所述GOP包中的I帧对应的时间戳作为所述GOP包的时间戳,将所述GOP包的时间戳和所述GOP包在电子设备中的存储位置对应存储至所述数据库中;
如果不存在与所述I帧相邻的下一个I帧,将所述I帧以及所述视频数据中剩余的视频帧作为一个GOP包存储,记录所述GOP包在所述电子设备中的存储位置,将所述GOP包中的I帧对应的时间戳作为所述GOP包的时间戳,将所述GOP包的时间戳和所述GOP包在电子设备中的存储位置对应存储至所述数据库中。
7.根据权利要求6所述的装置,其特征在于,所述第一发送模块,具体用于:
当所述视频播放请求为视频回放请求时,根据所查找到的存储位置在所述电子设备中获取所述目标时间戳对应的GOP包,并将获取的GOP包发送给播放器,以使所述播放器对所述GOP包进行解析,并将解析出的视频帧正序播放。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第一确定模块,用于在所述GOP包播放过程中,如果未接收到用户的停止播放请求,则将所述目标时间戳的下一时间戳作为新的目标时间戳;
第二发送模块,用于在所述数据库中查找所述新的目标时间戳对应的GOP包在所述电子设备中的存储位置,根据所查找到的存储位置获得相应的GOP包,并将获得的GOP包发送给播放器,以使所述播放器对接收到的GOP包进行解析,并将解析出的视频帧正序播放。
9.根据权利要求6所述的装置,其特征在于,所述第一发送模块,具体用于:
当所述视频播放请求为视频倒放请求时,根据所查找到的存储位置在所述电子设备中获取所述目标时间戳对应的GOP包,并将获取的GOP包发送给播放器,以使所述播放器对所述GOP包进行解析,并将解析出的视频帧倒序播放。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第二确定模块,用于在所述GOP包播放过程中,如果未接收到用户的停止播放请求,则将所述目标时间戳的上一时间戳作为新的目标时间戳;
第三发送模块,用于在所述数据库中查找所述新的目标时间戳对应的GOP包在所述电子设备中的存储位置,根据所查找到的存储位置获得相应的GOP包,并将获得的GOP包发送给播放器,以使所述播放器对接收到的GOP包进行解析,并将解析出的视频帧倒序播放。
CN201610347663.XA 2016-05-24 2016-05-24 一种视频播放方法及装置 Active CN107426603B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201610347663.XA CN107426603B (zh) 2016-05-24 2016-05-24 一种视频播放方法及装置
PCT/CN2017/073341 WO2017202060A1 (zh) 2016-05-24 2017-02-13 一种视频播放方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610347663.XA CN107426603B (zh) 2016-05-24 2016-05-24 一种视频播放方法及装置

Publications (2)

Publication Number Publication Date
CN107426603A CN107426603A (zh) 2017-12-01
CN107426603B true CN107426603B (zh) 2020-01-17

Family

ID=60411057

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610347663.XA Active CN107426603B (zh) 2016-05-24 2016-05-24 一种视频播放方法及装置

Country Status (2)

Country Link
CN (1) CN107426603B (zh)
WO (1) WO2017202060A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108184161B (zh) * 2017-12-26 2021-01-01 努比亚技术有限公司 一种视频播放方法、移动终端及计算机可读存储介质
CN111083573A (zh) * 2018-10-22 2020-04-28 杭州海康威视系统技术有限公司 一种视频文件处理方法、装置和存储节点
CN111641824B (zh) * 2019-03-01 2022-08-05 杭州海康威视数字技术股份有限公司 视频倒放方法及装置
CN112491937A (zh) * 2019-09-11 2021-03-12 北京陌陌信息技术有限公司 数据传输方法、装置、设备及存储介质
CN111324825B (zh) * 2020-01-20 2024-04-30 北京百度网讯科技有限公司 查找目标人员的方法及装置
CN111526404B (zh) * 2020-04-27 2022-07-08 杭州海康威视系统技术有限公司 单帧播放方法、视频播放装置、监控设备以及存储介质
CN112230871B (zh) * 2020-09-25 2023-10-27 北京博睿维讯科技有限公司 一种多机多源共屏信息溯源方法、系统、智能终端以及存储介质
CN112230872B (zh) * 2020-09-25 2023-08-15 北京博睿维讯科技有限公司 一种多机多源共屏信息云端存储管理方法、系统、智能终端以及存储介质
CN112788366B (zh) * 2020-12-28 2023-03-24 杭州海康威视系统技术有限公司 视频处理的方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101420577A (zh) * 2008-11-07 2009-04-29 武汉烽火网络有限责任公司 一种多媒体数据的存储方法及精确定位回放位置的方法
CN101854508A (zh) * 2009-03-30 2010-10-06 三星电子株式会社 反向回放编码的多媒体内容的方法和装置
CN101895736A (zh) * 2010-07-07 2010-11-24 杭州华三通信技术有限公司 媒体流数据处理方法及其装置
CN102196249A (zh) * 2011-05-17 2011-09-21 杭州华三通信技术有限公司 监控数据回放方法及编码器、视频管理服务器
CN103780877A (zh) * 2013-12-26 2014-05-07 深圳市华仁达技术有限公司 基于h264编码的海量视频数据的存储及检索方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7206501B2 (en) * 2001-10-12 2007-04-17 The Directv Group, Inc. Method and apparatus for identifying MPEG picture coding types
US7720350B2 (en) * 2004-11-30 2010-05-18 General Instrument Corporation Methods and systems for controlling trick mode play speeds

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101420577A (zh) * 2008-11-07 2009-04-29 武汉烽火网络有限责任公司 一种多媒体数据的存储方法及精确定位回放位置的方法
CN101854508A (zh) * 2009-03-30 2010-10-06 三星电子株式会社 反向回放编码的多媒体内容的方法和装置
CN101895736A (zh) * 2010-07-07 2010-11-24 杭州华三通信技术有限公司 媒体流数据处理方法及其装置
CN102196249A (zh) * 2011-05-17 2011-09-21 杭州华三通信技术有限公司 监控数据回放方法及编码器、视频管理服务器
CN103780877A (zh) * 2013-12-26 2014-05-07 深圳市华仁达技术有限公司 基于h264编码的海量视频数据的存储及检索方法

Also Published As

Publication number Publication date
WO2017202060A1 (zh) 2017-11-30
CN107426603A (zh) 2017-12-01

Similar Documents

Publication Publication Date Title
CN107426603B (zh) 一种视频播放方法及装置
US11625920B2 (en) Method for labeling performance segment, video playing method, apparatus and system
US11079923B1 (en) User interface for a video capture device
US9961398B2 (en) Method and device for switching video streams
WO2018076998A1 (zh) 一种回放视频文件的生成方法和装置
US20150341528A1 (en) Method and server system for synchronization of audio/video media files
WO2023011094A1 (zh) 视频编辑方法、装置、电子设备以及存储介质
CN111436004B (zh) 视频播放方法、装置和设备、计算机可读存储介质
US10129592B2 (en) Audience measurement and feedback system
US20100247066A1 (en) Method and apparatus for reverse playback of encoded multimedia content
CN109168020A (zh) 基于直播的视频处理方法、装置、计算设备和存储介质
CN102467940A (zh) 一种无索引视频文件快进快退方法、装置以及播放系统
CN106331871B (zh) 一种实现视频流快进或快退的方法及装置
KR102107678B1 (ko) 미디어 정보 제공 서버, 미디어 콘텐츠와 관련된 미디어 정보를 검색하는 장치, 방법 및 컴퓨터 판독 가능한 기록 매체
WO2019149066A1 (zh) 视频播放方法、终端设备及存储介质
US20140025782A1 (en) System and method for playing and transmitting network video
US8745650B1 (en) Content segment selection based on time-shifted content viewing
CN109101964B (zh) 确定多媒体文件中首尾区域的方法、设备及存储介质
CN102932640B (zh) 一种视频流帧率的控制方法
US10063735B2 (en) Image file management method, image capturing device, image storage device, and computer readable medium thereof
EP3678368B1 (en) Video streaming batch
WO2022120828A1 (zh) 视频抽帧方法、设备及存储介质
CN115665476B (zh) 一种录像分析方法、装置、电子设备及存储介质
CN114257844B (zh) 一种多视频同步播放方法、装置、设备及可读存储介质
US20230319346A1 (en) Systems and methods for automatically generating content items from identified events

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant