CN111787396B - 一种视频流解析方法及装置 - Google Patents

一种视频流解析方法及装置 Download PDF

Info

Publication number
CN111787396B
CN111787396B CN202010737020.2A CN202010737020A CN111787396B CN 111787396 B CN111787396 B CN 111787396B CN 202010737020 A CN202010737020 A CN 202010737020A CN 111787396 B CN111787396 B CN 111787396B
Authority
CN
China
Prior art keywords
format
video stream
verification
verification function
analyzed
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
CN202010737020.2A
Other languages
English (en)
Other versions
CN111787396A (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.)
Beijing Kingsoft Cloud Network Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud Network 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 Beijing Kingsoft Cloud Network Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN202010737020.2A priority Critical patent/CN111787396B/zh
Publication of CN111787396A publication Critical patent/CN111787396A/zh
Application granted granted Critical
Publication of CN111787396B publication Critical patent/CN111787396B/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/44Processing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本申请实施例公开了一种视频流解析方法及装置,首先在web端预先构建解析所需的解封装库,该解封装库可以包括目前存在的所有的封装格式和/或编码格式,可以解析识别任一待解析视频流的封装格式和/或编码格式。当用户在web端页面输入任意一个视频流地址时,该web端根据该视频流地址获取待解析的视频流。然后,web端利用预先构建的解封装库对该待解析视频流进行解析,获得该待解析视频流的封装格式和/或编码格式。即,本申请实施例通过预先构建可以解析各种视频流的解封装库的方式对待解析视频流进行解析,获得待解析视频流的封装格式和/或音/视频编码格式。

Description

