CN103002353A - 对多媒体文件进行封装的方法及装置 - Google Patents
对多媒体文件进行封装的方法及装置 Download PDFInfo
- Publication number
- CN103002353A CN103002353A CN2011102810993A CN201110281099A CN103002353A CN 103002353 A CN103002353 A CN 103002353A CN 2011102810993 A CN2011102810993 A CN 2011102810993A CN 201110281099 A CN201110281099 A CN 201110281099A CN 103002353 A CN103002353 A CN 103002353A
- Authority
- CN
- China
- Prior art keywords
- original
- encapsulation
- target
- parameter
- coding
- 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
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明提供了一种对多媒体文件进行封装的方法及装置,该方法中,A、判定原始文件具有封装层,解析封装层获得原始封装格式、原始编码格式及原始编码参数;B、在判定原始封装格式与目标封装格式相同时,判断是否需要重新编解码,如果是,执行步骤C,否则输出原始文件;在判定原始封装格式与目标封装格式不同时,判断是否需要重新编解码,如果是,执行步骤C,否则,剥离原始文件的封装格式获得裸码流,执行步骤D;C、对裸码流进行解码和编码,获得编码后的码流;D、根据目标封装格式和目标封装参数,对编码后的码流或裸码流进行封装打包,输出打包后的数据。采用本发明的方法及装置,能够降低对图像质量的损失及系统资源消耗,提高工作效率。
Description
技术领域
本发明涉及封装技术,特别涉及一种对多媒体文件进行封装的方法及装置。
背景技术
视频格式可以分为适合本地播放的本地影像视频和适合网络中播放的网络流媒体影像视频两大类。尽管网络流媒体影像视频在播放的稳定性和播放画面质量上可能没有本地影像视频优秀,但网络流媒体影像视频被广泛应用于视频点播、网络演示、远程教育、网络视频广告等互联网领域。
由于本地影像视频的视频格式可能不适合网络中传播,则需要在进行网络传播前,将本地影像视频的视频格式转换为网络流媒体影像视频的视频格式,并进行封装。图1为现有的对多媒体文件进行封装的方法。如图1所示,现有的对多媒体文件进行封装的方法包括:
步骤11,解码接收到的多媒体文件,获得解码后的音频数据或视频数据;
该步骤具体包括:对接收到的多媒体文件进行解析,获得原始编码参数及原始编码格式;根据原始编码参数及原始编码格式,对多媒体文件进行解码,获得解码后的音频数据或视频数据。
步骤12,按照目标编码格式和目标编码参数,对解码后的音频数据或解码后的视频数据进行编码;
该步骤具体包括:按照网络传播所设定的目标编码格式和目标编码参数,对解码后的音频数据或解码后的视频数据重新进行编码,获得重新编码后的音频数据或重新编码后的视频数据。
步骤13,对编码后的码流进行封装;
该步骤具体包括:按照网络传播所设定的封装格式,将重新编码后的音频数据和重新编码后的视频数据整合到一个文件中,获得封装后的多媒体文件。
现有的对多媒体文件进行封装的方法中,不论接收到的多媒体文件的原始编码格式是否符合网络传播所设定的目标编码格式,都需要对接收到的多媒体文件进行解码、再编码和封装的操作,这样,在网络传播多媒体文件的过程中,就会存在系统资源消耗较大、图像质量有损失、工作效率较低等问题。
发明内容
有鉴于此,本发明的目的在于提供一种对多媒体文件进行封装的方法,该方法能够降低对图像质量的损失及系统资源消耗,提高工作效率。
本发明的目的在于提供一种对多媒体文件进行封装的装置,该装置能够降低对图像质量的损失及系统资源消耗,提高工作效率。
为达到上述目的,本发明的技术方案具体是这样实现的:
一种对多媒体文件进行封装的方法,该方法包括:
A、判定接收到的原始文件具有封装层,解析封装层获得原始封装格式、原始编码格式及原始编码参数;
B、在判定原始封装格式与目标封装格式相同时,判断是否需要重新编解码,如果是,执行步骤C,否则,输出原始文件;
在判定原始封装格式与目标封装格式不同时,判断是否需要重新编解码,如果是,执行步骤C,否则,剥离原始文件的封装格式获得裸码流,执行步骤D;
C、根据原始编码格式、原始编码参数、预设的目标编码格式及预设的目标编码参数,对原始文件的裸码流进行解码和编码,获得编码后的码流;
D、根据设定的目标封装格式和目标封装参数,对编码后的码流或裸码流进行封装打包,输出打包后的数据;
所述裸码流为音视频模拟信号按照设定的编码格式和编码参数编码后未加封装的码流。
较佳地,所述步骤A之前进一步包括:
A’、判定接收到的原始文件无封装层,解析原始文件的裸码流,获得原始编码格式和原始编码参数,执行步骤A”;
A”、判断是否需要重新编解码,如果是,执行步骤C,否则执行步骤D。
上述方法中,步骤B所述判断是否需要重新编解码为:判定原始编码格式与预设的目标编码格式相同,则无需重新编解码,判定原始编码格式与预设的目标编码格式不同,则需要重新编解码。
上述方法中,步骤B所述判断是否需要重新编解码为:判断原始编码格式与预设的目标编码格式相同、且原始编码参数与预设的目标编码参数相同,则无需重新编解码,否则需要重新编解码。
上述方法中,步骤B所述剥离原始文件的封装格式获得裸码流包括:
B1、解析原始封装格式,获得原始文件的裸码流的片段的起始地址及长度;
B2、根据裸码流的片段的起始地址及长度,从原始文件中获得裸码流。
上述方法中,其特征在于,所述步骤D包括:
D1、初始化封装参数,获得目标封装格式和目标封装参数;所述目标封装参数为目标视频封装参数或目标音频封装参数;
D2、判断当前帧是否为视频帧,如果是,执行步骤D3,否则执行步骤D7;
D3、判定视频帧为I帧时,生成第一实时传输协议RTP包头及第一RTP包头扩展字段;
D4、判断原始编码格式是否为标准H.264编码,如果是,执行步骤D5,否则执行步骤D6;
D5、根据目标封装格式和目标视频封装参数,以网络抽象层单元NALU为基本单位进行RTP打包,生成第三RTP包头,并添加视频帧所包含的视频数据到负载,生成打包后的视频数据并输出;
D6、根据目标封装格式和目标视频封装参数,生成第三RTP包头,并添加视频帧所包含的视频数据到负载,生成打包后的视频数据并输出;
D7、根据目标封装格式和目标音频封装参数,生成第二RTP包头,并添加音频帧所包含的音频数据到负载,生成打包后的音频数据并输出;
所述第一RTP包头及所述第一RTP包头扩展字段用以指示所述视频帧的类型为I帧;所述第二RTP包头用以指示该数据包包含的是音频数据;所述第三RTP包头用以该数据包包含的是视频数据。
一种对多媒体文件进行封装的装置,该装置包括:
封装解析模块,判定接收到的原始文件具有封装层,解析封装层获得原始封装格式、原始编码参数及原始编码格式,判定原始封装格式与目标封装格式相同,在无需编解码时,输出原始文件,在需要编解码时,输出原始文件、原始编码格式及原始编码参数至数据编码模块;
所述封装解析模块判定原始封装格式与目标封装格式不同,在需要编解码时,输出原始文件、原始编码格式及原始编码参数至数据编码模块,在无需编解码时,输出原始文件至数据剥离模块;
数据编码模块,根据原始编码格式、原始编码参数、目标编码格式和目标编码参数,对原始文件的裸码流进行解码和编码,输出编码后的码流至数据封装模块;
数据剥离模块,剥离原始文件的封装格式,获得原始文件的裸码流;所述裸码流为音视频模拟信号按照设定的编码格式和编码参数编码后未加封装的码流;
数据封装模块,初始化封装参数,获得目标封装格式和目标封装参数,在确认接收到的数据为音频帧时,根据封装参数,生成第二RTP包头,打包音频数据并输出,在确认接收到的数据为视频帧时,根据视频帧的帧类型和封装参数,生成RTP包头,打包视频数据并输出;
所述封装参数包含目标封装格式和目标封装参数。
较佳地,所述封装解析模块进一步判定接收到的原始文件不具有封装层时,解析原始文件的裸码流,获得原始编码格式和原始编码参数,根据预设的目标编码格式,确认裸码流无需重新编码时,输出裸码流至数据封装模块,确认裸码流需要重新编码时,输出裸码流至数据编码模块。
上述装置中,所述封装解析模块包括:
封装判断单元,判定接收到的原始文件不具有封装层时,解析裸码流获得原始编码参数及原始编码格式,输出裸码流、原始编码参数及原始编码格式至编码判断单元,判定接收到的原始文件具有封装层,解析封装层获得原始封装格式、原始编码参数及原始编码格式,输出原始文件、原始封装格式、原始编码参数及原始编码格式至编码判断单元;
编码判断单元,确认裸码流的原始编码格式与目标编码格式相同,输出裸码流至数据封装模块,确认裸码流的原始编码格式与目标编码格式不同,输出裸码流、原始编码格式及原始编码参数至数据编码模块;
所述编码判断单元确认原始封装格式与目标封装格式相同,且原始编码格式与目标编码格式相同,输出原始文件;
所述编码判断单元确认原始封装格式与目标封装格式不同,在原始编码格式与目标编码格式相同时,输出原始文件、原始编码参数及原始编码格式至数据剥离模块,在原始编码格式与目标编码格式不同时,输出原始文件、原始编码参数及原始编码格式至数据编码模块。
上述方法中,所述数据封装模块包括:
类型判断单元,初始化封装参数时,获得目标封装格式和目标封装参数,判定接收到的数据为视频帧,则将接收到的视频数据、目标视频封装格式及目标视频封装参数输出至视频封装单元,判定接收到的数据为音频帧,则将接收到的音频数据、目标音频封装格式及目标音频封装参数输出至音频封装单元;所述目标封装参数为目标视频封装参数或目标音频封装参数;
视频封装单元,根据接收到的视频数据判断帧类型,判定视频数据为I帧时,生成第一RTP包头及第一RTP包头扩展字段,判定视频数据为标准H.264编码时,查找NALU并打包视频数据,生成第三RTP包头,判定视频数据为非标准H.264编码时,生成第三RTP包头并打包视频数据,输出打包后的视频数据;
音频封装单元,根据接收到的音频数据,生成第二RTP包头并打包音频数据,输出打包后的音频数据;
所述第一RTP包头及所述第一RTP包头扩展字段用以指示所述视频帧的类型为I帧;所述第二RTP包头用以指示该数据包包含的为音频数据;所述第三RTP包头用以指示该数据包含的为视频数据。
由上述的技术方案可见,本发明提供了一种对多媒体文件进行封装的方法及装置,对接收到的原始文件的封装层进行解析,获得原始文件的封装格式、原始编码参数和原始编码格式,在原始文件的封装格式与目标封装格式不同、原始编码格式与目标编码格式相同的情况下,省略了解码和再编码的操作,直接按照目标封装格式和目标封装参数,对原始文件包含的数据进行重新封装,降低了解码和再编码对图像质量的损失,并且降低了系统资源消耗,提高了工作效率。
附图说明
图1为现有的对多媒体文件进行封装的方法流程图。
图2为本发明对多媒体文件进行封装的方法流程图。
图3为本发明对码流进行封装打包的方法流程图。
图4为本发明对多媒体文件进行封装的装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案、及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
本发明提及的对多媒体文件进行的封装,其实是对多媒体文件进行重新封装,也就是根据接收设备的要求或网络传播的要求,对现有的多媒体文件的封装方法进行改进;具体地,在原始文件的封装格式和编码格式符合上述要求时,不再进行解码、编码和重新封装,直接输出原始文件,在原始文件的编码格式符合上述要求而封装格式不符合上述要求时,不再进行解码和编码,而仅进行重新封装,只有在原始文件的封装格式和编码格式都不符合上述要求时,才进行解码、编码和重新封装,不仅降低对图像质量的损失及系统资源消耗,而且提高了工作效率。
图2为本发明对多媒体文件进行封装的方法流程图。现结合图2,对本发明的对多媒体文件进行封装的方法进行说明,具体如下:
步骤21:判断接收到的原始文件是否具有封装层,如果是,执行步骤22,否则执行步骤24;
本发明中提及的接收到的原始文件指代的是本地设备中待发送至网络传播的多媒体文件,其可为将裸码流加了封装层的文件,也可为裸码流。
该步骤具体为,对接收到的原始文件进行解析,根据解析结果判断原始文件是否具有封装层,如果没有封装层,则判定为裸码流,执行步骤24,如果具有封装层,则执行步骤22。
本发明提及的裸码流是音视频模拟信号按照设定的编码格式和编码参数编码后未加封装的码流;其中,音视频模拟信号为用以进行音视频采集的前端设备所输出的模拟信号。
本发明可采用现有的标志位检测的方法对原始文件的封装层进行探测,以判断原始文件是否具有封装层,在此不再对具体的检测判断方法进行赘述。
步骤22:判断原始封装格式是否为目标封装格式,如果是,执行步骤23,否则执行步骤24;
本发明提及的目标封装格式是指符合传输要求且符合接收设备播放需求的封装格式,比如:符合网络传播要求的封装格式、或符合本地播放要求的封装格式等。
该步骤中,判断原始封装格式是否为目标封装格式具体为:通过对原始文件的封装层的解析并对标志位进行检测,根据标志位的数值确定原始文件所采用的原始封装格式,判断原始封装格式是否为目标封装格式。
其中,本发明中提及的对原始文件的封装层的标志位进行检测,以获得封装格式的方法是采用多次识别、比较和判断标志位的方法,来确定原始文件所采用的封装格式,在此不再赘述。
步骤23:判断从封装层获取的原始编码格式是否与目标编码格式相同,如果是,执行步骤28,否则,执行步骤26;
原始编码格式为待重新封装或转码的原始文件所采用的音视频编码格式,具体可分为原始音频编码格式和原始视频编码格式;本发明的目标编码格式为符合接收设备播放需求的编码格式,具体可分为目标音频编码格式和目标视频编码格式。
该步骤包括:步骤231,解析原始文件的封装层,判断原始文件中是否存在视频流,如果是,执行步骤232,否则执行步骤234;步骤232,解析封装层中的视频流信息,获得原始视频编码格式;步骤233,判断原始视频编码格式是否与目标视频编码格式相同,如果是,执行步骤28,否则执行步骤26;步骤234,解析封装层中的音频流信息,获得原始音频编码格式;步骤235,判断原始音频编码格式是否与目标音频编码格式相同,如果是,执行步骤28,否则执行步骤26。
本发明可根据现有的封装标准,对封装层的解析结果进行分析,根据解析结果中的特定标志位,确定原始编码格式,具体方法在此不再赘述。
根据步骤22及步骤23确定原始文件的封装格式为目标封装格式,且原始文件所包含的裸码流采用的原始编码格式为目标编码格式,则无需对原始文件的裸码流进行编解码和再封装操作,可直接输出原始文件;根据步骤22及步骤23确定原始文件的封装格式为目标封装格式,但原始文件所包含的裸码流采用的原始编码格式与目标编码格式不同,则需要对原始文件进行编解码和再封装操作。
步骤24:判断从封装层或裸码流中获取的原始编码格式是否与目标编码格式相同,如果是,执行步骤25,否则执行步骤26;
该步骤包括:步骤241,解析原始文件的封装层或裸码流,判断原始文件中是否存在视频流,如果是,执行步骤242,否则执行步骤244;步骤242,解析封装层或裸码流中的视频流信息,获得原始视频编码格式;步骤243,判断原始视频编码格式是否与目标视频编码格式相同,如果是,执行步骤25,否则执行步骤26;步骤244,解析封装层或裸码流中的音频流信息,获得原始音频编码格式;步骤245,判断原始音频编码格式是否与目标音频编码格式相同,如果是,执行步骤25,否则执行步骤26。
本发明可根据现有的封装标准,对封装层的解析结果进行分析,根据解析结果中的特定标志位,确定原始编码格式,具体方法在此不再赘述。
本发明可对裸码流的标志位进行检测,根据标志位的数值确定原始编码格式,具体方法在此不再赘述。
步骤25:获得原始文件的裸码流,之后执行步骤27;
该步骤的裸码流可为接收到的无封装层的原始文件,或者为剥离原始文件的封装格式获得的裸码流。
剥离原始文件的封装格式具体包括:步骤251,判断原始文件是否具有封装层,如果是,执行步骤252,否则执行步骤27;步骤252,查找封装层中的标志位,确定原始文件的封装格式;步骤253,解析原始文件的封装格式,获得裸码流的片段的起始地址及长度;步骤254,根据裸码流的片段的起始地址及长度,从原始文件中剥离掉封装层,获得裸码流,之后执行步骤27。
下面以AVI(Audio Video Interactive)文件为例进行说明,具体如下:
步骤251’,判断原始文件是否具有封装层,如果是,执行步骤252,否则执行步骤27;步骤252’,判断原始文件的标志位是否为“RIFF AVI”,如果是,则证明是AVI格式,执行步骤253’,否则,继续读取标志位并确定其具体的封装格式;步骤253’,读取AVI文件头并解析标志位,比如,hdrl list、strl list、movi list、idxl chunk等,获得AVI文件中包含的音频流、视频流或字幕流等信息及用以记录片段的起始地址及长度的索引表;步骤254’,根据索引表包含的信息,对AVI文件进行解析,获得音频流数据或视频流数据。
步骤26:对原始文件的裸码流进行解码和编码,获得编码后的码流;
该步骤包括:步骤261,对原始文件的封装层进行解析,获得原始视频编码参数或原始音频编码参数;步骤262,根据原始视频编码参数或原始音频编码参数,对原始文件的裸码流进行解码;步骤263,根据目标视频编码参数或目标音频编码参数,对解码后的数据进行编码,获得编码后的码流。
其中,编码后的码流为编码后的视频数据或编码后的音频数据。
原始编码参数为待重新封装或转码的原始文件的音视频编码参数,具体可分为原始音频编码参数和原始视频编码参数,比如,原始视频编码参数可包含视频码率、帧率、宽度和高度等,原始音频编码参数可包含音频声道数、音频采样率和音频码率等信息。
步骤27:根据设定的封装类型,对码流进行封装打包,之后执行步骤29;
该步骤的具体实现方法可采用如图3所示的方法。
步骤28:输出原始文件;
该原始文件的原始封装格式与目标封装相同,且原始编码格式与目标编码格式相同的文件。
步骤29:结束。
图3为本发明对码流进行封装打包的方法流程图。如图3所示,本发明对码流进行封装打包的方法如下:
本发明中提及的封装就是将已经编码或处理后的视频码流和音频码流按照一定的格式进行存储的方法。
步骤301:判断是否初始化封装参数,如果是,执行步骤302,否则执行步骤303;
该步骤中初始化封装参数即为设定目标封装格式和目标封装参数。目标封装格式可采用现有的3GP、WMV、RM、TS、PS、rtp等格式。
步骤302:设定目标封装格式和目标封装参数;
按照网络传播的要求或接收设备播放的要求,设定目标封装格式和目标封装参数,比如,设定目标封装格式为RTP封装。
步骤303:判断当前帧是否为视频帧,如果是,执行步骤304,否则执行步骤311;
现有的视频帧的帧类型包含I帧(I frame)和P帧(P frame);该步骤可采用现有的对标志位的检测方法判断当前帧的类型,在此不再对具体方法进行赘述。
步骤304:判断当前帧是否为I帧,如果是,执行步骤305,否则执行步骤307;
通常视频帧的帧类型为I帧(I frame)或P帧(P frame)。该步骤通过检测当前帧的标志位,确定当前帧的类型是I帧,还是P帧,在此不再对具体的检测方法进行赘述。
步骤305:生成第一实时传送协议(Real-time Transport Protocol,RTP)包头及第一RTP包头扩展字段;
该步骤在确定视频帧为I帧的情况下,生成用以识别该视频帧是否为I帧的第一RTP包头及第一RTP包头扩展字段。
其中,可根据RTP包头中的payloadtype字段判断是否为第一RTP包头。
步骤306:判断是否为标准H.264编码,如果是,执行步骤307,否则执行步骤308;
该步骤可与步骤304同时执行,也可在步骤304之前执行。
该步骤具体为,根据标志位判断视频帧的编码格式是否为标准H.264编码,具体可采用现有的标志位检测的方法确定,在此不再对具体的检测方法进行赘述。
步骤307:查找NALU并打包视频数据,生成第三RTP包头,之后执行步骤310;
第三RTP包头用以指示打包生成的数据包中包含的为视频帧;具体可对第三RTP包头中的payloadtype字段进行识别,以确定该数据包包含的为视频帧。
该步骤具体包括:在当前视频帧内查找网络抽象层单元(NetworkAbstraction Layer Unit,NALU);以NALU为基本单位进行RTP打包,即以RFC3984标准生成第三RTP包头,并添加视频帧所包含的视频数据到负载(payload);直到当前视频帧中查找不到NALU为止,生成打包后的视频数据。
步骤308:生成第三RTP包头并打包视频数据,之后执行步骤310;
不论接收到的视频帧是P帧还是I帧,该步骤实现了对编码格式为非标准H.264编码的视频帧的封装,比如,标准MPEG(Moving Picture ExpertsGroup)-4编码。
该步骤具体包括:根据RFC3016标准,生成第三RTP包头,添加视频帧所包含的视频数据到负载,生成打包后的视频数据。
步骤309:生成第二RTP包头并打包音频数据;
该步骤具体包括:根据RFC3551标准,生成第二RTP包头,添加音频帧所包含的音频数据到负载,生成打包后的音频数据。
第二RTP包头用以指示该数据包所包含的为音频数据。
步骤310:输出打包后的数据;
该步骤中,打包后的数据可为第一RTP包头、第一RTP包头扩展字段、第三RTP包头及打包后的视频数据,或者为第三RTP包头及打包后的视频数据,或者为第二RTP包头及打包后的音频数据。
步骤311:结束。
本发明的上述方法实施例中,考虑到编解码能力较强的接收设备能够在原始编码参数与目标编码参数不同的情况下,对接收到的原始文件进行播放显示,因此,本发明在步骤23和步骤24中,通过原始编码格式是否与目标编码格式是否相同,来判断是否需要重新编解码。为了进一步保证所有接收设备都能够对接收到的原始文件进行播放显示,本发明在步骤23和步骤24的基础上,可进一步增加判断原始编码参数与目标编码参数是否相同的步骤,即在原始编码参数与目标编码参数相同、且原始编码格式与目标编码格式相同时,判定无需重新编解码,在原始编码参数与目标编码参数不同和/或原始编码格式与目标编码不同时,判定需要重新编解码。
图4为本发明对多媒体文件进行封装的装置的结构示意图。现结合图4,对本发明对多媒体文件进行封装的装置进行说明,具体如下:
本发明对多媒体文件进行封装的装置包括:封装解析模块40、数据编码模块41、数据剥离模块42和数据封装模块43。
封装解析模块40判定接收到的原始文件不具有封装层时,解析裸码流获得原始编码参数及原始编码格式,判定接收到的原始文件具有封装层时,解析封装层获得原始封装格式、原始编码参数及原始编码格式。
封装解析模块40根据预设的目标封装格式及目标编码格式,确认原始文件无需重新编码和重新封装时,输出原始文件,确认原始文件无需重新编码时,输出原始文件至数据剥离模块42,确认原始文件需要重新编码时,输出原始文件至数据编码模块41;封装解析模块40根据预设的目标编码格式,确认裸码流无需重新编码时,输出裸码流至数据封装模块43,确认裸码流需要重新编码时,输出裸码流至数据编码模块41。
数据编码模块41根据原始编码格式及原始编码参数,对原始文件的裸码流进行解码,根据目标编码格式和目标编码参数,对解码后的数据进行编码,输出编码后的码流至数据封装模块43。其中,编码后的码流为编码后的视频数据或编码后的音频数据。
数据剥离模块42根据原始文件封装层中的标志位,确定封装格式,解析封装格式获得裸码流的片段的起始地址及长度,根据裸码流的片段的起始地址及长度,解析原始文件获得裸码流。
数据封装模块43初始化封装参数,获得目标封装格式和目标封装参数,在确认接收到的数据为音频帧时,根据封装参数,生成第二RTP包头,打包音频数据并输出,在确认接收到的数据为视频帧时,根据视频帧的帧类型和封装参数,生成RTP包头,打包视频数据并输出。其中,封装参数包含目标封装格式和目标封装参数;目标封装参数为目标视频封装参数或目标音频封装参数。
其中,封装解析模块40包括封装判断单元401和编码判断单元402。
封装判断单元401判定接收到的原始文件不具有封装层时,解析裸码流获得原始编码参数及原始编码格式,输出裸码流、原始编码参数及原始编码格式至编码判断单元402,判定接收到的原始文件具有封装层,解析封装层获得原始封装格式、原始编码参数及原始编码格式,输出原始文件、原始封装格式、原始编码参数及原始编码格式至编码判断单元402。
编码判断单元402确认裸码流的原始编码格式与目标编码格式相同,输出裸码流至数据封装模块43,确认裸码流的原始编码格式与目标编码格式不同,输出裸码流、原始编码格式及原始编码参数至数据编码模块41。编码判断单元402确认原始封装格式与目标封装格式相同,且原始编码格式与目标编码格式相同,输出原始文件,确认原始封装格式与目标封装格式不同,在原始编码格式与目标编码格式相同时,输出原始文件、原始编码参数及原始编码格式至数据剥离模块42,在原始编码格式与目标编码格式不同时,输出原始文件、原始编码参数及原始编码格式至数据编码模块41。
其中,数据封装模块43包括类型判断单元431、视频封装单元432和音频封装单元433。
类型判断单元431初始化封装参数时,获得目标封装格式和目标封装参数,判断接收到的数据为视频帧还是音频帧,确认为视频帧时,则将接收到的视频数据、目标封装格式及目标视频封装参数输出至视频封装单元432,确认为音频帧,则将接收到的音频数据、目标封装格式及目标音频封装参数输出至音频封装单元433。
视频封装单元432根据接收到的视频数据判断帧类型,判定视频数据为I帧时,生成第一RTP包头及第一RTP包头扩展字段,判定视频数据为标准H.264编码时,查找NALU并打包视频数据,生成第三RTP包头,判定视频数据为非标准H.264编码时,生成第三RTP包头并打包视频数据,输出第一RTP包头、第一RTP包头扩展字段、打包后的视频数据及第三RTP包头,或者输出打包后的视频数据及第三RTP包头。
音频封装单元433根据音频数据,生成第二RTP包头并打包音频数据,输出打包后的音频数据及第二RTP包头。
本发明的上述较佳实施例中,不是对所有的原始文件都进行解析封装层、解码、编码和再封装的操作,而是根据原始文件的封装格式、原始编码格式和原始编码参数,确定是否进行解码、编码和再封装的操作,在原始文件的封装格式和编码格式符合上述要求时,不再进行解码、编码和重新封装,直接输出原始文件,在原始文件的编码格式符合上述要求而封装格式不符合上述要求时,不再进行解码和编码,而仅进行重新封装,不仅降低对图像质量的损失及系统资源消耗,而且提高了工作效率。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (10)
1.一种对多媒体文件进行封装的方法,其特征在于,该方法包括:
A、判定接收到的原始文件具有封装层,解析封装层获得原始封装格式、原始编码格式及原始编码参数;
B、在判定原始封装格式与目标封装格式相同时,判断是否需要重新编解码,如果是,执行步骤C,否则,输出原始文件;
在判定原始封装格式与目标封装格式不同时,判断是否需要重新编解码,如果是,执行步骤C,否则,剥离原始文件的封装格式获得裸码流,执行步骤D;
C、根据原始编码格式、原始编码参数、预设的目标编码格式及预设的目标编码参数,对原始文件的裸码流进行解码和编码,获得编码后的码流;
D、根据设定的目标封装格式和目标封装参数,对编码后的码流或裸码流进行封装打包,输出打包后的数据;
所述裸码流为音视频模拟信号按照设定的编码格式和编码参数编码后未加封装的码流。
2.根据权利要求1所述的方法,其特征在于,所述步骤A之前进一步包括:
A’、判定接收到的原始文件无封装层,解析原始文件的裸码流,获得原始编码格式和原始编码参数,执行步骤A”;
A”、判断是否需要重新编解码,如果是,执行步骤C,否则执行步骤D。
3.根据权利要求2所述的方法,其特征在于,步骤B所述判断是否需要重新编解码为:判定原始编码格式与预设的目标编码格式相同,则无需重新编解码,判定原始编码格式与预设的目标编码格式不同,则需要重新编解码。
4.根据权利要求2所述的方法,其特征在于,步骤B所述判断是否需要重新编解码为:判断原始编码格式与预设的目标编码格式相同、且原始编码参数与预设的目标编码参数相同,则无需重新编解码,否则需要重新编解码。
5.根据权利要求3或4所述的方法,其特征在于,步骤B所述剥离原始文件的封装格式获得裸码流包括:
B1、解析原始封装格式,获得原始文件的裸码流的片段的起始地址及长度;
B2、根据裸码流的片段的起始地址及长度,从原始文件中获得裸码流。
6.根据权利要求3或4所述的方法,其特征在于,所述步骤D包括:
D1、初始化封装参数,获得目标封装格式和目标封装参数;所述目标封装参数为目标视频封装参数或目标音频封装参数;
D2、判断当前帧是否为视频帧,如果是,执行步骤D3,否则执行步骤D7;
D3、判定视频帧为I帧时,生成第一实时传输协议RTP包头及第一RTP包头扩展字段;
D4、判断原始编码格式是否为标准H.264编码,如果是,执行步骤D5,否则执行步骤D6;
D5、根据目标封装格式和目标视频封装参数,以网络抽象层单元NALU为基本单位进行RTP打包,生成第三RTP包头,并添加视频帧所包含的视频数据到负载,生成打包后的视频数据并输出;
D6、根据目标封装格式和目标视频封装参数,生成第三RTP包头,并添加视频帧所包含的视频数据到负载,生成打包后的视频数据并输出;
D7、根据目标封装格式和目标音频封装参数,生成第二RTP包头,并添加音频帧所包含的音频数据到负载,生成打包后的音频数据并输出;
所述第一RTP包头及所述第一RTP包头扩展字段用以指示所述视频帧的类型为I帧;所述第二RTP包头用以指示该数据包包含的是音频数据;所述第三RTP包头用以该数据包包含的是视频数据。
7.一种对多媒体文件进行封装的装置,其特征在于,该装置包括:
封装解析模块,判定接收到的原始文件具有封装层,解析封装层获得原始封装格式、原始编码参数及原始编码格式,判定原始封装格式与目标封装格式相同,在无需编解码时,输出原始文件,在需要编解码时,输出原始文件、原始编码格式及原始编码参数至数据编码模块;
所述封装解析模块判定原始封装格式与目标封装格式不同,在需要编解码时,输出原始文件、原始编码格式及原始编码参数至数据编码模块,在无需编解码时,输出原始文件至数据剥离模块;
数据编码模块,根据原始编码格式、原始编码参数、目标编码格式和目标编码参数,对原始文件的裸码流进行解码和编码,输出编码后的码流至数据封装模块;
数据剥离模块,剥离原始文件的封装格式,获得原始文件的裸码流;所述裸码流为音视频模拟信号按照设定的编码格式和编码参数编码后未加封装的码流;
数据封装模块,初始化封装参数,获得目标封装格式和目标封装参数,在确认接收到的数据为音频帧时,根据封装参数,生成第二RTP包头,打包音频数据并输出,在确认接收到的数据为视频帧时,根据视频帧的帧类型和封装参数,生成RTP包头,打包视频数据并输出;
所述封装参数包含目标封装格式和目标封装参数。
8.根据权利要求7所述的装置,其特征在于,所述封装解析模块进一步判定接收到的原始文件不具有封装层时,解析原始文件的裸码流,获得原始编码格式和原始编码参数,根据预设的目标编码格式,确认裸码流无需重新编码时,输出裸码流至数据封装模块,确认裸码流需要重新编码时,输出裸码流至数据编码模块。
9.根据权利要求8所述的装置,其特征在于,所述封装解析模块包括:
封装判断单元,判定接收到的原始文件不具有封装层时,解析裸码流获得原始编码参数及原始编码格式,输出裸码流、原始编码参数及原始编码格式至编码判断单元,判定接收到的原始文件具有封装层,解析封装层获得原始封装格式、原始编码参数及原始编码格式,输出原始文件、原始封装格式、原始编码参数及原始编码格式至编码判断单元;
编码判断单元,确认裸码流的原始编码格式与目标编码格式相同,输出裸码流至数据封装模块,确认裸码流的原始编码格式与目标编码格式不同,输出裸码流、原始编码格式及原始编码参数至数据编码模块;
所述编码判断单元确认原始封装格式与目标封装格式相同,且原始编码格式与目标编码格式相同,输出原始文件;
所述编码判断单元确认原始封装格式与目标封装格式不同,在原始编码格式与目标编码格式相同时,输出原始文件、原始编码参数及原始编码格式至数据剥离模块,在原始编码格式与目标编码格式不同时,输出原始文件、原始编码参数及原始编码格式至数据编码模块。
10.根据权利要求7、8或9所述的装置,其特征在于,所述数据封装模块包括:
类型判断单元,初始化封装参数时,获得目标封装格式和目标封装参数,判定接收到的数据为视频帧,则将接收到的视频数据、目标视频封装格式及目标视频封装参数输出至视频封装单元,判定接收到的数据为音频帧,则将接收到的音频数据、目标音频封装格式及目标音频封装参数输出至音频封装单元;所述目标封装参数为目标视频封装参数或目标音频封装参数;
视频封装单元,根据接收到的视频数据判断帧类型,判定视频数据为I帧时,生成第一RTP包头及第一RTP包头扩展字段,判定视频数据为标准H.264编码时,查找NALU并打包视频数据,生成第三RTP包头,判定视频数据为非标准H.264编码时,生成第三RTP包头并打包视频数据,输出打包后的视频数据;
音频封装单元,根据接收到的音频数据,生成第二RTP包头并打包音频数据,输出打包后的音频数据;
所述第一RTP包头及所述第一RTP包头扩展字段用以指示所述视频帧的类型为I帧;所述第二RTP包头用以指示该数据包包含的为音频数据;所述第三RTP包头用以指示该数据包含的为视频数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110281099.3A CN103002353B (zh) | 2011-09-16 | 2011-09-16 | 对多媒体文件进行封装的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110281099.3A CN103002353B (zh) | 2011-09-16 | 2011-09-16 | 对多媒体文件进行封装的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103002353A true CN103002353A (zh) | 2013-03-27 |
CN103002353B CN103002353B (zh) | 2015-09-02 |
Family
ID=47930407
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110281099.3A Active CN103002353B (zh) | 2011-09-16 | 2011-09-16 | 对多媒体文件进行封装的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103002353B (zh) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104079949A (zh) * | 2014-06-26 | 2014-10-01 | 北京世纪鼎点软件有限公司 | 面向多屏的场景自适应的数据封装方法和装置及系统 |
WO2014183478A1 (en) * | 2013-05-17 | 2014-11-20 | Tencent Technology (Shenzhen) Company Limited | Video encoding method and apparatus |
CN104917671A (zh) * | 2015-06-10 | 2015-09-16 | 腾讯科技(深圳)有限公司 | 基于移动终端的音频处理方法和装置 |
CN105163169A (zh) * | 2015-09-16 | 2015-12-16 | 北京暴风科技股份有限公司 | 一种适于传输的数据封装格式的方法及系统 |
CN105357229A (zh) * | 2015-12-22 | 2016-02-24 | 深圳市科漫达智能管理科技有限公司 | 一种视频处理方法及装置 |
CN105407351A (zh) * | 2014-09-15 | 2016-03-16 | 杭州海康威视数字技术股份有限公司 | 一种从实时传输协议数据包中重建编码方式的方法和装置 |
CN107302715A (zh) * | 2017-08-10 | 2017-10-27 | 北京元心科技有限公司 | 多媒体文件的播放方法、封装方法以及相应的装置、终端 |
US9936266B2 (en) | 2013-05-17 | 2018-04-03 | Tencent Technology (Shenzhen) Company Limited | Video encoding method and apparatus |
CN108156464A (zh) * | 2017-12-19 | 2018-06-12 | 青岛海信网络科技股份有限公司 | 一种多路并发转码的方法及装置 |
CN108712677A (zh) * | 2018-05-31 | 2018-10-26 | 杭州视在数科信息技术有限公司 | 对人工智能算法友好的ts流处理方法及应用 |
CN109274902A (zh) * | 2018-09-04 | 2019-01-25 | 北京字节跳动网络技术有限公司 | 视频文件处理方法和装置 |
CN110868610A (zh) * | 2019-10-25 | 2020-03-06 | 富盛科技股份有限公司 | 流媒体传输方法、装置及服务器 |
CN111010593A (zh) * | 2019-11-08 | 2020-04-14 | 深圳市麦谷科技有限公司 | 基于flv格式封装h.265视频数据的方法和装置 |
CN111083510A (zh) * | 2019-12-18 | 2020-04-28 | 深圳市麦谷科技有限公司 | 推送hevc视频的方法和装置 |
CN111866602A (zh) * | 2020-06-19 | 2020-10-30 | 成都东方盛行电子有限责任公司 | 一种无损高精度的流采集方法 |
WO2021012723A1 (zh) * | 2019-07-23 | 2021-01-28 | 上海哔哩哔哩科技有限公司 | 多媒体文件存储、读取方法 |
CN112449212A (zh) * | 2019-08-28 | 2021-03-05 | 杭州海康威视系统技术有限公司 | 一种音视频码流的处理方法、装置及控制设备 |
WO2021213181A1 (zh) * | 2020-04-24 | 2021-10-28 | 华为技术有限公司 | 视频处理方法及装置 |
CN113766235A (zh) * | 2021-08-30 | 2021-12-07 | 聚好看科技股份有限公司 | 一种全景视频传输方法及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1863314A (zh) * | 2005-10-17 | 2006-11-15 | 华为技术有限公司 | H.264多媒体数据实时传送方法 |
CN101017483A (zh) * | 2006-02-10 | 2007-08-15 | 联想(北京)有限公司 | 媒体转换装置和方法 |
CN101895737A (zh) * | 2010-07-13 | 2010-11-24 | 中兴通讯股份有限公司 | 多媒体解码方法及装置、视频监控方法及系统 |
CN102075528A (zh) * | 2010-12-27 | 2011-05-25 | 上海聚欣网络科技有限公司 | 一种播放多种封装格式的网络多媒体文件的方法与设备 |
-
2011
- 2011-09-16 CN CN201110281099.3A patent/CN103002353B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1863314A (zh) * | 2005-10-17 | 2006-11-15 | 华为技术有限公司 | H.264多媒体数据实时传送方法 |
CN101017483A (zh) * | 2006-02-10 | 2007-08-15 | 联想(北京)有限公司 | 媒体转换装置和方法 |
CN101895737A (zh) * | 2010-07-13 | 2010-11-24 | 中兴通讯股份有限公司 | 多媒体解码方法及装置、视频监控方法及系统 |
CN102075528A (zh) * | 2010-12-27 | 2011-05-25 | 上海聚欣网络科技有限公司 | 一种播放多种封装格式的网络多媒体文件的方法与设备 |
Non-Patent Citations (1)
Title |
---|
柳伟、陈旭、梁永生: "H.264/SVC的RTP封装算法及其应用", 《计算机工程与应用》 * |
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014183478A1 (en) * | 2013-05-17 | 2014-11-20 | Tencent Technology (Shenzhen) Company Limited | Video encoding method and apparatus |
CN104168439A (zh) * | 2013-05-17 | 2014-11-26 | 腾讯科技(深圳)有限公司 | 一种视频编码方法和装置 |
CN104168439B (zh) * | 2013-05-17 | 2016-01-27 | 腾讯科技(深圳)有限公司 | 一种视频编码方法和装置 |
US9936266B2 (en) | 2013-05-17 | 2018-04-03 | Tencent Technology (Shenzhen) Company Limited | Video encoding method and apparatus |
CN104079949A (zh) * | 2014-06-26 | 2014-10-01 | 北京世纪鼎点软件有限公司 | 面向多屏的场景自适应的数据封装方法和装置及系统 |
CN105407351B (zh) * | 2014-09-15 | 2019-03-12 | 杭州海康威视数字技术股份有限公司 | 一种从实时传输协议数据包中重建编码方式的方法和装置 |
CN105407351A (zh) * | 2014-09-15 | 2016-03-16 | 杭州海康威视数字技术股份有限公司 | 一种从实时传输协议数据包中重建编码方式的方法和装置 |
CN104917671B (zh) * | 2015-06-10 | 2017-11-21 | 腾讯科技(深圳)有限公司 | 基于移动终端的音频处理方法和装置 |
CN104917671A (zh) * | 2015-06-10 | 2015-09-16 | 腾讯科技(深圳)有限公司 | 基于移动终端的音频处理方法和装置 |
CN105163169B (zh) * | 2015-09-16 | 2018-08-07 | 暴风集团股份有限公司 | 一种适于传输的数据封装格式的方法及系统 |
CN105163169A (zh) * | 2015-09-16 | 2015-12-16 | 北京暴风科技股份有限公司 | 一种适于传输的数据封装格式的方法及系统 |
CN105357229B (zh) * | 2015-12-22 | 2019-12-13 | 深圳市科漫达智能管理科技有限公司 | 一种视频处理方法及装置 |
CN105357229A (zh) * | 2015-12-22 | 2016-02-24 | 深圳市科漫达智能管理科技有限公司 | 一种视频处理方法及装置 |
CN107302715A (zh) * | 2017-08-10 | 2017-10-27 | 北京元心科技有限公司 | 多媒体文件的播放方法、封装方法以及相应的装置、终端 |
CN108156464A (zh) * | 2017-12-19 | 2018-06-12 | 青岛海信网络科技股份有限公司 | 一种多路并发转码的方法及装置 |
CN108712677A (zh) * | 2018-05-31 | 2018-10-26 | 杭州视在数科信息技术有限公司 | 对人工智能算法友好的ts流处理方法及应用 |
CN109274902A (zh) * | 2018-09-04 | 2019-01-25 | 北京字节跳动网络技术有限公司 | 视频文件处理方法和装置 |
CN109274902B (zh) * | 2018-09-04 | 2020-11-27 | 北京字节跳动网络技术有限公司 | 视频文件处理方法和装置 |
WO2021012723A1 (zh) * | 2019-07-23 | 2021-01-28 | 上海哔哩哔哩科技有限公司 | 多媒体文件存储、读取方法 |
CN112449212A (zh) * | 2019-08-28 | 2021-03-05 | 杭州海康威视系统技术有限公司 | 一种音视频码流的处理方法、装置及控制设备 |
CN112449212B (zh) * | 2019-08-28 | 2022-11-04 | 杭州海康威视系统技术有限公司 | 一种音视频码流的处理方法、装置及控制设备 |
CN110868610A (zh) * | 2019-10-25 | 2020-03-06 | 富盛科技股份有限公司 | 流媒体传输方法、装置及服务器 |
CN111010593A (zh) * | 2019-11-08 | 2020-04-14 | 深圳市麦谷科技有限公司 | 基于flv格式封装h.265视频数据的方法和装置 |
CN111083510A (zh) * | 2019-12-18 | 2020-04-28 | 深圳市麦谷科技有限公司 | 推送hevc视频的方法和装置 |
WO2021213181A1 (zh) * | 2020-04-24 | 2021-10-28 | 华为技术有限公司 | 视频处理方法及装置 |
CN113766160A (zh) * | 2020-04-24 | 2021-12-07 | 华为技术有限公司 | 视频处理方法及装置 |
CN111866602A (zh) * | 2020-06-19 | 2020-10-30 | 成都东方盛行电子有限责任公司 | 一种无损高精度的流采集方法 |
CN113766235A (zh) * | 2021-08-30 | 2021-12-07 | 聚好看科技股份有限公司 | 一种全景视频传输方法及设备 |
CN113766235B (zh) * | 2021-08-30 | 2023-10-17 | 聚好看科技股份有限公司 | 一种全景视频传输方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN103002353B (zh) | 2015-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103002353B (zh) | 对多媒体文件进行封装的方法及装置 | |
CN102263959B (zh) | 直播中转方法和系统 | |
CN101505316B (zh) | 重排和复用属于互相关会话的多媒体流的包的方法和设备 | |
CN110661752A (zh) | 一种无插件实时视频播放系统及方法 | |
CN105049896B (zh) | 一种基于hls协议的流媒体广告插入方法及系统 | |
US9369508B2 (en) | Method for transmitting a scalable HTTP stream for natural reproduction upon the occurrence of expression-switching during HTTP streaming | |
CA2574998A1 (en) | Methods and apparatus for monitoring the insertion of local media content into a program stream | |
US20130298171A1 (en) | Device for generating content data, method for generating content data, and recording medium | |
CA2909906A1 (en) | Method and apparatus for transmitting media data in multimedia transport system | |
CN102170582B (zh) | 基于QoS的视音频体验质量评测平台及评测方法 | |
CN102037731A (zh) | 压缩视频中属于互相关性层的图片的通知和抽取 | |
CN103873888A (zh) | 一种媒体文件直播方法及直播源服务器 | |
KR100439338B1 (ko) | 디지털 지상파 데이터 방송을 위한 데이터 부호화 장치 및그 방법 | |
CN101895750A (zh) | 面向机顶盒和pc的实时流媒体服务器及工作方法 | |
CN105706164B (zh) | 发送设备、发送方法、接收设备和接收方法 | |
US9883216B2 (en) | Method and apparatus for carrying transport stream | |
RU2687065C2 (ru) | Устройство передачи, способ передачи, устройство приема и способ приема | |
CN108122558B (zh) | 一种latm aac音频流的实时转容实现方法及装置 | |
TWI504275B (zh) | 視頻處理方法和處理資料的系統 | |
TW201813411A (zh) | 用於媒體資料串流之補充增強資訊軌跡之系統級發信 | |
CN102790906A (zh) | 编解码系统和方法 | |
CN112188150A (zh) | 一种利用重封装实现浏览器播放实时监控视频的方法 | |
CN109640162A (zh) | 码流转换方法及系统 | |
CN101521786B (zh) | 基于数字电视hdtv平台的高清转码方法 | |
CN103095995A (zh) | 媒体文件的自动技检方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
EE01 | Entry into force of recordation of patent licensing contract | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20130327 Assignee: Hangzhou Hikvision Technology Co.,Ltd. Assignor: Hangzhou Hikvision Digital Technology Co.,Ltd. Contract record no.: X2021330000212 Denomination of invention: Method and device for encapsulating multimedia files Granted publication date: 20150902 License type: Common License Record date: 20210901 |