CN114501116A - 一种基于规则模型的音视频流解封装方法和系统 - Google Patents
一种基于规则模型的音视频流解封装方法和系统 Download PDFInfo
- Publication number
- CN114501116A CN114501116A CN202210060349.9A CN202210060349A CN114501116A CN 114501116 A CN114501116 A CN 114501116A CN 202210060349 A CN202210060349 A CN 202210060349A CN 114501116 A CN114501116 A CN 114501116A
- Authority
- CN
- China
- Prior art keywords
- audio
- rule model
- rule
- video
- data packet
- 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.)
- Pending
Links
- 238000005538 encapsulation Methods 0.000 title claims abstract description 49
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000004806 packaging method and process Methods 0.000 claims abstract description 56
- 230000014509 gene expression Effects 0.000 claims description 46
- 238000012795 verification Methods 0.000 claims description 17
- 230000004044 response Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 description 6
- 230000002452 interceptive effect Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000012806 monitoring device Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012536 packaging technology Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/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/434—Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- 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/439—Processing of audio elementary streams
-
- 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, rendering scenes according to MPEG-4 scene graphs
Abstract
一种基于规则模型的音视频流解封装方法和系统,其中的方法包括:获取音视频流的第一个音视频数据包;从预先设置的规则模型库中逐个读取规则模型,与第一个音视频数据包进行匹配,直至获得与第一个音视频数据包相匹配的规则模型或遍历完整个规则模型库为止;每个规则模型对应一种音视频的封装方式,规则模型中包括一条或多条特征规则;当获得相匹配的规则模型时,则确定该音视频流的封装方式为所匹配的规则模型对应的封装方式,从而能够快速确定音视频封装方式,采用该封装方式对应的解封装方式对音视频流进行解封装,进而极大地缩短了音视频解封装的时间。
Description
技术领域
本发明涉及音视频播控技术领域,具体涉及一种基于规则模型的音视频流解封装方法和系统。
背景技术
随着视频监控技术的快速发展,音视频从采集、编码、传输到解码涉及的相关技术越来越成熟,为了保证音视频通过网络传输时数据的正确性,以及满足音视频多路复用的需求,产生了各种各样的音视频封装方式,当前主要封装和解封装方式有PS(ProgramStream,节目流)、TS(Transport Stream,传输流)、FLV(flash video)、FU-A(基于RTP的分组方式)及厂家私有方式等。音视频流通过封装技术可实现多源、多路复用,同时保障了音视频数据在传输时的正确性和完整性。但是由于音视频封装方式不同,导致播放器或者应用系统必须针对每种封装方式,实现不同的解封装方式,而在公共安全视频监控领域,监控平台需要对各类音视频源进行接入、解封装、解码和播放,由于各个音视频源封装方式存在差异,甚至同一音视频源也可能临时更改封装方式,如果平台不能根据实时接收的音视频数据,自动快速地匹配正确的解封装方式,可能导致音视频播放延时较大,甚至无法正常播放。针对此类问题,当前主要的解决方案是音视频的解封装模块集成尽可能多的解封装库,接入音视频时根据音视频数据去遍历调用解封装库,进行解封装操作,如果解封装成功,就认为当前音视频源的解封装方式为此解封装方式,对此音视频源后续音视频帧都按照此解封装方式进行解封装,但是此种方案普遍性能较低,音视频流第一次解封装时耗时较长,导致音视频播放延时较大。
发明内容
本发明提供一种基于规则模型的音视频流解封装方法和系统,主要解决现有音视频流解封装方式耗时长的技术问题。
根据第一方面,一种实施例中提供一种基于规则模型的音视频流解封装方法,包括:
获取音视频流,读取所述音视频流的第一个音视频数据包;
从预先设置的规则模型库中逐个读取规则模型,与所述第一个音视频数据包进行匹配,直至获得与所述第一个音视频数据包相匹配的规则模型或遍历完整个规则模型库为止;其中每个规则模型对应一种音视频的封装方式,规则模型中包括校验数据长度和一条或多条特征规则;
当获得与所述第一个音视频数据包相匹配的规则模型时,则获取该规则模型对应的封装方式,采用该封装方式对应的解封装方式对所述音视频流的后续音视频包进行解封装。
一种实施例中,所述校验数据长度指校验封装方式所需的所述第一个音视频数据包从头部开始的数据长度,所述特征规则表征在规则模型对应的封装方式下,音视频流的封装包头所需符合的条件。
一种实施例中,当采用某一规则模型进行匹配时,判断所述第一个音视频数据包中长度为该规则模型的校验数据长度的数据,是否符合该规则模型中的特征规则,根据所有特征规则的判断结果判断该规则模型是否与所述第一个音视频数据包相匹配。
一种实施例中,所述特征规则包括特征名称、数据定位信息、关系运算符和校验值,其中数据定位信息包括起始位置、结束位置和数据类型;对于每一条特征规则,取所述第一个音视频数据包中从所述起始位置到所述结束位置处的数据,采用与所述数据类型对应的比较方式,将该数据与所述校验值进行比较,若两者的关系与所述关系运算符所表示的关系相同,则判定所述第一个音视频数据包符合该特征规则,否则判定所述第一个音视频数据包不符合该特征规则。
一种实施例中,所述规则模型还包括特征规则间的逻辑运算符,所述根据所有特征规则的判断结果判断该规则模型是否与所述第一个音视频数据包相匹配,包括:
将所有特征规则的判断结果按该规则模型中特征规则间的逻辑运算符进行逻辑运算,当逻辑运算结果为真时则判定该规则模型与所述第一个音视频数据包相匹配,否则判定该规则模型与所述第一个音视频数据包不匹配。
一种实施例中,所述将所有特征规则的判断结果按该规则模型中特征规则间的逻辑运算符进行逻辑运算,当逻辑运算结果为真时则判定该规则模型与所述第一个音视频数据包相匹配,否则判定该规则模型与所述第一个音视频数据包不匹配,包括:
根据特征规则构建特征判定表达式用于表示特征规则的判断结果;
根据该规则模型中特征规则间的逻辑运算符将所有特征判定表达式组合成匹配判定表达式,当匹配判定表达式的运算结果为真时则判定该规则模型与所述第一个音视频数据包相匹配,否则判定该规则模型与所述第一个音视频数据包不匹配;其中所述特征判定表达式和所述匹配判定表达式均为一布尔表达式。
一种实施例中,所述音视频流解封装方法还包括:当遍历完整个规则模型库仍未获得与所述第一个音视频数据包相匹配的规则模型时,则判定所述音视频流的封装方式不被支持。
一种实施例中,所述音视频流解封装方法还包括:响应于用户操作对所述规则模型库中的规则模型进行添加、删除和修改。
根据第二方面,一种实施例中提供一种基于规则模型的音视频流解封装系统,包括:
音视频源接入模块,用于获取音视频流;
规则模型库,用于存储规则模型,其中每个规则模型对应一种音视频的封装方式,规则模型中包括校验数据长度和一条或多条特征规则,所述校验数据长度指校验封装方式所需的所述第一个音视频数据包从头部开始的数据长度,所述特征规则表征在规则模型对应的封装方式下,音视频流的封装包头所需符合的条件;
规则模型匹配模块,与所述音视频接入模块和所述规则模型库连接,用于读取所述音视频流的第一个音视频数据包,从所述规则模型库中逐个读取规则模型,与所述第一个音视频数据包进行匹配,直至获得与所述第一个音视频数据包相匹配的规则模型或遍历完整个规则模型库为止;当获得与所述第一个音视频数据包相匹配的规则模型时,则获取该规则模型对应的封装方式,并发送该封装方式对应的解封装方式,当遍历完整个规则模型库仍未获得与所述第一个音视频数据包相匹配的规则模型时,则判定所述音视频流的封装方式不被支持;其中,当采用某一规则模型进行匹配时,判断所述第一个音视频数据包中长度为该规则模型的校验数据长度的数据,是否符合该规则模型中的特征规则,根据所有特征规则的判断结果判断该规则模型是否与所述第一个音视频数据包相匹配;
解封装模块,与所述规则模型匹配模块连接,用于接收所述规则模型匹配模块发送的解封装方式,并调用相应的解封装库对所述音视频流后续的音视频包进行解封装。
根据第三方面,一种实施例中提供一种计算机可读存储介质,所述介质上存储有程序,所述程序能够被处理器执行以实现如上述第一方面所述的音视频流解封装方法。
依据上述实施例的基于规则模型的音视频流解封装方法和系统,通过为音视频的封装方式事先构建对应的规则模型并保存在规则模型库中,规则模型中包括校验数据长度和一条或多条特征规则;在解封装时,读取音视频流的第一个音视频数据包与规则模型库中的规则模型进行匹配,当获得相匹配的规则模型时,则可确定该音视频流的封装方式为所匹配的规则模型对应的封装方式,从而能够快速确定音视频封装方式,采用该封装方式对应的解封装方式对音视频流进行解封装,进而极大地缩短了音视频解封装的时间,相较于通过遍历调用解封装库直接进行解封装操作,其解封装速度有了极大提升。
附图说明
图1为一种实施例中的基于规则模型的音视频流解封装方法的流程图;
图2为一种音视频封装格式的示意图;
图3为一种实施例的基于规则模型的音视频流解封装系统的结构示意图;
图4为另一种实施例的基于规则模型的音视频流解封装系统的结构示意图。
具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。其中不同实施方式中类似元件采用了相关联的类似的元件标号。在以下的实施方式中,很多细节描述是为了使得本申请能被更好的理解。然而,本领域技术人员可以毫不费力的认识到,其中部分特征在不同情况下是可以省略的,或者可以由其他元件、材料、方法所替代。在某些情况下,本申请相关的一些操作并没有在说明书中显示或者描述,这是为了避免本申请的核心部分被过多的描述所淹没,而对于本领域技术人员而言,详细描述这些相关操作并不是必要的,他们根据说明书中的描述以及本领域的一般技术知识即可完整了解相关操作。
另外,说明书中所描述的特点、操作或者特征可以以任意适当的方式结合形成各种实施方式。同时,方法描述中的各步骤或者动作也可以按照本领域技术人员所能显而易见的方式进行顺序调换或调整。因此,说明书和附图中的各种顺序只是为了清楚描述某一个实施例,并不意味着是必须的顺序,除非另有说明其中某个顺序是必须遵循的。
本文中为部件所编序号本身,例如“第一”、“第二”等,仅用于区分所描述的对象,不具有任何顺序或技术含义。而本申请所说“连接”、“联接”,如无特别说明,均包括直接和间接连接(联接)。
请参考图1,一种实施例中基于规则模型的音视频流解封装方法包括步骤110~160,下面具体说明。
步骤110:获取音视频流,读取该音视频流的第一个音视频数据包。音视频流的传输协议可以是RTSP(Real Time Streaming Protocol,实时流传输协议)、RTMP(Real TimeMessaging Protocol,实时消息传输协议)、HLS(HTTP Live Streaming)等,也可以是安防领域监控设备的主流协议规范,比如GB/T 28181、onvif等协议。
步骤120:从预先设置的规则模型库中读取一个未匹配过的规则模型,与第一个音视频数据包进行匹配。
规则模型用于表示音视频封装方式的特征,其中每个规则模型对应一种音视频的封装方式,针对每种音视频的封装方式可以提取出其特征构建一规则模型,当读取的第一个音视频数据包和某一规则模型匹配时,则说明音视频流的封装方式为该规则模型对应的封装方式。
规则模型中包括校验数据长度和一条或多条特征规则,校验数据长度指校验封装方式所需的音视频流的第一个音视频数据包从头部开始的数据长度,特征规则表征在规则模型对应的封装方式下,音视频流的封装包头所需符合的条件。当采用某一规则模型进行匹配时,取第一个音视频数据包中长度与该规则模型的校验数据长度相等的数据,判断其是否符合该规则模型中的各特征规则,根据所有特征规则的判断结果判断该规则模型是否与第一个音视频数据包相匹配。
当前常用的封装方式基本上是在原始音视频流头部增加几十个字节的数据得到封装包头以对音视频流进行封装,一般封装包头包含头标识、帧长度、时间戳、帧标识等信息,通过对常用封装格式及多种私有格式进行分析可知,可根据封装方式的包头规则,来抽象出封装方式的规则模型。一种实施例中,特征规则包括特征名称、数据定位信息、关系运算符和校验值,其中特征名称由用户定义,其作用在于便于理解特征含义,例如可以定义为封装包头中的信息的名称,如头标识、帧长度或帧标识等,数据定位信息包括起始位置、结束位置和数据类型,关系运算符可以是例如小于、大于、小于等于、大于等于、等于、不等于等。根据以上特征规则,当判断第一个音视频数据包是否符合特征规则时,可以取第一个音视频数据包中从起始位置到结束位置处的数据,采用与数据定位信息中的数据类型对应的比较方式,将该数据与校验值进行比较,若两者的关系与关系运算符所表示的关系相同,则判定第一个音视频数据包符合该特征规则,否则判定第一个音视频数据包不符合该特征规则。
一种实施例中,规则模型中还包括特征规则间的逻辑运算符,可以将所有特征规则的判断结果按该规则模型中特征规则间的逻辑运算符进行逻辑运算来判断该规则模型是否与第一个音视频数据包相匹配,当逻辑运算结果为真时则判定该规则模型与第一个音视频数据包相匹配,否则判定该规则模型与第一个音视频数据包不匹配。
下面通过两个例子来说明规则模型。以某公司音视频私有封装方式(ZNVP封装方式)为例,ZNVP的封装方式如图2所示,其包头总共24个字节,头标识占8字节,固定为0x0100000001000000,时间戳占8字节,帧长度占4字节,帧标识占4字节,这里帧长度的值不会超过2097152,因此可构建ZNVP封装方式的规则模型如下:
校验数据长度:Lc=24Byte;
特征规则:
又如常用的PS流封装方式,其头标识占5字节,固定为0x000001BA,因此可构建特征规则如下:
一种实施例中,可以根据特征规则和逻辑运算符来构建判定表达式,通过判定表达式判断规则模型是否与第一个音视频数据包匹配,所构建的判定表达式称为匹配判定表达式。可以根据每条特征规则构建一个特征判定表达式用于表示特征规则的判断结果,然后将所有特征判定表达式根据该规则模型中特征规则间的逻辑运算符组成匹配判定表达式。如上述ZNVP封装方式的规则模型,其匹配判定表达式为(以C++为例):
uchar framflags[8]={0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00};
bool bResult=((0==memcmp(pBuf,framflags,8))&&*((unsigned int*)(pbuf+16)<2097152))
其中framflags为头标识的校验值数据,pBuf为第一个音视频数据包的起始位置,特征表达式0==memcmp(pBuf,framflags,8)根据第一条特征规则构建,特征表达式(unsigned int*)(pbuf+16)<2097152根据第二条特征规则构建,两个特征判定表达式根据该规则模型中特征规则间的逻辑运算符“与”(“&&”)组成了匹配判定表达式。当匹配判定表达式的运算结果为真时(即bResult=true)则判定该规则模型与第一个音视频数据包相匹配,否则判定该规则模型与第一个音视频数据包不匹配。
在有的实施例中,可以在匹配前读取规则模型库中的所有规则模型并生成相应的匹配判定表达式,将匹配判定表达式加载到缓存中,在匹配时直接从缓存中读取匹配判定表达式进行判定即可。
用户可通过交互界面进行规则模型的添加、编辑、删除和查询等操作,配置需要支持的所有音视频封装方式的规则模型。规则模型配置好后被保存到关系型数据库中形成规则模型库,关系型数据库可以是mysql数据库等。当用户添加新的规则模型或者对某个规则模型进行更新或者删除时,也会实时地在缓存中添加、更新或者删除此规则模型,从而保证了规则模型可以实时增加、更新或者删除并立即生效。
步骤130:判断当前规则模型是否与第一个音视频数据包匹配,若是则执行步骤140,否则执行步骤150。
步骤140:获取该规则模型对应的封装方式,采用该封装方式对应的解封装方式对音视频流的后续音视频包进行解封装。
步骤150:判断是否已遍历完整个规则模型库,若是则执行步骤160,否则执行步骤120。
步骤160:判定该音视频流的封装方式不被支持,并通过交互界面提示用户。
本申请还提供一种基于规则模型的音视频流解封装系统,请参考图3,一种实施例中该系统包括音视频源接入模块1、规则模型库2、规则模型匹配模块3和解封装模块4,下面分别说明。
音视频源接入模块1用于获取音视频流,音视频流的传输协议可以是RTSP、RTMP、HLS等,也可以是安防领域监控设备的主流协议规范,比如GB/T 28181、onvif等协议。
规则模型库2用于存储规则模型,其中每个规则模型对应一种音视频的封装方式,针对每种音视频的封装方式可以提取出其特征构建一规则模型。规则模型用于和音视频流进行匹配,可以读取音视频流的第一个音视频数据包和规则模型进行匹配,当第一个音视频数据包和某一规则模型匹配时,则说明音视频流的封装方式为该规则模型对应的封装方式。
规则模型中包括校验数据长度和一条或多条特征规则,校验数据长度指校验封装方式所需的音视频流的第一个音视频数据包从头部开始的数据长度,特征规则表征在规则模型对应的封装方式下,音视频流的封装包头所需符合的条件。当采用某一规则模型进行匹配时,取第一个音视频数据包中长度与该规则模型的校验数据长度相等的数据,判断其是否符合该规则模型中的各特征规则,根据所有特征规则的判断结果判断该规则模型是否与第一个音视频数据包相匹配。
当前常用的封装方式基本上是在原始音视频流头部增加几十个字节的数据得到封装包头以对音视频流进行封装,一般封装包头包含头标识、帧长度、时间戳、帧标识等信息,通过对常用封装格式及多种私有格式进行分析可知,可根据封装方式的包头规则,来抽象出封装方式的规则模型。一种实施例中,特征规则包括特征名称、数据定位信息、关系运算符和校验值,其中特征名称由用户定义,其作用在于便于理解特征含义,例如可以定义为封装包头中的信息的名称,如头标识、帧长度或帧标识等,数据定位信息包括起始位置、结束位置和数据类型,关系运算符可以是例如小于、大于、小于等于、大于等于、等于、不等于等。根据以上特征规则,当判断第一个音视频数据包是否符合特征规则时,可以取第一个音视频数据包中从起始位置到结束位置处的数据,采用与数据定位信息中的数据类型对应的比较方式,将该数据与校验值进行比较,若两者的关系与关系运算符所表示的关系相同,则判定第一个音视频数据包符合该特征规则,否则判定第一个音视频数据包不符合该特征规则。
一种实施例中,规则模型中还包括特征规则间的逻辑运算符,可以将所有特征规则的判断结果按该规则模型中特征规则间的逻辑运算符进行逻辑运算来判断该规则模型是否与第一个音视频数据包相匹配,当逻辑运算结果为真时则判定该规则模型与第一个音视频数据包相匹配,否则判定该规则模型与第一个音视频数据包不匹配。
下面通过两个例子来说明规则模型。以某公司音视频私有封装方式(ZNVP封装方式)为例,ZNVP的封装方式如图2所示,其包头总共24个字节,头标识占8字节,固定为0x0100000001000000,时间戳占8字节,帧长度占4字节,帧标识占4字节,这里帧长度的值不会超过2097152,因此可构建ZNVP封装方式的规则模型如下:
校验数据长度:Lc=24Byte;
特征规则:
又如常用的PS流封装方式,其头标识占5字节,固定为0x000001BA,因此可构建特征规则如下:
规则模型匹配模块3与音视频接入模块1和规则模型库2连接,用于读取音视频流的第一个音视频数据包,并从规则模型库2中逐个读取规则模型,与第一个音视频数据包进行匹配,直至获得与第一个音视频数据包相匹配的规则模型或遍历完整个规则模型库2为止。
一种实施例中,规则模型匹配模块3可以根据特征规则和逻辑运算符来构建判定表达式,通过判定表达式判断规则模型是否与第一个音视频数据包匹配,所构建的判定表达式称为匹配判定表达式。可以根据每条特征规则构建一个特征判定表达式用于表示特征规则的判断结果,然后将所有特征判定表达式根据该规则模型中特征规则间的逻辑运算符组成匹配判定表达式。如上述ZNVP封装方式的规则模型,其匹配判定表达式为(以C++为例):
uchar framflags[8]={0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00};
bool bResult=((0==memcmp(pBuf,framflags,8))&&*((unsigned int*)(pbuf+16)<2097152))
其中framflags为头标识的校验值数据,pBuf为第一个音视频数据包的起始位置,特征表达式0==memcmp(pBuf,framflags,8)根据第一条特征规则构建,特征表达式(unsigned int*)(pbuf+16)<2097152根据第二条特征规则构建,两个特征判定表达式根据该规则模型中特征规则间的逻辑运算符“与”(“&&”)组成了匹配判定表达式。当匹配判定表达式的运算结果为真时(即bResult=true)则判定该规则模型与第一个音视频数据包相匹配,否则判定该规则模型与第一个音视频数据包不匹配。
在有的实施例中,规则模型匹配模块3可以在匹配前读取规则模型库2中的所有规则模型并生成相应的匹配判定表达式,将匹配判定表达式加载到缓存中,在匹配时直接从缓存中读取匹配判定表达式进行判定即可。
当获得与第一个音视频数据包相匹配的规则模型时,规则模型匹配模块3获取该规则模型对应的封装方式,并发送该封装方式对应的解封装方式给解封装模块4,当遍历完整个规则模型库2仍未获得与第一个音视频数据包相匹配的规则模型时,则判定音视频流的封装方式不被支持并通过交互界面提示用户。
解封装模块4与规则模型匹配模块3连接,用于接收规则模型匹配模块3发送的解封装方式,并调用相应的解封装库对音视频流后续的音视频包进行解封装,生成音视频裸流,并推送裸流给解码库进行解码或者其他第三方应用。
请参考图4,一种实施例中,基于规则模型的音视频流解封装系统还包括规则模型管理模块5,规则模型管理模块5用于提供交互界面供用户进行规则模型的添加、删除和修改等操作,并响应于用户操作对规则模型库2中的规则模型作相应的更新。用户可通过交互界面配置需要支持的所有音视频封装方式的规则模型,规则模型配置好后被保存到关系型数据库中形成规则模型库2,关系型数据库可以是mysql数据库等。当用户添加新的规则模型或者对某个规则模型进行更新或者删除时,模型管理模块5也会实时地规则模型匹配模块3在缓存中添加、更新或者删除此规则模型,从而保证了规则模型可以实时增加、更新或者删除并立即生效。
依据上述实施例的基于规则模型的音视频流解封装方法和系统,通过为音视频的封装方式事先构建对应的规则模型并保存在规则模型库中,在解封装时,读取音视频流的第一个音视频数据包与规则模型库中的规则模型进行匹配,当获得相匹配的规则模型时,则可确定该音视频流的封装方式为所匹配的规则模型对应的封装方式,从而能够快速确定音视频封装方式,采用该封装方式对应的解封装方式对音视频流进行解封装,进而极大地缩短了音视频解封装的时间。通过实际应用发现,本申请提供的音视频流解封装方法相较于通过遍历调用解封装库直接进行解封装操作的方法大约快2-4倍,极大地提升了音视频流解封装的速度。同时用户可通过对规则模型进行增删改,实现对各种音视频封装方式的灵活支持,解决了添加和修改解封装方式不够灵活的问题。
本领域技术人员可以理解,上述实施方式中各种方法的全部或部分功能可以通过硬件的方式实现,也可以通过计算机程序的方式实现。当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器、随机存储器、磁盘、光盘、硬盘等,通过计算机执行该程序以实现上述功能。例如,将程序存储在设备的存储器中,当通过处理器执行存储器中程序,即可实现上述全部或部分功能。另外,当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序也可以存储在服务器、另一计算机、磁盘、光盘、闪存盘或移动硬盘等存储介质中,通过下载或复制保存到本地设备的存储器中,或对本地设备的系统进行版本更新,当通过处理器执行存储器中的程序时,即可实现上述实施方式中全部或部分功能。
以上应用了具体个例对本发明进行阐述,只是用于帮助理解本发明,并不用以限制本发明。对于本发明所属技术领域的技术人员,依据本发明的思想,还可以做出若干简单推演、变形或替换。
Claims (10)
1.一种基于规则模型的音视频流解封装方法,其特征在于,包括:
获取音视频流,读取所述音视频流的第一个音视频数据包;
从预先设置的规则模型库中逐个读取规则模型,与所述第一个音视频数据包进行匹配,直至获得与所述第一个音视频数据包相匹配的规则模型或遍历完整个规则模型库为止;其中每个规则模型对应一种音视频的封装方式,规则模型中包括校验数据长度和一条或多条特征规则;
当获得与所述第一个音视频数据包相匹配的规则模型时,则获取该规则模型对应的封装方式,采用该封装方式对应的解封装方式对所述音视频流的后续音视频包进行解封装。
2.如权利要求1所述的音视频流解封装方法,其特征在于,所述校验数据长度指校验封装方式所需的所述第一个音视频数据包从头部开始的数据长度,所述特征规则表征在规则模型对应的封装方式下,音视频流的封装包头所需符合的条件。
3.如权利要求2所述的音视频流解封装方法,其特征在于,当采用某一规则模型进行匹配时,判断所述第一个音视频数据包中长度为该规则模型的校验数据长度的数据,是否符合该规则模型中的特征规则,根据所有特征规则的判断结果判断该规则模型是否与所述第一个音视频数据包相匹配。
4.如权利要求2所述的音视频流解封装方法,其特征在于,所述特征规则包括特征名称、数据定位信息、关系运算符和校验值,其中数据定位信息包括起始位置、结束位置和数据类型;对于每一条特征规则,取所述第一个音视频数据包中从所述起始位置到所述结束位置处的数据,采用与所述数据类型对应的比较方式,将该数据与所述校验值进行比较,若两者的关系与所述关系运算符所表示的关系相同,则判定所述第一个音视频数据包符合该特征规则,否则判定所述第一个音视频数据包不符合该特征规则。
5.如权利要求4所述的音视频流解封装方法,其特征在于,所述规则模型还包括特征规则间的逻辑运算符,所述根据所有特征规则的判断结果判断该规则模型是否与所述第一个音视频数据包相匹配,包括:
将所有特征规则的判断结果按该规则模型中特征规则间的逻辑运算符进行逻辑运算,当逻辑运算结果为真时则判定该规则模型与所述第一个音视频数据包相匹配,否则判定该规则模型与所述第一个音视频数据包不匹配。
6.如权利要求5所述的音视频流解封装方法,其特征在于,所述将所有特征规则的判断结果按该规则模型中特征规则间的逻辑运算符进行逻辑运算,当逻辑运算结果为真时则判定该规则模型与所述第一个音视频数据包相匹配,否则判定该规则模型与所述第一个音视频数据包不匹配,包括:
根据特征规则构建特征判定表达式用于表示特征规则的判断结果;
根据该规则模型中特征规则间的逻辑运算符将所有特征判定表达式组合成匹配判定表达式,当匹配判定表达式的运算结果为真时则判定该规则模型与所述第一个音视频数据包相匹配,否则判定该规则模型与所述第一个音视频数据包不匹配;其中所述特征判定表达式和所述匹配判定表达式均为一布尔表达式。
7.如权利要求1所述的音视频流解封装方法,其特征在于,还包括:当遍历完整个规则模型库仍未获得与所述第一个音视频数据包相匹配的规则模型时,则判定所述音视频流的封装方式不被支持。
8.如权利要求1所述的音视频流解封装方法,其特征在于,还包括:响应于用户操作对所述规则模型库中的规则模型进行添加、删除和修改。
9.一种基于规则模型的音视频流解封装系统,其特征在于,包括:
音视频源接入模块,用于获取音视频流;
规则模型库,用于存储规则模型,其中每个规则模型对应一种音视频的封装方式,规则模型中包括校验数据长度和一条或多条特征规则,所述校验数据长度指校验封装方式所需的音视频流的第一个音视频数据包从头部开始的数据长度,所述特征规则表征在规则模型对应的封装方式下,音视频流的封装包头所需符合的条件;
规则模型匹配模块,与所述音视频接入模块和所述规则模型库连接,用于读取所述音视频流的第一个音视频数据包,从所述规则模型库中逐个读取规则模型,与所述第一个音视频数据包进行匹配,直至获得与所述第一个音视频数据包相匹配的规则模型或遍历完整个规则模型库为止;当获得与所述第一个音视频数据包相匹配的规则模型时,则获取该规则模型对应的封装方式,并发送该封装方式对应的解封装方式,当遍历完整个规则模型库仍未获得与所述第一个音视频数据包相匹配的规则模型时,则判定所述音视频流的封装方式不被支持;其中,当采用某一规则模型进行匹配时,判断所述第一个音视频数据包中长度为该规则模型的校验数据长度的数据,是否符合该规则模型中的特征规则,根据所有特征规则的判断结果判断该规则模型是否与所述第一个音视频数据包相匹配;
解封装模块,与所述规则模型匹配模块连接,用于接收所述规则模型匹配模块发送的解封装方式,并调用相应的解封装库对所述音视频流后续的音视频包进行解封装。
10.一种计算机可读存储介质,其特征在于,所述介质上存储有程序,所述程序能够被处理器执行以实现如权利要求1-8中任一项所述的音视频流解封装方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210060349.9A CN114501116A (zh) | 2022-01-19 | 2022-01-19 | 一种基于规则模型的音视频流解封装方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210060349.9A CN114501116A (zh) | 2022-01-19 | 2022-01-19 | 一种基于规则模型的音视频流解封装方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114501116A true CN114501116A (zh) | 2022-05-13 |
Family
ID=81471958
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210060349.9A Pending CN114501116A (zh) | 2022-01-19 | 2022-01-19 | 一种基于规则模型的音视频流解封装方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114501116A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101917609A (zh) * | 2010-08-13 | 2010-12-15 | 四川长虹电器股份有限公司 | 嵌入式流媒体文件格式识别方法 |
CN104158627A (zh) * | 2014-08-25 | 2014-11-19 | 北京邮电大学 | 一种异构链路多协议的自动识别系统和方法 |
CN109246158A (zh) * | 2018-11-20 | 2019-01-18 | 北京数码视讯软件技术发展有限公司 | 视频解码方法和装置 |
CN111787396A (zh) * | 2020-07-28 | 2020-10-16 | 北京金山云网络技术有限公司 | 一种视频流解析方法及装置 |
-
2022
- 2022-01-19 CN CN202210060349.9A patent/CN114501116A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101917609A (zh) * | 2010-08-13 | 2010-12-15 | 四川长虹电器股份有限公司 | 嵌入式流媒体文件格式识别方法 |
CN104158627A (zh) * | 2014-08-25 | 2014-11-19 | 北京邮电大学 | 一种异构链路多协议的自动识别系统和方法 |
CN109246158A (zh) * | 2018-11-20 | 2019-01-18 | 北京数码视讯软件技术发展有限公司 | 视频解码方法和装置 |
CN111787396A (zh) * | 2020-07-28 | 2020-10-16 | 北京金山云网络技术有限公司 | 一种视频流解析方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1329108B1 (en) | System and method of processing mpeg streams for file index insertion | |
JP6867441B2 (ja) | 音声要求を処理するための方法および装置 | |
BR112016027639B1 (pt) | Processador de dados e transporte de dados de controle do usuário aos decodificadores e renderizadores de áudio | |
CN105049920B (zh) | 一种多媒体文件的录制方法和装置 | |
US11100956B2 (en) | MP4 file processing method and related device | |
WO2020155964A1 (zh) | 音视频的切换方法、装置、计算机设备及可读存储介质 | |
JP2007012112A (ja) | データ記録装置及びその方法、プログラム、記録媒体 | |
US8401370B2 (en) | Application tracks in audio/video containers | |
CN105049904B (zh) | 一种多媒体文件的播放方法和装置 | |
KR20050104356A (ko) | 정보 처리 장치, 및 정보 처리 방법, 및 컴퓨터 프로그램 | |
US20060059509A1 (en) | System and method for embedding commercial information in a video bitstream | |
WO2024061005A1 (zh) | 一种音视频缓冲区读取处理方法及装置 | |
US9237363B2 (en) | Dynamic injection of metadata into flash video | |
KR101112736B1 (ko) | 휴대용 콘텐츠 재생 장치와 콘텐츠 저장 장치 간 콘텐츠상태 목록의 동기화 방법, 휴대용 콘텐츠 재생 장치,콘텐츠 저장 장치 | |
US8688737B2 (en) | Method and apparatus for generating and reproducing media object-based metadata | |
JP4719506B2 (ja) | 端末装置、コンテンツ再生方法、及びコンピュータプログラム | |
JP2006074391A (ja) | ファイル記録方法および記録装置 | |
JP6834967B2 (ja) | 情報処理装置および情報処理方法 | |
CN114501116A (zh) | 一种基于规则模型的音视频流解封装方法和系统 | |
CN101485200B (zh) | 视频信号处理设备和视频信号处理方法 | |
CN110663250B (zh) | 信息处理设备、信息记录介质和信息处理方法 | |
WO2018190122A1 (ja) | 情報処理装置、および情報処理方法、並びにプログラム | |
CN102473444B (zh) | 内容管理服务器及内容管理方法 | |
CN111326176A (zh) | 基于opus编码的rtp包的检测方法、装置及介质 | |
US20070002166A1 (en) | File format translation |
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 |