一种视频流解析方法及装置
技术领域
本申请涉及数据处理技术领域,具体涉及一种视频流解析方法及装置。
背景技术
现有web端播放器,在接收到待播放的视频流后,将对该视频流的封装格式、编码格式等信息进行校验,如果符合播放器支持的封装格式和编码格式则会进行播放,否则进行播放报错,订阅者不会获取到该视频流具体的封装格式和编码格式。也就是,当通过web端获取一个视频流的封装格式和编码格式时,必须依赖web端播放器。
然而,由于web端播放器支持的封装格式、编码格式有限,无法对输入的任一视频流的封装格式和编码格式进行解析,进而无法获取所输入的视频流的封装格式和编码格式。
发明内容
有鉴于此,本申请实施例提供一种视频流解析方法及装置,以实现对输入的视频流进行快速解析,获得该视频流的封装格式和编码格式。
为解决上述问题,本申请实施例提供的技术方案如下:
第一方面,提供了一种视频流解析方法,所述方法应用于web端,包括:
根据视频流地址获取待解析视频流;
利用预先构建的解封装库对所述待解析视频流进行解析,获取所述待解析视频流的封装格式和/或编码格式,所述解封装库用于解析识别所述待解析视频流的封装格式和/或编码格式。
在一种可能的实现方式中,所述解封装库包括封装格式验证函数和/或编码格式验证函数,所述利用预先构建的解封装库对所述待解析视频流进行解析,获取所述待解析视频流的封装格式和/或编码格式,包括:
从所述待解析视频流提取第一视频流信息,利用所述封装格式验证函数对所述第一视频流信息进行验证,获得所述待解析视频流的封装格式,所述第一视频流信息包括表征封装格式的字段;和/或,
从所述待解析视频流提取第二视频流信息,利用所述编码格式验证函数对所述第二视频流信息进行验证,获得所述待解析视频流的编码格式,所述第二视频流信息包括表征编码格式的字段。
在一种可能的实现方式中,所述解封装库包括多个封装格式验证函数,所述利用所述封装格式验证函数对所述第一视频流信息进行验证,获得所述待解析视频流的封装格式,包括:
利用目标封装格式验证函数对所述第一视频流信息进行验证,获得验证结果,所述目标封装格式验证函数为多个封装格式验证函数中的任意一个;
如果所述验证结果为通过,则将所述目标封装格式验证函数对应的封装格式确定为所述待解析视频流的封装格式;
如果所述验证结果为未通过,则将下一封装格式验证函数作为目标封装格式验证函数进行验证,直至所述验证结果为通过,所述下一封装格式验证函数为尚未被作为目标封装格式验证函数进行验证的封装格式验证函数。
在一种可能的实现方式中,所述解封装库包括多个编码格式验证函数,所述利用所述编码格式验证函数对所述第二视频流信息进行验证,获得所述待解析视频流的编码格式,包括:
利用目标编码格式验证函数对所述第二视频流信息进行验证,获得验证结果,所述目标编码格式验证函数为多个编码格式验证函数中的任意一个;
如果所述验证结果为通过,则将所述目标编码格式验证函数对应的编码格式确定为所述待解析视频流的编码格式;
如果所述验证结果为未通过,则将下一编码格式验证函数作为目标编码格式验证函数进行验证,直至所述验证结果为通过,所述下一编码格式验证函数为尚未被作为目标编码格式验证函数进行验证的编码格式验证函数。
在一种可能的实现方式中,所述编码格式包括视频编码格式和/或音频编码格式,所述编码格式验证函数包括视频编码格式验证函数和/或音频编码格式验证函数。
在一种可能的实现方式中,所述方法还包括:
将所述待解析视频流的封装格式和/或编码格式显示在web端页面。
在一种可能的实现方式中,所述方法还包括:
将所述待解析视频流的封装格式和/或编码格式发送给用户对应的终端设备。
在一种可能的实现方式中,所述解封装库是基于各个封装格式对应的标准文档和/或编码格式对应的标准文档生成的js解封装库,或,所述解封装库是利用ffmpeg编译生成的wasm解封装库。
在一种可能的实现方式中,所述待解析视频流为所述视频流地址对应的视频流的部分内容,或为所述视频流地址对应的视频流的全部内容。
在第二方面,提供了一种视频流解析装置,所述装置应用于web端,所述装置包括:
第一获取单元,用于根据视频流地址获取待解析视频流;
第二获取单元,用于利用预先构建的解封装库对所述待解析视频流进行解析,获取所述待解析视频流的封装格式和/或编码格式,所述解封装库用于解析识别所述待解析视频流的封装格式和/或编码格式。
在一种可能的实现方式中,所述解封装库包括封装格式验证函数和/或编码格式验证函数,所述第二获取单元,包括:
第一获取子单元,用于从所述待解析视频流提取第一视频流信息,利用所述封装格式验证函数对所述第一视频流信息进行验证,获得所述待解析视频流的封装格式,所述第一视频流信息包括表征封装格式的字段;和/或,
第二获取子单元,用于从所述待解析视频流提取第二视频流信息,利用所述编码格式验证函数对所述第二视频流信息进行验证,获得所述待解析视频流的编码格式,所述第二视频流信息包括表征编码格式的字段。
在一种可能的实现方式中,所述解封装库包括多个封装格式验证函数,所述第一获取子单元,具体用于利用目标封装格式验证函数对所述第一视频流信息进行验证,获得验证结果,所述目标封装格式验证函数为多个封装格式验证函数中的任意一个;如果所述验证结果为通过,则将所述目标封装格式验证函数对应的封装格式确定为所述待解析视频流的封装格式;如果所述验证结果为未通过,则将下一封装格式验证函数作为目标封装格式验证函数进行验证,直至所述验证结果为通过,所述下一封装格式验证函数为尚未被作为目标封装格式验证函数进行验证的封装格式验证函数。
在一种可能的实现方式中,所述解封装库包括多个编码格式验证函数,所述第二获取子单元,具体用于利用目标编码格式验证函数对所述第二视频流信息进行验证,获得验证结果,所述目标编码格式验证函数为多个编码格式验证函数中的任意一个;如果所述验证结果为通过,则将所述目标编码格式验证函数对应的编码格式确定为所述待解析视频流的编码格式;如果所述验证结果为未通过,则将下一编码格式验证函数作为目标编码格式验证函数进行验证,直至所述验证结果为通过,所述下一编码格式验证函数为尚未被作为目标编码格式验证函数进行验证的编码格式验证函数。
在一种可能的实现方式中,所述编码格式包括视频编码格式和/或音频编码格式,所述编码格式验证函数包括视频编码格式验证函数和/或音频编码格式验证函数。
在一种可能的实现方式中,所述装置还包括:
显示单元,用于将所述待解析视频流的封装格式和/或编码格式显示在web端页面。
在一种可能的实现方式中,所述装置还包括:
发送单元,用于将所述待解析视频流的封装格式和/或编码格式发送给用户对应的终端设备。
在一种可能的实现方式中,所述解封装库是基于各个封装格式对应的标准文档和/或编码格式对应的标准文档生成的js解封装库,或,所述解封装库是利用ffmpeg编译生成的wasm解封装库。
在一种可能的实现方式中,所述待解析视频流为所述视频流地址对应的视频流的部分内容,或为所述视频流地址对应的视频流的全部内容。
在第三方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行第一方面所述的视频流解析方法。
在第四方面,提供了一种实现视频流解析的设备,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现第一方面所述的视频流解析方法。
由此可见,本申请实施例具有如下有益效果:
本申请实施例首先在web端预先构建解析所需的解封装库,该解封装库可以包括目前存在的所有的封装格式和/或编码格式,可以解析识别任一待解析视频流的封装格式和/或编码格式。当用户在web端页面输入任意一个视频流地址时,该web端根据该视频流地址获取待解析的视频流。然后,web端利用预先构建的解封装库对该待解析视频流进行解析,获得该待解析视频流的封装格式和/或编码格式。即,本申请实施例通过预先构建可以解析各种视频流的解封装库的方式对待解析视频流进行解析,获得待解析视频流的封装格式和/或音/视频编码格式。
另外,当web端获取到待解析视频流的封装格式和/或编码格式,可以将该封装格式和/或编码格式在web端页面进行显示或者将该封装格式和编码格式发送至用户的终端设备,便于用户获取即将播放的视频流的相关信息。
附图说明
图1为本申请实施例提供的一种视频流解析方法流程图;
图2为本申请实施例提供的一种解析视频流封装格式流程图;
图3为本申请实施例提供的一种解析视频流编码格式流程图;
图4a-4d为本申请实施例提供的一种应用场景示意图;
图5为本申请实施例提供的一种视频流解析装置结构图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请实施例作进一步详细的说明。
为便于理解本申请实施例提供的技术方案,下面将先对本申请实施例涉及的技术名词进行说明。
编码格式:分为视频编码格式和音频编码格式。其中,视频编码格式又称为视频编码规范,由于原始的视频数据非常大,不方便存储和传输,通过压缩编码的方式将原始视频进行压缩。视频编码格式定义了视频数据在存储和传输过程中的规范,视频压缩格式常见的有H.264、H.265。
音频编码格式又称音频编码规范,将原始的音频数据进行压缩,定义了音频数据在存储和传输过程中的规范。音频压缩格式常见的有AAC、MP3。
封装格式(也叫容器),将原始的视频数据和音频数据通过压缩编码之后封装成一个文件,比如avi、rmvb、mp4等。
需要说明的是,本申请实施例提供的方法可以应用于web端的任何场景,只要该应用场景可以调用解封装库即可,不局限于web端播放器。为便于理解,下面将以应用于web端播放器为例进行说明。
为便于理解本申请实施例提供的技术方案,下面将结合附图对本申请实施例提供的解析方法进行说明。
方法实施例一
参见图1,该图为本申请实施例提供的一种视频流解析方法流程图,如图1所示,该方法可以包括:
S101:根据视频流地址获取待解析视频流。
本实施例中,web端播放器响应于用户在web端页面输入的视频流地址获取到该视频流地址对应的待解析视频流。其中,web端获取的待解析视频流可以为视频流地址对应的视频流的部分内容,或者为视频流地址对应的视频流的全部内容。例如,web端可以从视频流中截取预设时长的视频作为待解析视频流,也可以从视频流中截取所定义的起始时间和终止时间规定的时间段内的视频作为待解析视频流。
S102:利用预先构建的解封装库对待解析视频流进行解析,获取待解析视频流的封装格式和/或编码格式。
当获取到待解析视频流后,则利用预先构建的解封装库对该待解析视频流进行解析,获得该待解析视频流的封装格式和/或编码格式。其中,解封装库用于解析识别待解析视频流的封装格式和/或编码格式。
其中,解封装库可以通过两种方式获得,一种是,基于国际标准化组织(international organization for standardization,ISO)官方提供的各种标准文档(封装格式的标准文档、编码格式的标准文档),该标准文档定义了如何判定封装格式和编码格式,根据上述标准文档的定义,并利用js语言实现的解封装库。例如,ISO提供的流媒体格式(flashvideo,flv)标准文档中的header中定义了如何判定视频流的封装格式为flv,同时,该flv标准文档中的其它部分还定义了如何判断音频编码格式和视频编码格式。
另一种,利用webassembly技术,将ffmpeg编译成wasm库引入js中,以供web端播放器调用ffmpeg提供的解封装库。
在一些实现方式中,预先构建的解封装库中可以包括封装格式验证函数和/或编码格式验证函数,其中,封装格式验证函数用于对从待解析视频流中提取的信息进行验证,以获取该待解析视频流的封装格式。编码格式验证函数用于对从待解析视频流中提取的信息进行验证,以获得待解析视频流的编码格式。则利用预先构建的解封装库对待解析视频流进行解析,获得待解析视频流的封装格式和编码格式的具体实现将在后续实施例进行说明。
可见,通过上述描述可知,web端可以预先构建解析所需的解封装库,该解封装库包括目前存在的所有的封装格式和编码格式各自对应的验证函数。当用户在web端页面输入任意一个视频流地址时,该web端根据该视频流地址获取待解析的视频流。然后,web端利用预先构建的解封装库对该待解析视频流进行解析,获得该待解析视频流的封装格式和编码格式。即,本申请实施例通过预先构建可以解析各种视频流的解封装库的方式对待解析视频流进行解析,获得待解析视频流的封装格式和音/视频编码格式。
在一种可能的实现方式中,当web端播放器通过上述步骤获取到待解析视频流的封装格式和编码格式后,可以将封装格式和/或编码格式显示在web端页面,以便用户可以直观地获取该待解析视频流的相关信息。或者,web端将解析获得的封装格式和/或编码格式发送给用户对应的终端设备,用户通过该终端设备可以获取该待解析视频流的相关信息。当然,还可以通过其它可能的展现方式对待解析视频流的封装格式和编码格式进行显示,本实施例在此不进行一一列举。
在一些实现方式中,web端播放器还可以通过解封装库中的相应函数解析获得该待解析视频流的帧率、码率、分辨率等信息。
可见,当web端获取到待解析视频流的封装格式和/或编码格式,可以将该封装格式和编码格式在web端页面进行显示,或者,将该封装格式和编码格式发送给用户对应的终端设备,便于用户获取即将播放的视频流的相关信息。
基于上述实施例可知,web端播放器可以利用预先构建的封装格式验证函数获取待解析视频流的封装格式,具体为,从待解析视频流提取第一视频流信息,利用封装格式验证函数对第一视频流信息进行验证,获得待解析视频流的封装格式。
本实施例中,web端播放器首先从待解析视频流中提取第一视频流信息,该第一视频流信息中包括表征封装格式的字段,利用封装格式验证函数对该字段进行验证识别,以根据验证结果获得该待解析视频流的封装格式。
具体地,预先构建的解封装库中可以包括各种封装格式对应的验证函数,例如flv验证函数、rmvb验证函数和mp4验证函数等。针对包括的多个封装格式验证函数,可以通过以下方式获取待解析视频流的封装格式。
方法实施例二
参见图2所示的一种获取待解析视频流封装格式的流程图,如图2所示,该方法可以包括:
S201:从多个封装格式验证函数中确定目标封装格式函数。
S202:利用该目标封装格式验证函数对第一视频流信息进行验证,获得验证结果。
本实施例中,web端播放器在解析时,可以从解封装库中多个封装格式验证函数中选择任一个封装格式验证函数作为目标封装格式验证函数,以利用该目标封装格式验证函数对提取的第一视频流信息进行验证,以获取该目标封装格式验证函数输出的验证结果。具体地,第一视频流信息可以为二进制序列或十六进制序列,其中,二进制序列或十六进制序列用于表征该待解析视频流的封装格式。
其中,第一视频流信息中包括用于表征封装格式的字段,web端播放器将表征封装格式的字段输入目标封装格式验证函数中,以便该目标封装格式验证函数识别该字段是否为预定义的字段,如果是,则输出通过的验证结果;否则,输出未通过的验证结果。
S203:判断验证结果是否为通过,如果是,则执行S204;否则,执行S201。
如果当前所选择的目标封装格式验证函数对第一视频流信息的验证结果为通过,表明该待解析视频流的封装格式与目标封装格式验证函数对应的封装格式匹配,则执行S204。如果验证结果为未通过,则表明该待解析视频流的封装格式与目标封装格式验证函数对应的封装格式不匹配,则返回S201,选择下一封装格式验证函数作为目标封装格式验证函数继续后续操作,直至获取的验证结果为通过。其中,下一封装格式验证函数为尚未被作为目标封装格式验证函数进行上述验证的封装格式验证函数。例如,解封装库共包含5个封装格式验证函数,当前的目标封装格式验证函数为函数1,如果函数1的验证结果为未通过,且剩余的4个函数未曾被作为目标封装格式验证函数进行验证,则将4个函数中的一个函数作为下一封装格式验证函数,将其作为目标封装格式验证函数,以进行下一轮的验证。依次从剩余的函数中确定目标封装格式验证,直至验证结果为通过或者所有的函数进行上述验证。
S204:将目标封装格式验证函数对应的封装格式确定为待解析视频流的封装格式。
当某一目标封装格式验证函数输出的验证结果为通过时,将该目标封装格式验证函数对应的封装格式确定该待解析视频流的封装格式。
基于方法实施例一可知,web端播放器可利用预先构建的编码格式验证函数解析获得待解析视频流的编码格式,具体为,从待解析视频流提取第二视频流信息,利用编码格式验证函数对第二视频流信息进行验证,获得该待解析视频流的编码格式。
本实施例中,web端播放器首先从待解析视频流中提取第二视频流信息,该第二视频流信息中包括表征编码格式的字段,利用编码格式验证函数对该字段进行验证识别,以根据验证结果获得该待解析视频流的编码格式。
具体地,预先构建的解封装库中可以包括各种编码格式对应的验证函数,针对包括的多个封装格式验证函数,可以通过以下方式获取待解析视频流的封装格式。
方法实施例三
参见图3所示的一种获取待解析视频流编码格式的流程图,如图3所示,该方法可以包括:
S301:从多个编码格式验证函数中确定目标编码格式函数。
S202:利用目标编码格式验证函数对第二视频流信息进行验证,获得验证结果。
本实施例中,web端播放器在解析时,可以从解封装库中多个编码格式验证函数中选择任一个编码格式验证函数作为目标编码格式验证函数,以利用该目标编码格式验证函数对提取的第二视频流信息进行验证,以获取该目标编码格式验证函数输出的验证结果。具体地,第二视频流信息可以为二进制序列或十六进制序列,其中,二进制序列或十六进制序列用于表征该待解析视频流的编码格式。
其中,第二视频流信息中包括用于表征编码格式的字段,web端播放器将表征编码格式的字段输入目标编码格式验证函数中,以便该目标编码格式验证函数识别该字段是否为预定义的字段,如果是,则输出通过的验证结果;否则,输出未通过的验证结果。
S303:判断验证结果是否为通过,如果是,则执行S304;否则,执行S301。
如果当前所选择的目标编码格式验证函数对第二视频流信息的验证结果为通过,表明该待解析视频流的编码格式与目标编码格式验证函数对应的编码格式匹配,则执行S304。如果验证结果为未通过,则表明该待解析视频流的编码格式与目标编码格式验证函数对应的编码格式不匹配,则返回S301,选择下一编码格式验证函数作为目标编码格式验证函数继续后续操作,直至获取的验证结果为通过。其中,下一编码格式验证函数为尚未被作为目标编码格式验证函数进行上述验证的编码格式验证函数。例如,解封装库共包含5个编码格式验证函数,当前的编码封装格式验证函数为函数2,如果函数2的验证结果为未通过,且函数1曾被确定为目标编码格式验证函数进行上述验证过,则将剩余的3个函数中(函数3、函数4以及函数5)的一个函数作为下一编码格式验证函数,将其作为目标编码格式验证函数,以进行下一轮的验证。依次从剩余的函数中确定目标编码格式验证,直至验证结果为通过或者所有的函数进行上述验证。
S304:将目标编码格式验证函数对应的编码格式确定为待解析视频流的编码格式。
当某一目标编码格式验证函数输出的验证结果为通过时,将该目标编码格式验证函数对应的编码格式确定该待解析视频流的编码格式。
在一些实现方式中,编码格式可以包括音频编码格式和/或视频编码格式,则编码格式验证函数包括视频编码格式验证函数和/或音频编码格式验证函数。同时提取的第二视频流信息中包括表征音频编码格式的字段和/或视频编码格式的字段,则在利用编码格式验证函数获取待解析视频流的编码格式时,可以为,利用音频编码格式验证函数对第二视频流信息中的音频编码格式的字段进行验证识别,以根据验证结果获得该待解析视频流的音频编码格式;和/或,利用视频编码格式验证函数对第二视频流信息中的视频编码格式的字段进行验证识别,以根据验证结果获得该待解析视频流的视频编码格式。
可以理解的是,解封装库中可以包括多种音频编码格式验证函数,如AAC验证函数和MP3验证函数,解封装库也可以包括多种视频编码格式验证函数,例如H.264验证函数和H.265验证函数。其中,关于利用音频编码格式验证函数和视频编码格式验证函数分别获取待解析视频流的音频编码格式、视频编码格式的具体实现可以参见S301-S304。
可见,通过上述方法web端播放器可以针对任一视频流的封装格式和编码格式进行检测。
为便于理解本实施例中解封装库中封装格式验证函数、音频编码格式验证函数以及视频编码格式验证函数的工作过程,将以flv标准文档为例进行说明。参见图4a-4d,其中,在flv头中定义了如何判断视频流的封装格式为flv。按照flv头格式的定义从第一视频流信息中获取长度为一个字节的无符号整数,如果该无符号整数对应“F”,再获取下一个字节的无符号整数,该无符号整数对应为“L”,再获取下一个字节的无符号整数,该无符号整数对应为“V”,则该待解析视频流的封装格式为flv。其中,UI表示无符号整形,后面跟的数字表示其长度是多少位。比如UI8,表示无符号整数,长度一个字节。
在flv文件体中定义了如何判断音频数据和视频数据。如图4b所示,当提取到TagType为8时可以得到audio即音频的信息,TagType为9时可以得到video即视频的信息。
当提取到TagType为8时,表明后续即将获得的信息为音频数据的编码格式,则根据AudioData的定义,获取其前4个字节,根据该4个字节确定编码格式。如图4c所示,如果获取的前4个字节为10则为AAC,标识音频编码格式为AAC。
当提取到TagType为9时,表明后续即将获得的信息为视频数据的编码格式,则根据videoData的定义,获取其前4个字节,根据该4个字节确定编码格式。如图4d所示,如果获取的前4个字节为7,则对应AVC,表示视频编码格式为H.264。
基于上述方法实施例,本申请实施例还提供了用于视频流解析的装置,下面将结合附图进行说明。
装置实施例
参见图5,该图为本申请实施例提供的一种视频流解析装置结构图,如图5所示,该装置设置于web端,可以包括:
第一获取单元501,用于根据视频流地址获取待解析视频流;
第二获取单元502,用于利用预先构建的解封装库对所述待解析视频流进行解析,获取所述待解析视频流的封装格式和/或编码格式,所述解封装库用于解析识别所述待解析视频流的封装格式和/或编码格式。
在一种可能的实现方式中,所述解封装库包括封装格式验证函数和/或编码格式验证函数,所述第二获取单元,包括:
第一获取子单元,用于从所述待解析视频流提取第一视频流信息,利用所述封装格式验证函数对所述第一视频流信息进行验证,获得所述待解析视频流的封装格式,所述第一视频流信息包括表征封装格式的字段;和/或,
第二获取子单元,用于从所述待解析视频流提取第二视频流信息,利用所述编码格式验证函数对所述第二视频流信息进行验证,获得所述待解析视频流的编码格式,所述第二视频流信息包括表征编码格式的字段。
在一种可能的实现方式中,所述解封装库包括多个封装格式验证函数,所述第一获取子单元,具体用于利用目标封装格式验证函数对所述第一视频流信息进行验证,获得验证结果,所述目标封装格式验证函数为多个封装格式验证函数中的任意一个;如果所述验证结果为通过,则将所述目标封装格式验证函数对应的封装格式确定为所述待解析视频流的封装格式;如果所述验证结果为未通过,则将下一封装格式验证函数作为目标封装格式验证函数进行验证,直至所述验证结果为通过,所述下一封装格式验证函数为尚未被作为目标封装格式验证函数进行上述验证的封装格式验证函数。
在一种可能的实现方式中,所述解封装库包括多个编码格式验证函数,所述第二获取子单元,具体用于利用目标编码格式验证函数对所述第二视频流信息进行验证,获得验证结果,所述目标编码格式验证函数为多个编码格式验证函数中的任意一个;如果所述验证结果为通过,则将所述目标编码格式验证函数对应的编码格式确定为所述待解析视频流的编码格式;如果所述验证结果为未通过,则将下一编码格式验证函数作为目标编码格式验证函数进行验证,直至所述验证结果为通过,所述下一编码格式验证函数为尚未被作为目标编码格式验证函数进行上述验证的编码格式验证函数。
在一种可能的实现方式中,所述编码格式包括视频编码格式和/或音频编码格式,所述编码格式验证函数包括视频编码格式验证函数和/或音频编码格式验证函数。
在一种可能的实现方式中,所述装置还包括:
显示单元,用于将所述待解析视频流的封装格式和/或编码格式显示在web端页面。
在一种可能的实现方式中,所述装置还包括:
发送单元,用于将所述待解析视频流的封装格式和/或编码格式发送给用户对应的终端设备。
在一种可能的实现方式中,所述解封装库是基于各个封装格式对应的标准文档和/或编码格式对应的标准文档生成的js解封装库,或,所述解封装库是利用ffmpeg编译生成的wasm解封装库。
在一种可能的实现方式中,所述待解析视频流为所述视频流地址对应的视频流的部分内容,或为所述视频流地址对应的视频流的全部内容。
需要说明的是,本实施例中各个单元的具体实现可以参见上述方法实施例,本实施例在此不再赘述。
另外,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行所述的视频流解析方法。
本申请实施例提供了一种实现视频流解析的设备,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现所述的视频流解析方法。
基于上述可知,web端可以预先构建解析所需的解封装库,该解封装库包括目前存在的所有的封装格式和编码格式各自对应的验证函数。当用户在web端页面输入任意一个视频流地址时,该web端根据该视频流地址获取待解析的视频流。然后,web端利用预先构建的解封装库对该待解析视频流进行解析,获得该待解析视频流的封装格式和/或编码格式。即,本申请实施例通过预先构建可以解析各种视频流的解封装库的方式对待解析视频流进行解析,获得待解析视频流的封装格式和/或音/视频编码格式。
另外,当web端获取到待解析视频流的封装格式和/或编码格式,可以将该封装格式和/或编码格式在web端页面进行显示,或者,将该封装格式和/或编码格式发送给用户对应的终端设备,便于用户获取即将播放的视频流的相关信息。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统或装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (14)

