CN116962815A - 一种浏览器原生播放mkv视频的方法 - Google Patents
一种浏览器原生播放mkv视频的方法 Download PDFInfo
- Publication number
- CN116962815A CN116962815A CN202311211800.3A CN202311211800A CN116962815A CN 116962815 A CN116962815 A CN 116962815A CN 202311211800 A CN202311211800 A CN 202311211800A CN 116962815 A CN116962815 A CN 116962815A
- Authority
- CN
- China
- Prior art keywords
- video
- mkv
- track data
- data
- audio
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 16
- 238000004806 packaging method and process Methods 0.000 claims abstract description 9
- AWSBQWZZLBPUQH-UHFFFAOYSA-N mdat Chemical compound C1=C2CC(N)CCC2=CC2=C1OCO2 AWSBQWZZLBPUQH-UHFFFAOYSA-N 0.000 claims description 20
- 239000012634 fragment Substances 0.000 claims description 12
- 238000005538 encapsulation Methods 0.000 claims description 7
- 238000012986 modification Methods 0.000 claims description 6
- 230000004048 modification Effects 0.000 claims description 6
- 238000012544 monitoring process Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 3
- 206010000060 Abdominal distension Diseases 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 208000024330 bloating Diseases 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
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/43—Processing 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/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/44008—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream
-
- 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/43—Processing 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/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/4402—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
- H04N21/440218—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4
-
- 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/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4782—Web browsing, e.g. WebTV
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明公开了一种浏览器原生播放MKV视频的方法,属于视频播放技术领域。所述方法包括:创建video播放器和MediaSource对象,并将MediaSource对象设置为Video播放器的播放地址;将MKV视频以二进制文件的形式加载到浏览器的内存中;解析所述MKV视频得到视频轨数据、音频轨数据和字幕轨数据;将视频轨数据和音频轨数据封装为fmp4格式;将封装为fmp4格式的视频轨数据和音频轨数据放入MediaSource对象;在video播放器上层创建字幕显示层,将字幕轨数据传入字幕显示层;播放MKV视频,并在字幕显示层上显示对应的字幕。本发明实现了无插件化播放MKV视频。
Description
技术领域
本发明属于视频播放技术领域,特别是涉及一种浏览器原生播放MKV视频的方法。
背景技术
目前人们观看视频的主要方式已经从下载观看变为在线观看,在线观看的方式一般有通过视频软件观看和通过网页观看两种方式,然而现有浏览器不支持mkv格式视频的直接播放。
发明内容
本发明的目的在于克服现有技术的不足,提供一种浏览器原生播放MKV视频的方法。
本发明的目的是通过以下技术方案来实现的:一种浏览器原生播放MKV视频的方法,包括:
创建video播放器和MediaSource对象,并将MediaSource对象设置为Video播放器的播放地址;
将MKV视频以二进制文件的形式加载到浏览器的内存中;
解析所述MKV视频得到视频轨数据、音频轨数据和字幕轨数据;
将视频轨数据和音频轨数据封装为fmp4格式;
将封装为fmp4格式的视频轨数据和音频轨数据放入MediaSource对象;
在video播放器上层创建字幕显示层,将字幕轨数据传入字幕显示层;
点击video播放器的播放按钮进行MKV视频的播放,并在字幕显示层上显示对应的字幕。
进一步地,将MKV视频以二进制文件的形式加载到浏览器的内存中,包括:
创建XMLHttpRequest对象,将MKV视频以二进制文件的形式加载到浏览器的内存中。
进一步地,解析所述MKV视频得到视频轨数据、音频轨数据和字幕轨数据,包括:
解析MKV视频的Track部分,得到视频、音频、字幕的属性信息;
解析MKV视频的Clusters部分,得到视频、音频、字幕的原始数据信息;
根据视频的属性信息和原始数据信息生成视频轨数据;
根据音频的属性信息和原始数据信息生成音频轨数据;
根据字幕的属性信息和原始数据信息生成字幕轨数据。
进一步地,将视频轨数据封装为fmp4格式,包括:
将视频创建时间、视频修改时间、播放速率、视频时长、音量大小、视频高宽、声道、视频/音频位置封装成对应的box类型,组装并放入moov box;
创建moof,根据当前片断的视频数据,将视频时长、视频数据长度、数据类型写入moof;
创建mdat,将当前片断数据写为mdat box;
循环视频轨视频,连续生成moof+mdat,则完成视频轨数据封装。
进一步地,将音频轨数据封装为fmp4格式,包括:
在将视频轨数据封装为fmp4格式后,创建moof,根据当前片断的音频数据,将音频时长、音频数据长度、数据类型写入moof;
创建mdat,将当前片断的数据写入mdat;
循环音频轨视频,连续生成moof+mdat,则完成音频轨数据封装。
进一步地,在字幕显示层上显示对应的字幕,包括:
在播放MKV视频时侦听video播放器的时间头更新事件;
将时间头传入字幕显示层;
字幕显示层根据时间头搜索字幕轨数据,将时间头大于inPoint、且小于outPoint的字幕进行显示,将其余字幕隐藏。
本发明的有益效果是:
(1)本发明实现了无插件化播放MKV视频的功能;
(2)本发明兼容了部分历史媒体库视频,减轻了后端视频格式转换的工作;
(3)本发明中视频和字幕在一个文件里,减少了后端文件管理数量。
附图说明
图1为本发明中浏览器原生播放MKV视频的方法的一种实施例的流程图;
图2为EBML的一种结构示意图;
图3为Track部分解析结果的一种示意图;
图4为Clusters部分解析结果的一种示意图;
图5为box 结构的一种示意图。
具体实施方式
下面将结合实施例,对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有付出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
参阅图1至图5,本发明提供一种浏览器原生播放MKV视频的方法:
如图1所示,一种浏览器原生播放MKV视频的方法,包括步骤S100至S700。
步骤S100.创建video播放器和MediaSource对象,并将MediaSource对象设置为Video播放器的播放地址。
步骤S200.将MKV视频以二进制文件的形式加载到浏览器的内存中。
具体的, 创建XMLHttpRequest对象,将MKV视频以二进制文件的形式加载到浏览器的内存中。
步骤S300.解析所述MKV视频得到视频轨数据、音频轨数据和字幕轨数据。
MKV视频文件结构总体包括Header、Meta Seek Information、SegmentInformation、Track、Chapters、Clusters、Cueing Data、Attachment和Tagging,如表1所示。
表1
Header部分包含EBML版本信息以及EBML的类型(表明是Matroska文件)。
Metaseek section Info部分包含用于定位文件其他部分(例如Track Info、Chapters、Tags、Cues、Attachments等)的索引信息。这一部分不是必须的,如果不存在的话可以通过扫描整个文件的其他字段获取。
Segment Info部分包含整个文件相关的基本信息,例如title信息,并包含唯一的ID,如果是连续多个相关文件,还会包含下一个文件的ID。
Track部分包含track相关的信息,比如音频、视频、字幕,视频分辨率、音频采样率、编码方式等信息。
Chapters部分给出所有Chapters。其中每个Chapters是臃肿预设音视频播放点的方式。
Clusters部分主要包含每个track的音频帧和视频帧。
Cueing Data部分包含所有的Cue信息。Cues是每个track的索引信息,跟MetaSeekInfo类似,但主要用于播放时seek到特定时间。
Attachment部分主要是用于支持在MKV文件中附加任何类型的文件,包括图片、网页、程序等。
Tagging部分包含跟文件和各个track相关的Tag。这些Tag跟MP3文件中的ID3 tag类似,包含主入writer、singer、ctor等信息。
MKV视频采用可扩展二进制元语言EBML(Extensible Binary Meta Language)来描述其文件结构,如图2所示,EBML用元素(Elements)来描述EBML文档。通过循环或递归,则可以定位到不同的数据部分。EBML是一种基于XML数据结构,由多个基础的 EBML_ELEMENT组成一个完整的EBML。
typedef struct {
vint ID;// EBML-ID
vint size;// size of element
char data[size];// data
} EBML_ELEMENT;
在一些实施例中,解析所述MKV视频得到视频轨数据、音频轨数据和字幕轨数据,包括:解析MKV视频的Track部分,得到视频、音频、字幕的属性信息,如图3所示;解析MKV视频的Clusters部分,得到视频、音频、字幕的原始数据信息,如图4所示;根据视频的属性信息和原始数据信息生成视频轨数据;根据音频的属性信息和原始数据信息生成音频轨数据;根据字幕的属性信息和原始数据信息生成字幕轨数据。
步骤S400.将视频轨数据和音频轨数据封装为fmp4格式。
具体的,mp4 封装格式采用称为 box 的结构来组织数据,如图5所示,header由size(4字节)+type(4字节)+large size(8字节)组成,body为下一个box或者数据。fmp4是由一个个box组成,第一层主要有四类box,分别为:ftyp(file type box),文件头,记录一些兼容性信息;moov(movie box),记录媒体信息;moof(movie box), 记录当前片断中的媒体信息;mdat(media data),媒体负载。和普通的Mp4不同,fmp4是为流式格式,除ftyp和moov外,fmp4由一个个连续的moof和mdat的box组成。将视频轨数据和音频轨数据封装为fmp4格式,包括:(1)根据解析完的MKV数据信息,将视频创建时间、视频修改时间、播放速率、视频时长、音量大小、视频高宽、声道、视频/音频位置等封装成对应的box类型,组装并放入moov box;(2)创建moof,根据当前片断的视频数据,将视频时长、视频数据长度、数据类型写入moof;(3)创建mdat,将当前片断数据写为mdat box;(4)循环视频轨视频,连续生成moof+mdat,则完成视频轨数据封装。
将音频轨数据封装为fmp4格式,包括:在将视频轨数据封装为fmp4格式后,创建moof,根据当前片断的音频数据,将音频时长、音频数据长度、数据类型写入moof;创建mdat,将当前片断的数据写入mdat;循环音频轨视频,连续生成moof+mdat,则完成音频轨数据封装。
步骤S500.将封装为fmp4格式的视频轨数据和音频轨数据放入MediaSource对象。
步骤S600.在video播放器上层创建字幕显示层,将字幕轨数据传入字幕显示层。
步骤S700.点击video播放器的播放按钮进行MKV视频的播放,并在字幕显示层上显示对应的字幕。
在一些实施例中,在字幕显示层上显示对应的字幕,包括:在播放MKV视频时侦听video播放器的时间头更新事件;将时间头传入字幕显示层;字幕显示层根据时间头搜索字幕轨数据,将时间头大于inPoint、且小于outPoint的字幕进行显示,将其余字幕隐藏。
以上所述仅是本发明的优选实施方式,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
Claims (6)
1.一种浏览器原生播放MKV视频的方法,其特征在于,包括:
创建video播放器和MediaSource对象,并将MediaSource对象设置为Video播放器的播放地址;
将MKV视频以二进制文件的形式加载到浏览器的内存中;
解析所述MKV视频得到视频轨数据、音频轨数据和字幕轨数据;
将视频轨数据和音频轨数据封装为fmp4格式;
将封装为fmp4格式的视频轨数据和音频轨数据放入MediaSource对象;
在video播放器上层创建字幕显示层,将字幕轨数据传入字幕显示层;
点击video播放器的播放按钮进行MKV视频的播放,并在字幕显示层上显示对应的字幕。
2.根据权利要求1所述的一种浏览器原生播放MKV视频的方法,其特征在于,将MKV视频以二进制文件的形式加载到浏览器的内存中,包括:
创建XMLHttpRequest对象,将MKV视频以二进制文件的形式加载到浏览器的内存中。
3.根据权利要求1所述的一种浏览器原生播放MKV视频的方法,其特征在于,解析所述MKV视频得到视频轨数据、音频轨数据和字幕轨数据,包括:
解析MKV视频的Track部分,得到视频、音频、字幕的属性信息;
解析MKV视频的Clusters部分,得到视频、音频、字幕的原始数据信息;
根据视频的属性信息和原始数据信息生成视频轨数据;
根据音频的属性信息和原始数据信息生成音频轨数据;
根据字幕的属性信息和原始数据信息生成字幕轨数据。
4.根据权利要求1所述的一种浏览器原生播放MKV视频的方法,其特征在于,将视频轨数据封装为fmp4格式,包括:
将视频创建时间、视频修改时间、播放速率、视频时长、音量大小、视频高宽、声道、视频/音频位置封装成对应的box类型,组装并放入moov box;
创建moof,根据当前片断的视频数据,将视频时长、视频数据长度、数据类型写入moof;
创建mdat,将当前片断数据写为mdat box;
循环视频轨视频,连续生成moof+mdat,则完成视频轨数据封装。
5.根据权利要求4所述的一种浏览器原生播放MKV视频的方法,其特征在于,将音频轨数据封装为fmp4格式,包括:
在将视频轨数据封装为fmp4格式后,创建moof,根据当前片断的音频数据,将音频时长、音频数据长度、数据类型写入moof;
创建mdat,将当前片断的数据写入mdat;
循环音频轨视频,连续生成moof+mdat,则完成音频轨数据封装。
6.根据权利要求1所述的一种浏览器原生播放MKV视频的方法,其特征在于,在字幕显示层上显示对应的字幕,包括:
在播放MKV视频时侦听video播放器的时间头更新事件;
将时间头传入字幕显示层;
字幕显示层根据时间头搜索字幕轨数据,将时间头大于inPoint、且小于outPoint的字幕进行显示,将其余字幕隐藏。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311211800.3A CN116962815B (zh) | 2023-09-20 | 2023-09-20 | 一种浏览器原生播放mkv视频的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311211800.3A CN116962815B (zh) | 2023-09-20 | 2023-09-20 | 一种浏览器原生播放mkv视频的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116962815A true CN116962815A (zh) | 2023-10-27 |
CN116962815B CN116962815B (zh) | 2023-11-21 |
Family
ID=88454936
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311211800.3A Active CN116962815B (zh) | 2023-09-20 | 2023-09-20 | 一种浏览器原生播放mkv视频的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116962815B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103338401A (zh) * | 2013-06-03 | 2013-10-02 | 贝壳网际(北京)安全技术有限公司 | 用于移动终端浏览器中的视频播放控制方法、装置和系统 |
WO2019227748A1 (zh) * | 2018-05-29 | 2019-12-05 | 北京字节跳动网络技术有限公司 | 非流媒体文件的网页播放方法、装置及存储介质 |
US20200413160A1 (en) * | 2018-05-29 | 2020-12-31 | Beijing Bytedance Network Technology Co., Ltd. | Webcasting method, device and storage medium of media file |
CN112653700A (zh) * | 2020-12-23 | 2021-04-13 | 武汉烽火众智数字技术有限责任公司 | 一种基于webrtc网页视频通信的方法 |
CN112929686A (zh) * | 2021-02-04 | 2021-06-08 | 北京华宇信息技术有限公司 | 线上实时回放录制视频的方法及装置 |
CN112995760A (zh) * | 2019-12-18 | 2021-06-18 | 腾讯科技(深圳)有限公司 | 视频处理方法、装置、设备及计算机存储介质 |
CN116261021A (zh) * | 2023-05-16 | 2023-06-13 | 北京蓝色星际科技股份有限公司 | 一种视频流播放方法、装置、电子设备及存储介质 |
-
2023
- 2023-09-20 CN CN202311211800.3A patent/CN116962815B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103338401A (zh) * | 2013-06-03 | 2013-10-02 | 贝壳网际(北京)安全技术有限公司 | 用于移动终端浏览器中的视频播放控制方法、装置和系统 |
WO2019227748A1 (zh) * | 2018-05-29 | 2019-12-05 | 北京字节跳动网络技术有限公司 | 非流媒体文件的网页播放方法、装置及存储介质 |
CN110545469A (zh) * | 2018-05-29 | 2019-12-06 | 北京字节跳动网络技术有限公司 | 非流媒体文件的网页播放方法、装置及存储介质 |
US20200413160A1 (en) * | 2018-05-29 | 2020-12-31 | Beijing Bytedance Network Technology Co., Ltd. | Webcasting method, device and storage medium of media file |
CN112995760A (zh) * | 2019-12-18 | 2021-06-18 | 腾讯科技(深圳)有限公司 | 视频处理方法、装置、设备及计算机存储介质 |
CN112653700A (zh) * | 2020-12-23 | 2021-04-13 | 武汉烽火众智数字技术有限责任公司 | 一种基于webrtc网页视频通信的方法 |
CN112929686A (zh) * | 2021-02-04 | 2021-06-08 | 北京华宇信息技术有限公司 | 线上实时回放录制视频的方法及装置 |
CN116261021A (zh) * | 2023-05-16 | 2023-06-13 | 北京蓝色星际科技股份有限公司 | 一种视频流播放方法、装置、电子设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
OTHER: "如何在网络浏览器中播放 MKV 视频?", Retrieved from the Internet <URL:https://www.wp2.cn/other/%E5%A6%82%E4%BD%95%E5%9C%A8%E7%BD%91%E7%BB%9C%E6%B5%8F%E8%A7%88%E5%99%A8%E4%B8%AD%E6%92%AD%E6%94%BE-mkv-%E8%A7%86%E9%A2%91/> * |
赛琳娜·托马斯(SELENA THOMAS): "如何在Chromecast上播放MKV –这是您应该知道的2种有效方法", Retrieved from the Internet <URL:https://www.bluraycopys.com/zh-CN/resource/chromecast-play-mkv.html> * |
Also Published As
Publication number | Publication date |
---|---|
CN116962815B (zh) | 2023-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10430212B1 (en) | Method for recording, editing and reproduction of computer session | |
CN1777945B (zh) | 对记录在交互记录介质上的主内容以及其附加内容进行同步再现的方法和设备 | |
CN1327431C (zh) | 含有预加载信息的信息存储媒体及其再现设备和方法 | |
US8799757B2 (en) | Synchronization aspects of interactive multimedia presentation management | |
US7721308B2 (en) | Synchronization aspects of interactive multimedia presentation management | |
US7313809B1 (en) | Convergence-enabled DVD and web system | |
US20070006079A1 (en) | State-based timing for interactive multimedia presentations | |
US20070006065A1 (en) | Conditional event timing for interactive multimedia presentations | |
US20070118554A1 (en) | System and method for authoring multimedia contents description metadata | |
US20070073747A1 (en) | Information Storage medium on which interactive contents version information is recorded, and recording and/or reproducing method and apparatus | |
US8020084B2 (en) | Synchronization aspects of interactive multimedia presentation management | |
KR20110056476A (ko) | 향상된 메타데이터 구조들을 사용하는 멀티미디어 배포 및 재생 시스템들 및 방법들 | |
CN1954384A (zh) | 再现下载的数据与记录在存储介质上的数据的方法和设备 | |
CN100479047C (zh) | 记录基于文本的字幕流的存储介质及再现其的设备和方法 | |
US20230377606A1 (en) | Video editing projects using single bundled video files | |
US20060257106A1 (en) | Information storage medium, information recording apparatus, and information playback apparatus | |
US20090136218A1 (en) | Multimedia presentation format | |
US20080056663A1 (en) | File Recording Apparatus, File Recording Method, Program of File Recording Process, Storage Medium in Which a Program of File Recording Processing in Stored, File Playback Apparatus File Playback Method Program of File Playback Process | |
CN116962815B (zh) | 一种浏览器原生播放mkv视频的方法 | |
CN100555432C (zh) | 以交互式模式再现av数据的方法和设备及其存储介质 | |
KR101014665B1 (ko) | 프리로드 정보가 기록된 정보저장매체, 그 재생장치 및재생방법 | |
US20070006062A1 (en) | Synchronization aspects of interactive multimedia presentation management | |
CN100418151C (zh) | 以交互模式处理标记文档的方法和设备 | |
KR102422450B1 (ko) | 미디어 데이터와 센싱 데이터의 관리 방법 | |
CN101689389A (zh) | 信息存储介质、再现设备和再现方法 |
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 |