1.一种视频流解析方法,其特征在于,所述方法应用于web端,包括:
响应于用户在所述web端的页面输入的视频流地址,根据所述视频流地址获取待解析视频流;
利用预先构建的解封装库对所述待解析视频流进行解析,获取所述待解析视频流的封装格式和/或编码格式,所述解封装库用于解析识别所述待解析视频流的封装格式和/或编码格式,包括:
若所述解封装库包括多个封装格式验证函数,利用目标封装格式验证函数对第一视频流信息进行验证,获得验证结果,所述目标封装格式验证函数为多个封装格式验证函数中的任意一个,所述第一视频流信息包括表征封装格式的字段;
如果所述验证结果为通过,则将所述目标封装格式验证函数对应的封装格式确定为所述待解析视频流的封装格式;
如果所述验证结果为未通过,则将下一封装格式验证函数作为目标封装格式验证函数进行验证,直至所述验证结果为通过,所述下一封装格式验证函数为尚未被作为目标封装格式验证函数进行验证的封装格式验证函数;
若所述解封装库包括多个编码格式验证函数,利用目标编码格式验证函数对第二视频流信息进行验证,获得验证结果,所述目标编码格式验证函数为多个编码格式验证函数中的任意一个,所述第二视频流信息包括表征编码格式的字段;
如果所述验证结果为通过,则将所述目标编码格式验证函数对应的编码格式确定为所述待解析视频流的编码格式;
如果所述验证结果为未通过,则将下一编码格式验证函数作为目标编码格式验证函数进行验证,直至所述验证结果为通过,所述下一编码格式验证函数为尚未被作为目标编码格式验证函数进行验证的编码格式验证函数。
2.根据权利要求1所述的方法,其特征在于,所述编码格式包括视频编码格式和/或音频编码格式,所述编码格式验证函数包括视频编码格式验证函数和/或音频编码格式验证函数。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述待解析视频流的封装格式和/或编码格式显示在web端页面。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述待解析视频流的封装格式和/或编码格式发送给用户对应的终端设备。
5.根据权利要求1所述的方法,其特征在于,所述解封装库是基于各个封装格式对应的标准文档和/或编码格式对应的标准文档生成的js解封装库,或,所述解封装库是利用ffmpeg编译生成的wasm解封装库。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述待解析视频流为所述视频流地址对应的视频流的部分内容,或为所述视频流地址对应的视频流的全部内容。
7.一种视频流解析装置,其特征在于,所述装置应用于web端,所述装置包括:
第一获取单元,用于响应于用户在所述web端的页面输入的视频流地址,根据所述视频流地址获取待解析视频流;
第二获取单元,用于利用预先构建的解封装库对所述待解析视频流进行解析,获取所述待解析视频流的封装格式和/或编码格式,所述解封装库用于解析识别所述待解析视频流的封装格式和/或编码格式;
所述第二获取单元,具体用于若所述解封装库包括多个封装格式验证函数,利用目标封装格式验证函数对第一视频流信息进行验证,获得验证结果,所述目标封装格式验证函数为多个封装格式验证函数中的任意一个;如果所述验证结果为通过,则将所述目标封装格式验证函数对应的封装格式确定为所述待解析视频流的封装格式;如果所述验证结果为未通过,则将下一封装格式验证函数作为目标封装格式验证函数进行验证,直至所述验证结果为通过,所述下一封装格式验证函数为尚未被作为目标封装格式验证函数进行验证的封装格式验证函数,所述第一视频流信息包括表征封装格式的字段;
所述第二获取单元,具体用于若所述解封装库包括多个编码格式验证函数,利用目标编码格式验证函数对第二视频流信息进行验证,获得验证结果,所述目标编码格式验证函数为多个编码格式验证函数中的任意一个;如果所述验证结果为通过,则将所述目标编码格式验证函数对应的编码格式确定为所述待解析视频流的编码格式;如果所述验证结果为未通过,则将下一编码格式验证函数作为目标编码格式验证函数进行验证,直至所述验证结果为通过,所述下一编码格式验证函数为尚未被作为目标编码格式验证函数进行验证的编码格式验证函数,所述第二视频流信息包括表征编码格式的字段。
8.根据权利要求7所述的装置,其特征在于,所述编码格式包括视频编码格式和/或音频编码格式,所述编码格式验证函数包括视频编码格式验证函数和/或音频编码格式验证函数。
9.根据权利要求7所述的装置,其特征在于,所述装置还包括:
显示单元,用于将所述待解析视频流的封装格式和/或编码格式显示在web端页面。
10.根据权利要求7所述的装置,其特征在于,所述装置还包括:
发送单元,用于将所述待解析视频流的封装格式和/或编码格式发送给用户对应的终端设备。
11.根据权利要求7所述的装置,其特征在于,所述解封装库是基于各个封装格式对应的标准文档和/或编码格式对应的标准文档生成的js解封装库,或,所述解封装库是利用ffmpeg编译生成的wasm解封装库。
12.根据权利要求7-11中任一项所述的装置,其特征在于,所述待解析视频流为所述视频流地址对应的视频流的部分内容,或为所述视频流地址对应的视频流的全部内容。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行权利要求1-6任一项所述的视频流解析方法。
14.一种实现视频流解析的设备,其特征在于,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现权利要求1-6任一项所述的视频流解析方法。
CN202010737020.2A 2020-07-28 2020-07-28 一种视频流解析方法及装置 Active CN111787396B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010737020.2A CN111787396B (zh) 2020-07-28 2020-07-28 一种视频流解析方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010737020.2A CN111787396B (zh) 2020-07-28 2020-07-28 一种视频流解析方法及装置

Publications (2)

Publication Number Publication Date
CN111787396A CN111787396A (zh) 2020-10-16
CN111787396B true CN111787396B (zh) 2023-02-21

Family

ID=72766405

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010737020.2A Active CN111787396B (zh) 2020-07-28 2020-07-28 一种视频流解析方法及装置

Country Status (1)

Country Link
CN (1) CN111787396B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114095784B (zh) * 2021-11-19 2024-02-09 浩云科技股份有限公司 H.265格式视频流转码播放方法、系统、设备及介质
CN114501116A (zh) * 2022-01-19 2022-05-13 深圳力维智联技术有限公司 一种基于规则模型的音视频流解封装方法和系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102196268A (zh) * 2011-05-06 2011-09-21 成都市华为赛门铁克科技有限公司 多媒体数据处理方法、装置和系统
CN106202375A (zh) * 2016-07-07 2016-12-07 武汉鸿瑞达信息技术有限公司 一种多浏览器web流式视频异构协议解析引擎系统
CN107979783A (zh) * 2016-10-25 2018-05-01 杭州海康威视数字技术股份有限公司 一种流式数据解析方法、装置及电子设备
CN108600816A (zh) * 2018-05-17 2018-09-28 上海七牛信息技术有限公司 一种媒体检测方法、装置以及媒体播放系统
CN108668162A (zh) * 2018-03-20 2018-10-16 青岛海信电器股份有限公司 视频文件播放的处理方法、装置及智能终端
CN111355976A (zh) * 2020-03-31 2020-06-30 北京东方国信科技股份有限公司 一种基于hevc标准的视频直播方法及系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7093274B2 (en) * 2003-07-29 2006-08-15 Sony Corporation Apparatus and method for accommodating fast change of digital streaming sources and formats
CN104113770A (zh) * 2013-04-18 2014-10-22 深圳市云帆世纪科技有限公司 网页视频点播方法和装置
GB2533279B (en) * 2014-12-08 2019-08-14 Gurulogic Microsystems Oy Secure media player
CN110198479B (zh) * 2019-05-24 2021-10-22 浪潮软件股份有限公司 一种基于webassembly的浏览器音视频解码播放方法
CN111083167A (zh) * 2019-12-31 2020-04-28 深圳市思博慧数据科技有限公司 一种跨浏览器的h.265视频播放方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102196268A (zh) * 2011-05-06 2011-09-21 成都市华为赛门铁克科技有限公司 多媒体数据处理方法、装置和系统
CN106202375A (zh) * 2016-07-07 2016-12-07 武汉鸿瑞达信息技术有限公司 一种多浏览器web流式视频异构协议解析引擎系统
CN107979783A (zh) * 2016-10-25 2018-05-01 杭州海康威视数字技术股份有限公司 一种流式数据解析方法、装置及电子设备
CN108668162A (zh) * 2018-03-20 2018-10-16 青岛海信电器股份有限公司 视频文件播放的处理方法、装置及智能终端
CN108600816A (zh) * 2018-05-17 2018-09-28 上海七牛信息技术有限公司 一种媒体检测方法、装置以及媒体播放系统
CN111355976A (zh) * 2020-03-31 2020-06-30 北京东方国信科技股份有限公司 一种基于hevc标准的视频直播方法及系统

Also Published As

Publication number Publication date
CN111787396A (zh) 2020-10-16

Similar Documents

Publication Publication Date Title
EP2901706B1 (en) Methods and apparatus for identifying media
CN111787396B (zh) 一种视频流解析方法及装置
CN107545424B (zh) 一种数据监控处理方法、装置以及系统
CN108847248B (zh) 蓝牙设备音频处理方法、系统、可读存储介质和蓝牙设备
CN107635014B (zh) 一种文件传输及呈现方法、服务器和移动终端
US20150363505A1 (en) Reception device, information processing method in reception device, transmission device, information processing device, and information processing method
CN112149137B (zh) 漏洞检测方法、装置、电子设备及计算机可读存储介质
CN113301393B (zh) 流媒体数据的播放与互动方法、装置、系统及存储介质
KR101854469B1 (ko) 오디오 컨텐츠의 비트레이트 판단장치 및 방법
CN107302715A (zh) 多媒体文件的播放方法、封装方法以及相应的装置、终端
CN112311755A (zh) 一种工控协议逆向分析方法及装置
US9294954B2 (en) Method and system for online communication
TWI540886B (zh) 音訊解碼方法及音訊解碼裝置
CN109960731B (zh) 一种数据处理方法、设备及存储介质
CN109586979B (zh) 一种报文传输方法及装置
CN111160958A (zh) 广告展示方法和系统、移动终端、后台服务器、介质、设备
CN114374745B (zh) 一种协议格式的处理方法及系统
CN111954014B (zh) 一种直播推流方法、装置、存储介质及设备
CN113747063B (zh) 一种视频传输的方法、装置、电子设备及可读存储介质
CN113162628B (zh) 一种数据编码方法、数据解码方法、终端和存储介质
CN111064717B (zh) 数据编码方法、数据解码方法以及相关终端、装置
CN114373449A (zh) 智能设备、服务器及语音交互方法
CN110189388B (zh) 动画检测方法、可读存储介质及计算机设备
CN114095781A (zh) 多媒体数据处理方法、装置、电子设备及存储介质
CN112653922B (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