CN101521833A - 一种测试用传输流的处理方法及其处理装置 - Google Patents
一种测试用传输流的处理方法及其处理装置 Download PDFInfo
- Publication number
- CN101521833A CN101521833A CN200910081867A CN200910081867A CN101521833A CN 101521833 A CN101521833 A CN 101521833A CN 200910081867 A CN200910081867 A CN 200910081867A CN 200910081867 A CN200910081867 A CN 200910081867A CN 101521833 A CN101521833 A CN 101521833A
- Authority
- CN
- China
- Prior art keywords
- packet
- fragment
- transport stream
- read
- 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
Images
Landscapes
- Television Signal Processing For Recording (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了一种测试用传输流的处理方法及其处理装置,本发明的测试用传输流的处理方法在测试用传输流中截取一小段合适的传输流片断存储,并在每次循环播放传输流片断时对传输流片断中的数据包数据进行调整,输出无限连续的传输流,从而解决了在播放测试用传输流时出现的画面残损、抖动,声音中断的问题,并且在对传输流片断中的数据包数据进行调整的过程中压缩了测试用传输流的存储空间,从而提高了存储资源的利用率。
Description
技术领域
本发明涉及传输流处理技术领域,尤其涉及一种测试用传输流的处理方法及其处理装置。
背景技术
在数字电视研究设计、生产、检测维修时,通常需要使用符合测试标准的传输流(TS),对于这些测试用传输流,其携带的图像信息基本上都为静止图像或者循环往复运动图像,其携带的声音信息一般为单频、多频或扫频的正弦波信号。现有的测试用传输流的处理方法是使用播放机循环播放预先存储的测试用传输流(即预先存储的节目),但由于预先存储的节目长度和数量有限,假定需要的码流速率为5Mbps,则播放循环长度1分钟的测试用传输流需要的存储空间为37.5MB,如果播放循环为一小时的测试用传输流,那么就至少需要2.19GB的存储空间,并且一次测试信号就要对应一次测试用传输流,因此现有的这种处理方法,占用了大量的存储资源,成本较高。另外在循环播放时,测试用传输流的首尾接缝处会出现画面残损、抖动,声音中断等问题。为解决这一问题,目前采取的是一种在循环首尾接缝处添加不连续指示标记的做法,采用这种方法获取的传输流称之为无缝循环传输流,这种传输流也被现有标准所采纳。然而,虽然使用该方法制作的测试用传输流的结构可称之为无缝循环,但这并不能保证测试用传输流的内容上的连续,并且存储长度至少要求1分钟,因此,该方法同样存在在播放传输流时出现的画面残损、抖动,声音中断等问题。另外,由于测试用传输流的码流速率确定,且一般比信号编码后的码流速率要大得多,因此测试用传输流中含有大量的空包,这样也会占用大量的存储资源,导致存储资源利用率不高。
发明内容
本发明提供了一种测试用传输流的处理方法及其处理装置,以解决测试用传输流的存储占用大量存储资源而导致的存储资源利用率不高和在播放测试用传输流时出现的画面残损、抖动,声音中断的问题。
为达到上述目的,本发明一方面提供了一种测试用传输流的处理方法,包括以下步骤:
预先根据静止图像和循环往复运动图像的周期性、整图组GOP以及传输流标准中对节目时钟基准PCR的要求将测试用传输流截取成对应的传输流片段;
根据所述传输流片段的时长计算对应的时基标记增量;
存储所述传输流片段和所述时基标记增量;
当需要读取所述传输流片段时,在初始化过程中将所述传输流片段中数据包的时基标记的累加值清零;
在读取所述传输流片段过程中,判断当前读到的数据包是否为空包,如果是空包,则不作处理,否则,根据所述数据包中的节目识别码PID识别所述数据包的类型,将相同节目识别码PID的数据包的顺序码连续累加,并按照所述顺序码读取对应的数据包;
判断当前数据包是否有时基标记,如果有时基标记,则将当前数据包的循环次数和对应的时基标记增量相乘,获取当前数据包的时基标记的累加值,将所述累加值与当前数据包的时基标记的当前值相加,并用相加后获取新的时基标记值更新当前数据包的时基标记的当前值;
判断是否完成一次读取循环,如果完成,则将当前循环次数累加,用获取的新的循环次数更新所述当前循环次数,并继续下一次循环的读取,否则继续下一数据包的读取。
另一方面,本发明还提供了一种处理测试用传输流的装置,包括:
片段截取模块,用于根据静止图像和循环往复运动图像的周期性、整图组GOP以及传输流标准中对节目时钟基准PCR的要求将测试用传输流截取成对应的传输流片段;
增量获取模块,用于根据所述片段截取模块截取的传输流片段的时长计算对应的时基标记增量;
存储模块,用于存储所述片段截取模块截取的传输流片段和所述增量获取模块计算的时基标记增量;
初始化模块,用于当需要读取所述存储模块存储的传输流片段时,在初始化过程中将所述传输流片段的数据包的时基标记的累加值清零,并触发片段读取模块;
片段读取模块,用于读取所述传输流片段,并在读取所述传输流片段的过程中判断所述数据包是否为空包,如果是空包,则不作处理,否则,根据所述数据包中的节目识别码PID识别所述数据包的类型,将相同节目识别码PID的数据包的顺序码连续累加,并按照所述顺序码读取对应的数据包;
时标更新模块,用于判断所述片段读取模块读取的数据包是否有时基标记,如果有时基标记,则将当前数据包的循环次数和对应的时基标记增量相乘,获取当前数据包的时基标记的累加值,将所述累加值与当前数据包的时基标记的当前值相加,并用相加后获取新的时基标记值更新当前数据包的时基标记的当前值;
循环更新模块,用于判断所述片段读取模块是否完成一次读取循环,如果完成,则将当前循环次数累加,并将获取的新的循环次数更新所述当前循环次数。
再一方面,本发明还提供了一种测试用传输流的处理方法,包括以下步骤:
预先根据静止图像和循环往复运动图像的周期性、整图组GOP以及传输流标准中对节目时钟基准PCR的要求将测试用传输流截取成对应的传输流片段;
根据所述传输流片段的时长计算对应的时基标记增量;
提取所述传输流片段的总体加工信息作为文件头,并将所述文件头添加在所述传输流片段的数据包之前,所述总体加工信息包括所述传输流片段的码流速率和所述时基标记增量;
在每一个所述传输流片段的数据包的数据前添加N个指示字节,用于指示所述数据包后跟随的空包数量,并将所述空包删除;
用加工特征码表示所述数据包的包加工方式,所述包加工方式包括所述数据包的顺序码连续的更新以及时基标记的更新,并将所述数据包中的同步字0x47位置改为所述加工特征码,获取对应的数据文件并存储;
当需要读取所述数据文件时,对所述数据文件的文件头进行初始化,获取所述传输流片段的码流速率和所述时基标记增量;
读取当前数据包的加工特征码,根据所述加工特征码对所述数据包的顺序码连续以及时基标记进行更新;
读取当前数据包的内容,将所述数据包中的加工特征码改为所述同步字0x47,读取所述数据包的后188字节,所述后188字节包括所述同步字0x47;
判断是否完成一次读取循环,如果完成,则将当前循环次数累加,并将获取的新的循环次数更新所述当前循环次数;
根据所述传输流片段的码流速率判断是否需要添加对应的空包,如果需要添加,则根据所述N个指示字节的字节数量添加对应数量的空包,并继续下一数据包的读取或继续下一次循环的读取,否则,直接继续下一数据包的读取或继续下一次循环的读取。
再一方面,本发明还提供了一种处理测试用传输流的装置,包括:
片段截取模块,用于根据静止图像和循环往复运动图像的周期性、整图组GOP以及传输流标准中对节目时钟基准PCR的要求将测试用传输流截取成对应的传输流片段;
增量获取模块,用于根据所述片段截取模块截取的传输流片段的时长计算对应的时基标记增量;
信息提取模块,用于提取所述传输流片段的总体加工信息作为文件头,并将所述文件头添加在所述传输流片段的数据包之前,所述总体加工信息包括所述传输流片段的码流速率和所述增量获取模块获取的时基标记增量,并触发数据压缩模块;
数据压缩模块,用于在每一个所述传输流片段的数据包的数据前添加N个指示字节,用于指示所述数据包后跟随的空包数量,并将所述空包删除,并触发文件加工模块;
文件加工模块,用于用加工特征码表示所述数据包的包加工方式,所述包加工方式包括所述数据包的顺序码连续的更新以及时基标记的更新,并将所述数据包中的同步字0x47位置改为所述加工特征码,获取对应的数据文件;
存储模块,用于存储所述文件加工模块获取的数据文件;
初始化模块,用于读取所述存储模块存储的数据文件,对所述数据文件的文件头进行初始化,获取所述传输流片段的码流速率和所述时基标记增量,并触发特征码读取模块;
特征码读取模块,用于读取所述数据文件的数据包的加工特征码,根据所述加工特征码对所述数据包的顺序码连续以及时基标记进行更新;
内容读取模块,用于读取所述特征码读取模块读取的数据包的内容,将所述数据包中的加工特征码改为所述同步字0x47,读取所述数据包的后188字节,所述后188字节包括所述同步字0x47;
循环更新模块,用于判断所述内容读取模块是否完成一次读取循环,如果完成,则将当前循环次数累加,并将获取的新的循环次数更新所述当前循环次数,并触发速率调整模块;
速率调整模块,用于根据所述传输流片段的码流速率判断是否需要添加对应的空包,如果需要添加,则根据所述N个指示字节的字节数量添加对应数量的空包。
本发明的测试用传输流的处理方法,所述时基标记增量包括节目时钟基准增量ΔPCR、显示时间标签增量ΔPTS、解码时间标签增量ΔDTS和传输流时间码增量ΔTCD。
再一方面,本发明还提供了一种测试用传输流的处理方法,包括以下步骤:
预先根据静止图像和循环往复运动图像的周期性、整图组GOP以及传输流标准中对节目时钟基准PCR的要求将测试用传输流中的视频数据截取成对应的视频流片段,并根据音频数据的周期性和音频帧的完整性将所述测试用传输流中的音频数据截取成对应的音频流片段;
分别根据所述视频流片段的时长和所述音频流片段的时长计算对应的视频流时基标记增量和音频流时基标记增量;
分别提取所述视频流片段的总体加工信息和所述音频流片段的总体加工信息对应作为视频文件头和音频文件头,并分别将所述视频文件头和所述音频文件头对应添加在所述视频流片段的数据包和所述音频流片段的数据包之前,所述视频流片段的总体加工信息包括所述视频流片段的码流速率和所述视频时基标记增量,所述音频流片段的总体加工信息包括所述音频流片段的码流速率和所述音频时基标记增量;
在每个所述视频流片段的数据包前添加N个指示字节,N满足N=X+Y,其中,X个指示字节用于指示所述视频流片段的数据包后跟随的空包数量,并将对应的空包删除,Y个指示字节用于指示所述视频流片段的数据包中添加的所述音频流片段的数据包的个数;
在每个所述音频流片段的数据包前添加N个指示字节,所述N个指示字节用于指示所述音频流片段的数据包后跟随的空包数量,并将对应的空包删除;
用视频加工特征码表示所述视频流片段的数据包的包加工方式,并将所述视频流片段的数据包中的同步字0x47位置改为所述视频加工特征码,获取对应的视频数据文件并存储,所述视频流片段的数据包的包加工方式包括所述视频流片段的数据包的顺序码连续的更新以及对应的时基标记的更新;
用音频加工特征码表示所述音频流片段的数据包的包加工方式,并将所述音频流片段的数据包中的同步字0x47位置改为所述音频加工特征码,获取对应的音频数据文件并存储,所述音频流片段的数据包的包加工方式包括所述音频流片段的数据包的顺序码连续的更新以及对应的时基标记的更新;
当需要读取所述视频数据文件和所述音频数据文件时,分别对所述视频数据文件的视频文件头和所述音频数据文件的音频文件头进行初始化,对应获取所述视频流片段的码流速率和视频时基标记增量以及所述音频流片段的码流速率和音频时基标记增量;
读取视频数据文件的当前数据包的视频加工特征码,根据所述视频加工特征码对所述视频数据文件的当前数据包的顺序码连续以及对应的时基标记进行更新;
读取所述视频数据文件的当前数据包的内容,将所述数据包中的视频加工特征码改为同步字0x47,读取所述数据包的后188字节,所述后188字节包括所述同步字0x47;
判断是否读取到音频数据文件,如果读取到,则读取所述音频数据文件的当前数据包的音频加工特征码,根据所述音频加工特征码对所述音频数据文件的数据包的顺序码连续以及对应的时基标记进行更新;
读取所述音频数据文件的当前数据包的内容,将所述数据包中的音频加工特征码改为同步字0x47,读取所述数据包的后188字节,所述后188字节包括所述同步字0x47;
判断是否完成一次音频数据文件的读取循环,如果完成,则将当前音频循环次数累加,并将获取的新的音频循环次数更新所述当前音频循环次数;
当读取完一个视频数据文件的数据包后且后续未读取到音频数据文件时,或者,当读取完一个音频数据文件的数据包后且所述音频文件未完成一次读取循环时,或者,当读取完一个音频数据文件的数据包后所述音频文件完成一次读取循环并完成所述成音频循环次数累加更新时,根据所述传输流片段的码流速率判断是否添加对应的空包,如果需要添加,则根据所述指示字节的字节数量添加对应数量的空包,否则,继续下一数据包的读取;
判断否完成一次视频数据文件的读取循环,如果完成,则将当前视频循环次数累加,将获取的新的视频循环次数更新所述当前视频循环次数,并继续下一次视频循环的读取,否则,直接继续下一次视频循环的读取。
本发明的测试用传输流的处理方法,所述时基标记增量包括节目时钟基准增量ΔPCR、显示时间标签增量ΔPTS、解码时间标签增量ΔDTS、传输流时间码增量ΔTCD和音频包显示时间标记ΔAPTS。
再一方面,本发明还提供了一种处理测试用传输流的装置,包括:
片段截取模块,用于根据静止图像和循环往复运动图像的周期性、整图组GOP以及传输流标准中对节目时钟基准PCR的要求将测试用传输流中的视频数据截取成对应的视频流片段,并根据音频数据的周期性和音频帧的完整性将所述测试用传输流中的音频数据截取成对应的音频流片段;
增量获取模块,用于分别根据所述视频流片段的时长和所述音频流片段的时长计算对应的视频流时基标记增量和音频流时基标记增量;
信息提取模块,用于分别提取所述视频流片段的总体加工信息和所述音频流片段的总体加工信息对应作为视频文件头和音频文件头,并分别将所述视频文件头和所述音频文件头对应添加在所述视频流片段的数据包和所述音频流片段的数据包之前,所述视频流片段的总体加工信息包括所述视频流片段的码流速率和所述视频时基标记增量,所述音频流片段的总体加工信息包括所述音频流片段的码流速率和所述音频时基标记增量;
信息压缩模块,用于在每个所述视频流片段的数据包前添加N个指示字节,N满足N=X+Y,其中,X个指示字节用于指示所述视频流片段的数据包后跟随的空包数量,并将对应的空包删除,Y个指示字节用于指示所述视频流片段的数据包中添加的所述音频流片段的数据包的个数,并在每个所述音频流片段的数据包前添加N个指示字节,所述N个指示字节用于指示所述音频流片段的数据包后跟随的空包数量,并将对应的空包删除;
文件加工模块,用于用视频加工特征码表示所述视频流片段的数据包的包加工方式,并将所述视频流片段的数据包中的同步字0x47位置改为所述视频加工特征码,获取对应的视频数据文件,所述视频流片段的数据包的包加工方式包括所述视频流片段的数据包的顺序码连续的更新以及对应的时基标记的更新,并用音频加工特征码表示所述音频流片段的数据包的包加工方式,并将所述音频流片段的数据包中的同步字0x47位置改为所述音频加工特征码,获取对应的音频数据文件,所述音频流片段的数据包的包加工方式包括所述音频流片段的数据包的顺序码连续的更新以及对应的时基标记的更新;
存储模块,用于存储所述文件加工模块获取的视频数据文件和音频数据文件;
初始化模块,用于当需要读取所述视频数据文件和所述音频数据文件时,分别对所述视频数据文件的视频文件头和所述音频数据文件的音频文件头进行初始化,对应获取所述视频流片段的码流速率和视频时基标记增量以及所述音频流片段的码流速率和音频时基标记增量,并触发第一特征码读取模块;
第一特征码读取模块,用于读取视频数据文件的当前数据包的视频加工特征码,根据所述视频加工特征码对所述视频数据文件的当前数据包的顺序码连续以及对应的时基标记进行更新;
第一文件读取模块,用于读取所述第一特征码读取模块读取的当前数据包的内容,将所述数据包中的视频加工特征码改为同步字0x47,读取所述数据包的后188字节,所述后188字节包括所述同步字0x47,并触发第二特征码读取模块;
第二特征码读取模块,用于判断是否读取到音频数据文件,如果读取到,则读取所述音频数据文件的当前数据包的音频加工特征码,根据所述音频加工特征码对所述音频数据文件的数据包的顺序码连续以及对应的时基标记进行更新;
第二文件读取模块,用于读取所述第二特征码读取模块读取的当前数据包的内容,将所述数据包中的音频加工特征码改为同步字0x47,读取所述数据包的后188字节,所述后188字节包括所述同步字0x47;
第一循环更新模块,用于判断所述第二文件读取模块是否完成一次音频数据文件的读取循环,如果完成,则将当前音频循环次数累加,并将获取的新的音频循环次数更新所述当前音频循环次数;
速率调整模块,用于当所述第一文件读取模块读取完一个视频数据文件的数据包后且后续所述第二文件读取模块未读取到音频数据文件时,或者,当所述第二文件读取模块读取完一个音频数据文件的数据包后且所述音频文件未完成一次读取循环时,或者,当所述第二文件读取模块读取完一个音频数据文件的数据包后所述音频文件完成一次读取循环并已完成所述成音频循环次数累加更新时,根据所述传输流片段的码流速率判断是否添加对应的空包,如果需要添加,则根据所述指示字节的字节数量添加对应数量的空包;
第二循环更新模块,用于判断所述第一文件读取模块是否完成一次视频数据文件的读取循环,如果完成,则将当前视频循环次数累加,将获取的新的视频循环次数更新所述当前视频循环次数。
本发明的测试用传输流的处理方法在测试用传输流中截取一小段合适的传输流片断存储,并在每次循环播放传输流片断时对传输流片断中的数据包数据进行调整,输出无限连续的传输流,从而解决了在播放测试用传输流时出现的画面残损、抖动,声音中断的问题,并且在对传输流片断中的数据包数据进行调整的过程中压缩了测试用传输流的存储存储空间,从而提高了存储资源的利用率。
附图说明
图1为本发明实施例一的测试用传输流的处理方法流程图;
图2为本发明实施例一的处理测试用传输流的装置结构框图;
图3为本发明实施例二的测试用传输流的处理方法流程图;
图4为本发明实施例二的处理测试用传输流的装置结构框图;
图5为本发明实施例三的测试用传输流的处理方法流程图;
图6为本发明实施例三的处理测试用传输流的装置结构框图。
具体实施方式
下面结合附图对本发明的具体实施方式进行详细描述:
实施例一
参考图1,本发明的一种测试用传输流的处理方法,包括以下步骤:
步骤S101,预先根据静止图像和循环往复运动图像的周期性、整图组(GOP)以及传输流标准中对节目时钟基准(PCR)的要求将测试用传输流截取成对应的传输流片段。例如,假设截取的传输流片段的数据长度为L,则L应当同时满足完成整周期及整图组,即N个整图组完成1个循环或者1个整图组包含N个循环。由于图像的周期性,传输流中图像数据在每长度为L的数据段进行重复,由于压缩编码的特点数据不会完全一致,但前后数据段中图像数据差别很小,可以使用一个数据段数据进行循环输出。其次,要考虑截取的传输流段中含有的节目时钟基准的数据包的个数,根据传输流标准要求节目时钟基准间隔不能大于40ms,因此节目时钟基准的数据包的个数n应满足n>T/40ms,其中T为传输流片段对应时间长度。按照以上原则截取的传输流片断的长度最短可以只有1个整图组的长度。
步骤S102,根据传输流片段的时长计算对应的时基标记增量。这些时基标记增量包括节目时钟基准增量(ΔPCR)、显示时间标签增量(ΔPTS)、解码时间标签增量(ΔDTS)和传输流时间码增量(ΔTCD)等。
步骤S103,存储传输流片段和时基标记增量。
步骤S104,初始化。当在数字电视研究设计、生产或检测维修时需要读取传输流片段时,在初始化过程中将传输流片段中数据包的时基标记的累加值清零。
步骤S105,在读取传输流片段过程中,判断当前读到的数据包是否为空包。如果不是空包则执行步骤S106,否则,执行步骤S109。
步骤S106,根据数据包中的节目识别码(PID)识别数据包的类型,将相同节目识别码的数据包的顺序码连续累加,并按照顺序码读取对应的数据包。在传输流片段中具有相同节目识别码的数据包中含有有效负载时,其顺序码(位于188字节数据包中第4个字节的低四位)依次增加1,否则,顺序码不增加。
步骤S107,判断当前数据包是否有时基标记,如果有时基标记,则执行步骤S108,否则,执行步骤S109。
步骤S108,将当前数据包的循环次数M和对应的时基标记增量相乘,获取当前数据包的时基标记的累加值,将累加值与当前数据包的时基标记的当前值相加,并用相加后获取新的时基标记值更新当前数据包的时基标记的当前值。例如:
当数据包为有PCR的视频帧后续时,更新数据包中PCR;
当数据包为视频帧B帧起始时,更新数据包中PTS;
当数据包为视频帧P帧起始时,更新数据包中PTS、DTS;
当数据包为视频帧I帧起始时,更新数据包中PTS、DTS、TCD;
当数据包为有PCR的视频帧B帧起始时,更新数据包中PCR、PTS;
当数据包为有PCR的视频帧P帧起始时,更新数据包中PCR、PTS、DTS;
当数据包为有PCR的视频帧I帧起始时,更新数据包中PCR、PTS、DTS、TCD,等等。
步骤S109,输出加工好的一包数据。
步骤S110,判断是否完成一次读取循环,如果完成,则执行步骤S111,否则,执行步骤S105。
步骤S111,将当前循环次数累加,用获取的新的循环次数更新当前循环次数,并执行步骤S105。
参考图2,本发明的一种处理测试用传输流的装置,包括:
片段截取模块21,用于根据静止图像和循环往复运动图像的周期性、整图组以及传输流标准中对节目时钟基准的要求将测试用传输流截取成对应的传输流片段。
增量获取模块22,用于根据片段截取模块21截取的传输流片段的时长计算对应的时基标记增量。
存储模块23,用于存储片段截取模块21截取的传输流片段和增量获取模块22计算的时基标记增量。
初始化模块24,用于当需要读取存储模块23存储的传输流片段时,在初始化过程中将传输流片段的数据包的时基标记的累加值清零,并触发片段读取模块25。
片段读取模块25,用于读取传输流片段,并在读取传输流片段的过程中判断数据包是否为空包,如果是空包,则不作处理,否则,根据数据包中的节目识别码识别数据包的类型,将相同节目识别码的数据包的顺序码连续累加,并按照顺序码读取对应的数据包。
时标更新模块26,用于判断片段读取模块25读取的数据包是否有时基标记,如果有时基标记,则将当前数据包的循环次数和对应的时基标记增量相乘,获取当前数据包的时基标记的累加值,将累加值与当前数据包的时基标记的当前值相加,并用相加后获取新的时基标记值更新当前数据包的时基标记的当前值。
循环更新模块27,用于判断片段读取模块25是否完成一次读取循环,如果完成,则将当前循环次数累加,并将获取的新的循环次数更新当前循环次数。
按照以上方法处理生成的测试用传输流是无限连续的流传输流,因而在播放测试用传输流时不会出现的画面残损、抖动,声音中断的问题,而且在对传输流片断中的数据包数据进行调整的过程中压缩了测试用传输流的存储存储空间,从而提高了存储资源的利用率。以一个5Mbps的标清静止图像流为例,只需要1个整图组即12帧的数据,时长仅有12/25=0.48秒,数据大小仅有300KB左右,大大节省了存储资源,可以使播放设备存储更多的节目,节约了成本。
实施例二
本实施例是在实施例一的基础上对实施例一的进一步优化,参考图3,本发明的一种测试用传输流的处理方法,包括以下步骤:
步骤S301,预先根据静止图像和循环往复运动图像的周期性、整图组以及传输流标准中对节目时钟基准的要求将测试用传输流截取成对应的传输流片段。
步骤S302,根据传输流片段的时长计算对应的时基标记增量。
步骤S303,提取传输流片段的总体加工信息作为文件头,并将文件头添加在传输流片段的数据包之前。该总体加工信息包括传输流片段的码流速率和时基标记增量如节目时钟基准增量(ΔPCR)、显示时间标签增量(ΔPTS)、解码时间标签增量(ΔDTS)和传输流时间码增量(ΔTCD)等。
步骤S304,在每一个传输流片段的数据包的数据前添加N个指示字节,用于指示数据包后跟随的空包数量,并将这些空包删除,用加工特征码表示数据包的包加工方式,该包加工方式包括数据包的顺序码连续的更新以及时基标记的更新,并将数据包中的同步字0x47位置改为加工特征码,获取对应的数据文件并存储。其中加工特征码用一字节表示时可以指示256种加工方式。如以0x00表示数据包为节目关联表(PAT),此数据包加工方式为顺序码连续;以0x06表示数据包为有节目时钟基准的B帧起始包,加工方式为顺序码连续,更新节目时钟基准、显示时间标签等。并且加工特征码的长度与指示的加工方式可以由加工者制作时确定。
步骤S305,初始化。当需要读取数据文件时,对数据文件的文件头进行初始化,获取传输流片段的码流速率和时基标记增量。
步骤S306,读取当前数据包的加工特征码,根据加工特征码对数据包的顺序码连续以及时基标记进行更新。具体更新过程参考实施例一的更新过程,在此不再赘述。
步骤S307,读取当前数据包的内容,将数据包中的加工特征码改为同步字0x47,读取数据包的后188字节,后188字节包括同步字0x47。
步骤S308,判断是否完成一次读取循环,如果完成,则执行步骤S309,否则,执行步骤S310。
步骤S309,将当前循环次数累加,并将获取的新的循环次数更新当前循环次数。
步骤S310,根据传输流片段的码流速率要求判断是否需要添加对应的空包,如果需要添加,则执行步骤S311,否则,执行步骤S306。
步骤S311,根据N个指示字节的字节数量添加对应数量的空包,并执行步骤S306。
参考图4,本发明的一种处理测试用传输流的装置,包括:
片段截取模块401,用于根据静止图像和循环往复运动图像的周期性、整图组以及传输流标准中对节目时钟基准的要求将测试用传输流截取成对应的传输流片段。
增量获取模块402,用于根据片段截取模块401截取的传输流片段的时长计算对应的时基标记增量。
信息提取模块403,用于提取传输流片段的总体加工信息作为文件头,并将文件头添加在传输流片段的数据包之前,总体加工信息包括传输流片段的码流速率和增量获取模块402获取的时基标记增量,并触发数据压缩模块404。
数据压缩模块404,用于在每一个传输流片段的数据包的数据前添加N个指示字节,用于指示数据包后跟随的空包数量,并将空包删除,并触发文件加工模块405。
文件加工模块405,用于用加工特征码表示数据包的包加工方式,该包加工方式包括数据包的顺序码连续的更新以及时基标记的更新,并将数据包中的同步字0x47位置改为加工特征码,获取对应的数据文件。
存储模块406,用于存储文件加工模块405获取的数据文件。
初始化模块407,用于读取存储模块406存储的数据文件,对数据文件的文件头进行初始化,获取传输流片段的码流速率和时基标记增量,并触发特征码读取模块408。
特征码读取模块408,用于读取数据文件的数据包的加工特征码,根据加工特征码对数据包的顺序码连续以及时基标记进行更新。
内容读取模块409,用于读取特征码读取模块408读取的数据包的内容,将数据包中的加工特征码改为同步字0x47,读取数据包的后188字节,后188字节包括同步字0x47。
循环更新模块410,用于判断内容读取模块409是否完成一次读取循环,如果完成,则将当前循环次数累加,并将获取的新的循环次数更新当前循环次数,并触发速率调整模块411。
速率调整模块411,用于根据传输流片段的码流速率判断是否需要添加对应的空包,如果需要添加,则根据N个指示字节的字节数量添加对应数量的空包。
上述考虑到传输流片段中有许多空包数据,如一个5Mbps标清8彩条图像空包数据就占了50%以上,因此可以将这一部分存储资源节约出来。在截取码流片断后,不立即存储,而是对内容进行处理制作成数据文件,这样以来进一步节约了存储资源,提高了存储资源的利用率。
实施例三
本实施例是在实施例二的基础上对实施例二的进一步优化,当包加工信息中含有对另一数据文件加入方法时,例如,以视频流为基准,如果在每个数据包前再添加音频包指示标记,则可以进一步提高存储效率。参考图5,本发明的一种测试用传输流的处理方法,包括以下步骤:
步骤S501,预先根据静止图像和循环往复运动图像的周期性、整图组以及传输流标准中对节目时钟基准PCR的要求将测试用传输流中的视频数据截取成对应的视频流片段,并根据音频数据的周期性和音频帧的完整性将测试用传输流中的音频数据截取成对应的音频流片段。
步骤S502,分别根据视频流片段的时长和音频流片段的时长计算对应的视频流时基标记增量和音频流时基标记增量。该时基标记增量包括节目时钟基准增量、显示时间标签增量、解码时间标签增量、传输流时间码增量和音频包显示时间标记(ΔAPTS)等。
步骤S503,分别提取视频流片段的总体加工信息和音频流片段的总体加工信息对应作为视频文件头和音频文件头,并分别将视频文件头和音频文件头对应添加在视频流片段的数据包和音频流片段的数据包之前,视频流片段的总体加工信息包括视频流片段的码流速率和视频时基标记增量,音频流片段的总体加工信息包括音频流片段的码流速率和音频时基标记增量。
步骤S504,在每个视频流片段的数据包前添加N个指示字节,N满足N=X+Y,其中,X个指示字节用于指示视频流片段的数据包后跟随的空包数量,并将对应的空包删除,Y个指示字节用于指示视频流片段的数据包中添加的音频流片段的数据包的个数。在每个音频流片段的数据包前添加N个指示字节,N个指示字节用于指示音频流片段的数据包后跟随的空包数量,并将对应的空包删除。用视频加工特征码表示视频流片段的数据包的包加工方式,并将视频流片段的数据包中的同步字0x47位置改为视频加工特征码,获取对应的视频数据文件并存储,视频流片段的数据包的包加工方式包括视频流片段的数据包的顺序码连续的更新以及对应的时基标记的更新。用音频加工特征码表示音频流片段的数据包的包加工方式,并将音频流片段的数据包中的同步字0x47位置改为音频加工特征码,获取对应的音频数据文件并存储,音频流片段的数据包的包加工方式包括音频流片段的数据包的顺序码连续的更新以及对应的时基标记的更新。
步骤S505,初始化。当需要读取视频数据文件和音频数据文件时,分别对视频数据文件的视频文件头和音频数据文件的音频文件头进行初始化,对应获取视频流片段的码流速率和视频时基标记增量以及音频流片段的码流速率和音频时基标记增量。
步骤S506,读取视频数据文件的当前数据包的视频加工特征码,根据视频加工特征码对视频数据文件的当前数据包的顺序码连续以及对应的时基标记进行更新。例如:
当数据包为音频帧起始时,更新数据包中音频PTS;
当数据包为有PCR的视频帧后续时,更新数据包中PCR;
当数据包为视频帧B帧起始时,更新数据包中PTS;
当数据包为视频帧P帧起始时,更新数据包中PTS、DTS;
当数据包为视频帧I帧起始时,更新数据包中PTS、DTS、TCD;
当数据包为有PCR的视频帧B帧起始时,更新数据包中PCR、PTS;
当数据包为有PCR的视频帧P帧起始时,更新数据包中PCR、PTS、DTS;
当数据包为有PCR的视频帧I帧起始时,更新数据包中PCR、PTS、DTS、TCD,等等。
步骤S507,读取视频数据文件的当前数据包的内容,将数据包中的视频加工特征码改为同步字0x47,输出数据包的后188字节,后188字节包括同步字0x47;
步骤S508,判断是否读取到音频数据文件,如果读取到,则执行步骤S509,否则,执行步骤S513。
步骤S509,读取音频数据文件的当前数据包的音频加工特征码,根据音频加工特征码对音频数据文件的数据包的顺序码连续以及对应的时基标记进行更新。
步骤S510,读取音频数据文件的当前数据包的内容,将数据包中的音频加工特征码改为同步字0x47,输出数据包的后188字节,后188字节包括同步字0x47。
步骤S511,判断是否完成一次音频数据文件的读取循环,如果完成,则执行步骤S512,否则,执行步骤S513。
步骤S512,将当前音频循环次数累加,并将获取的新的音频循环次数更新当前音频循环次数。
步骤S513,根据空包指示字节判断是否添加对应的空包,如果需要添加,则执行步骤S514,否则,执行步骤S506。
步骤S514,根据指示字节的字节数量添加对应数量的空包。当读取完一个视频数据文件的数据包后且后续未读取到音频数据文件时,或者,当读取完一个音频数据文件的数据包后且音频文件未完成一次读取循环时,或者,当读取完一个音频数据文件的数据包后音频文件完成一次读取循环并完成成音频循环次数累加更新时,根据指示字节的字节数量添加对应数量的空包。
步骤S515,判断否完成一次视频数据文件的读取循环,如果完成,则执行步骤S516,否则,执行步骤S506。
步骤S516,将当前视频循环次数累加,将获取的新的视频循环次数更新当前视频循环次数,并执行步骤S506。
参考图6,本发明的一种处理测试用传输流的装置,包括:
片段截取模块601,用于根据静止图像和循环往复运动图像的周期性、整图组以及传输流标准中对节目时钟基准的要求将测试用传输流中的视频数据截取成对应的视频流片段,并根据音频数据的周期性和音频帧的完整性将测试用传输流中的音频数据截取成对应的音频流片段。
增量获取模块602,用于分别根据视频流片段的时长和音频流片段的时长计算对应的视频流时基标记增量和音频流时基标记增量。
信息提取模块603,用于分别提取视频流片段的总体加工信息和音频流片段的总体加工信息对应作为视频文件头和音频文件头,并分别将视频文件头和音频文件头对应添加在视频流片段的数据包和音频流片段的数据包之前,视频流片段的总体加工信息包括视频流片段的码流速率和视频时基标记增量,音频流片段的总体加工信息包括音频流片段的码流速率和音频时基标记增量。
信息压缩模块604,用于在每个视频流片段的数据包前添加N个指示字节,N满足N=X+Y,其中,X个指示字节用于指示视频流片段的数据包后跟随的空包数量,并将对应的空包删除,Y个指示字节用于指示视频流片段的数据包中添加的音频流片段的数据包的个数,并在每个音频流片段的数据包前添加N个指示字节,N个指示字节用于指示音频流片段的数据包后跟随的空包数量,并将对应的空包删除。
文件加工模块605,用于用视频加工特征码表示视频流片段的数据包的包加工方式,并将视频流片段的数据包中的同步字0x47位置改为视频加工特征码,获取对应的视频数据文件,视频流片段的数据包的包加工方式包括视频流片段的数据包的顺序码连续的更新以及对应的时基标记的更新,并用音频加工特征码表示音频流片段的数据包的包加工方式,并将音频流片段的数据包中的同步字0x47位置改为音频加工特征码,获取对应的音频数据文件,音频流片段的数据包的包加工方式包括音频流片段的数据包的顺序码连续的更新以及对应的时基标记的更新。
存储模块606,用于存储文件加工模块605获取的视频数据文件和音频数据文件。
初始化模块607,用于当需要读取视频数据文件和音频数据文件时,分别对视频数据文件的视频文件头和音频数据文件的音频文件头进行初始化,对应获取视频流片段的码流速率和视频时基标记增量以及音频流片段的码流速率和音频时基标记增量,并触发第一特征码读取模块608。
第一特征码读取模块608,用于读取视频数据文件的当前数据包的视频加工特征码,根据视频加工特征码对视频数据文件的当前数据包的顺序码连续以及对应的时基标记进行更新。
第一文件读取模块609,用于读取第一特征码读取模块608读取的当前数据包的内容,将数据包中的视频加工特征码改为同步字0x47,读取数据包的后188字节,后188字节包括同步字0x47,并触发第二特征码读取模块610。
第二特征码读取模块610,用于判断是否读取到音频数据文件,如果读取到,则读取音频数据文件的当前数据包的音频加工特征码,根据音频加工特征码对音频数据文件的数据包的顺序码连续以及对应的时基标记进行更新。
第二文件读取模块611,用于读取第二特征码读取模块610读取的当前数据包的内容,将数据包中的音频加工特征码改为同步字0x47,读取数据包的后188字节,后188字节包括同步字0x47;
第一循环更新模块612,用于判断第二文件读取模块611是否完成一次音频数据文件的读取循环,如果完成,则将当前音频循环次数累加,并将获取的新的音频循环次数更新当前音频循环次数;
速率调整模块613,用于当第一文件读取模块609读取完一个视频数据文件的数据包后且后续第二文件读取模块611未读取到音频数据文件时,或者,当第二文件读取模块611读取完一个音频数据文件的数据包后且音频文件未完成一次读取循环时,或者,当第二文件读取模块611读取完一个音频数据文件的数据包后音频文件完成一次读取循环并已完成成音频循环次数累加更新时,根据传输流片段的码流速率判断是否添加对应的空包,如果需要添加,则根据指示字节的字节数量添加对应数量的空包;
第二循环更新模块614,用于判断第一文件读取模块609是否完成一次视频数据文件的读取循环,如果完成,则将当前视频循环次数累加,将获取的新的视频循环次数更新当前视频循环次数。
按照上述方法单独制作音频数据文件和视频数据文件。音频数据文件中只含有音频包,视频数据文件中则含有视频流和PAT表、PMT表等。视频数据文件与音频数据文件中同步字都被加工特征码取代,视频数据文件中数据包前添加音频包指示以及空包指示字节;音频数据文件中音频包指示置为0或者不添加,当文件由截取的纯音频包片段加工而成时由于不含空包数据空包指示字节置为0或者不添加。这样可以实现多个视频与多个音频的任意复用,减少了存储文件的数量。例如原来如果需要测试传输流信号是要求在10个图像和10个声音选取一个图像信号和声音信号生成传输流,那么就要做100个传输流文件;而现在只需要做20个传输流数据文件即可,因此,可以进一步提高存储效率。
本领域技术人员可以理解:附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必需的。权利要求的内容记载的方案也是本发明实施例的保护范围。实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上的实施例仅仅是对本发明的优选实施方式进行描述,并非对本发明的范围进行限定,在不脱离本发明设计精神的前提下,本领域普通工程技术人员对本发明的技术方案作出的各种变形和改进,均应落入本发明的权利要求书确定的保护范围内。
Claims (8)
1、一种测试用传输流的处理方法,其特征在于,包括以下步骤:
预先根据静止图像和循环往复运动图像的周期性、整图组GOP以及传输流标准中对节目时钟基准PCR的要求将测试用传输流截取成对应的传输流片段;
根据所述传输流片段的时长计算对应的时基标记增量;
存储所述传输流片段和所述时基标记增量;
当需要读取所述传输流片段时,在初始化过程中将所述传输流片段中数据包的时基标记的累加值清零;
在读取所述传输流片段过程中,判断当前读到的数据包是否为空包,如果是空包,则不作处理,否则,根据所述数据包中的节目识别码PID识别所述数据包的类型,将相同节目识别码PID的数据包的顺序码连续累加,并按照所述顺序码读取对应的数据包;
判断当前数据包是否有时基标记,如果有时基标记,则将当前数据包的循环次数和对应的时基标记增量相乘,获取当前数据包的时基标记的累加值,将所述累加值与当前数据包的时基标记的当前值相加,并用相加后获取新的时基标记值更新当前数据包的时基标记的当前值;
判断是否完成一次读取循环,如果完成,则将当前循环次数累加,用获取的新的循环次数更新所述当前循环次数,并继续下一次循环的读取,否则继续下一数据包的读取。
2、一种按照权利要求1所述方法处理测试用传输流的装置,其特征在于,包括:
片段截取模块,用于根据静止图像和循环往复运动图像的周期性、整图组GOP以及传输流标准中对节目时钟基准PCR的要求将测试用传输流截取成对应的传输流片段;
增量获取模块,用于根据所述片段截取模块截取的传输流片段的时长计算对应的时基标记增量;
存储模块,用于存储所述片段截取模块截取的传输流片段和所述增量获取模块计算的时基标记增量;
初始化模块,用于当需要读取所述存储模块存储的传输流片段时,在初始化过程中将所述传输流片段的数据包的时基标记的累加值清零,并触发片段读取模块;
片段读取模块,用于读取所述传输流片段,并在读取所述传输流片段的过程中判断所述数据包是否为空包,如果是空包,则不作处理,否则,根据所述数据包中的节目识别码PID识别所述数据包的类型,将相同节目识别码PID的数据包的顺序码连续累加,并按照所述顺序码读取对应的数据包;
时标更新模块,用于判断所述片段读取模块读取的数据包是否有时基标记,如果有时基标记,则将当前数据包的循环次数和对应的时基标记增量相乘,获取当前数据包的时基标记的累加值,将所述累加值与当前数据包的时基标记的当前值相加,并用相加后获取新的时基标记值更新当前数据包的时基标记的当前值;
循环更新模块,用于判断所述片段读取模块是否完成一次读取循环,如果完成,则将当前循环次数累加,并将获取的新的循环次数更新所述当前循环次数。
3、一种测试用传输流的处理方法,其特征在于,包括以下步骤:
预先根据静止图像和循环往复运动图像的周期性、整图组GOP以及传输流标准中对节目时钟基准PCR的要求将测试用传输流截取成对应的传输流片段;
根据所述传输流片段的时长计算对应的时基标记增量;
提取所述传输流片段的总体加工信息作为文件头,并将所述文件头添加在所述传输流片段的数据包之前,所述总体加工信息包括所述传输流片段的码流速率和所述时基标记增量;
在每一个所述传输流片段的数据包的数据前添加N个指示字节,用于指示所述数据包后跟随的空包数量,并将所述空包删除;
用加工特征码表示所述数据包的包加工方式,所述包加工方式包括所述数据包的顺序码连续的更新以及时基标记的更新,并将所述数据包中的同步字0x47位置改为所述加工特征码,获取对应的数据文件并存储;
当需要读取所述数据文件时,对所述数据文件的文件头进行初始化,获取所述传输流片段的码流速率和所述时基标记增量;
读取当前数据包的加工特征码,根据所述加工特征码对所述数据包的顺序码连续以及时基标记进行更新;
读取当前数据包的内容,将所述数据包中的加工特征码改为所述同步字0x47,读取所述数据包的后188字节,所述后188字节包括所述同步字0x47;
判断是否完成一次读取循环,如果完成,则将当前循环次数累加,并将获取的新的循环次数更新所述当前循环次数;
根据所述传输流片段的码流速率判断是否需要添加对应的空包,如果需要添加,则根据所述N个指示字节的字节数量添加对应数量的空包,并继续下一数据包的读取或继续下一次循环的读取,否则,直接继续下一数据包的读取或继续下一次循环的读取。
4、一种按照权利要求3所述方法处理测试用传输流的装置,其特征在于,包括:
片段截取模块,用于根据静止图像和循环往复运动图像的周期性、整图组GOP以及传输流标准中对节目时钟基准PCR的要求将测试用传输流截取成对应的传输流片段;
增量获取模块,用于根据所述片段截取模块截取的传输流片段的时长计算对应的时基标记增量;
信息提取模块,用于提取所述传输流片段的总体加工信息作为文件头,并将所述文件头添加在所述传输流片段的数据包之前,所述总体加工信息包括所述传输流片段的码流速率和所述增量获取模块获取的时基标记增量,并触发数据压缩模块;
数据压缩模块,用于在每一个所述传输流片段的数据包的数据前添加N个指示字节,用于指示所述数据包后跟随的空包数量,并将所述空包删除,并触发文件加工模块;
文件加工模块,用于用加工特征码表示所述数据包的包加工方式,所述包加工方式包括所述数据包的顺序码连续的更新以及时基标记的更新,并将所述数据包中的同步字0x47位置改为所述加工特征码,获取对应的数据文件;
存储模块,用于存储所述文件加工模块获取的数据文件;
初始化模块,用于读取所述存储模块存储的数据文件,对所述数据文件的文件头进行初始化,获取所述传输流片段的码流速率和所述时基标记增量,并触发特征码读取模块;
特征码读取模块,用于读取所述数据文件的数据包的加工特征码,根据所述加工特征码对所述数据包的顺序码连续以及时基标记进行更新;
内容读取模块,用于读取所述特征码读取模块读取的数据包的内容,将所述数据包中的加工特征码改为所述同步字0x47,读取所述数据包的后188字节,所述后188字节包括所述同步字0x47;
循环更新模块,用于判断所述内容读取模块是否完成一次读取循环,如果完成,则将当前循环次数累加,并将获取的新的循环次数更新所述当前循环次数,并触发速率调整模块;
速率调整模块,用于根据所述传输流片段的码流速率判断是否需要添加对应的空包,如果需要添加,则根据所述N个指示字节的字节数量添加对应数量的空包。
5、根据权利要求1或3所述的测试用传输流的处理方法,其特征在于,所述时基标记增量包括节目时钟基准增量△PCR、显示时间标签增量△PTS、解码时间标签增量△DTS和传输流时间码增量△TCD。
6、一种测试用传输流的处理方法,其特征在于,包括以下步骤:
预先根据静止图像和循环往复运动图像的周期性、整图组GOP以及传输流标准中对节目时钟基准PCR的要求将测试用传输流中的视频数据截取成对应的视频流片段,并根据音频数据的周期性和音频帧的完整性将所述测试用传输流中的音频数据截取成对应的音频流片段;
分别根据所述视频流片段的时长和所述音频流片段的时长计算对应的视频流时基标记增量和音频流时基标记增量;
分别提取所述视频流片段的总体加工信息和所述音频流片段的总体加工信息对应作为视频文件头和音频文件头,并分别将所述视频文件头和所述音频文件头对应添加在所述视频流片段的数据包和所述音频流片段的数据包之前,所述视频流片段的总体加工信息包括所述视频流片段的码流速率和所述视频时基标记增量,所述音频流片段的总体加工信息包括所述音频流片段的码流速率和所述音频时基标记增量;
在每个所述视频流片段的数据包前添加N个指示字节,N满足N=X+Y,其中,X个指示字节用于指示所述视频流片段的数据包后跟随的空包数量,并将对应的空包删除,Y个指示字节用于指示所述视频流片段的数据包中添加的所述音频流片段的数据包的个数;
在每个所述音频流片段的数据包前添加N个指示字节,所述N个指示字节用于指示所述音频流片段的数据包后跟随的空包数量,并将对应的空包删除;
用视频加工特征码表示所述视频流片段的数据包的包加工方式,并将所述视频流片段的数据包中的同步字0x47位置改为所述视频加工特征码,获取对应的视频数据文件并存储,所述视频流片段的数据包的包加工方式包括所述视频流片段的数据包的顺序码连续的更新以及对应的时基标记的更新;
用音频加工特征码表示所述音频流片段的数据包的包加工方式,并将所述音频流片段的数据包中的同步字0x47位置改为所述音频加工特征码,获取对应的音频数据文件并存储,所述音频流片段的数据包的包加工方式包括所述音频流片段的数据包的顺序码连续的更新以及对应的时基标记的更新;
当需要读取所述视频数据文件和所述音频数据文件时,分别对所述视频数据文件的视频文件头和所述音频数据文件的音频文件头进行初始化,对应获取所述视频流片段的码流速率和视频时基标记增量以及所述音频流片段的码流速率和音频时基标记增量;
读取视频数据文件的当前数据包的视频加工特征码,根据所述视频加工特征码对所述视频数据文件的当前数据包的顺序码连续以及对应的时基标记进行更新;
读取所述视频数据文件的当前数据包的内容,将所述数据包中的视频加工特征码改为同步字0x47,读取所述数据包的后188字节,所述后188字节包括所述同步字0x47;
判断是否读取到音频数据文件,如果读取到,则读取所述音频数据文件的当前数据包的音频加工特征码,根据所述音频加工特征码对所述音频数据文件的数据包的顺序码连续以及对应的时基标记进行更新;
读取所述音频数据文件的当前数据包的内容,将所述数据包中的音频加工特征码改为同步字0x47,读取所述数据包的后188字节,所述后188字节包括所述同步字0x47;
判断是否完成一次音频数据文件的读取循环,如果完成,则将当前音频循环次数累加,并将获取的新的音频循环次数更新所述当前音频循环次数;
当读取完一个视频数据文件的数据包后且后续未读取到音频数据文件时,或者,当读取完一个音频数据文件的数据包后且所述音频文件未完成一次读取循环时,或者,当读取完一个音频数据文件的数据包后所述音频文件完成一次读取循环并完成所述成音频循环次数累加更新时,根据所述传输流片段的码流速率判断是否添加对应的空包,如果需要添加,则根据所述指示字节的字节数量添加对应数量的空包,否则,继续下一数据包的读取;
判断否完成一次视频数据文件的读取循环,如果完成,则将当前视频循环次数累加,将获取的新的视频循环次数更新所述当前视频循环次数,并继续下一次视频循环的读取,否则,直接继续下一次视频循环的读取。
7、根据权利要求6所述的测试用传输流的处理方法,其特征在于,所述时基标记增量包括节目时钟基准增量△PCR、显示时间标签增量△PTS、解码时间标签增量△DTS、传输流时间码增量△TCD和音频包显示时间标记△APTS。
8、一种按照权利要求6所述方法处理测试用传输流的装置,其特征在于,包括:
片段截取模块,用于根据静止图像和循环往复运动图像的周期性、整图组GOP以及传输流标准中对节目时钟基准PCR的要求将测试用传输流中的视频数据截取成对应的视频流片段,并根据音频数据的周期性和音频帧的完整性将所述测试用传输流中的音频数据截取成对应的音频流片段;
增量获取模块,用于分别根据所述视频流片段的时长和所述音频流片段的时长计算对应的视频流时基标记增量和音频流时基标记增量;
信息提取模块,用于分别提取所述视频流片段的总体加工信息和所述音频流片段的总体加工信息对应作为视频文件头和音频文件头,并分别将所述视频文件头和所述音频文件头对应添加在所述视频流片段的数据包和所述音频流片段的数据包之前,所述视频流片段的总体加工信息包括所述视频流片段的码流速率和所述视频时基标记增量,所述音频流片段的总体加工信息包括所述音频流片段的码流速率和所述音频时基标记增量;
信息压缩模块,用于在每个所述视频流片段的数据包前添加N个指示字节,N满足N=X+Y,其中,X个指示字节用于指示所述视频流片段的数据包后跟随的空包数量,并将对应的空包删除,Y个指示字节用于指示所述视频流片段的数据包中添加的所述音频流片段的数据包的个数,并在每个所述音频流片段的数据包前添加N个指示字节,所述N个指示字节用于指示所述音频流片段的数据包后跟随的空包数量,并将对应的空包删除;
文件加工模块,用于用视频加工特征码表示所述视频流片段的数据包的包加工方式,并将所述视频流片段的数据包中的同步字0x47位置改为所述视频加工特征码,获取对应的视频数据文件,所述视频流片段的数据包的包加工方式包括所述视频流片段的数据包的顺序码连续的更新以及对应的时基标记的更新,并用音频加工特征码表示所述音频流片段的数据包的包加工方式,并将所述音频流片段的数据包中的同步字0x47位置改为所述音频加工特征码,获取对应的音频数据文件,所述音频流片段的数据包的包加工方式包括所述音频流片段的数据包的顺序码连续的更新以及对应的时基标记的更新;
存储模块,用于存储所述文件加工模块获取的视频数据文件和音频数据文件;
初始化模块,用于当需要读取所述视频数据文件和所述音频数据文件时,分别对所述视频数据文件的视频文件头和所述音频数据文件的音频文件头进行初始化,对应获取所述视频流片段的码流速率和视频时基标记增量以及所述音频流片段的码流速率和音频时基标记增量,并触发第一特征码读取模块;
第一特征码读取模块,用于读取视频数据文件的当前数据包的视频加工特征码,根据所述视频加工特征码对所述视频数据文件的当前数据包的顺序码连续以及对应的时基标记进行更新;
第一文件读取模块,用于读取所述第一特征码读取模块读取的当前数据包的内容,将所述数据包中的视频加工特征码改为同步字0x47,读取所述数据包的后188字节,所述后188字节包括所述同步字0x47,并触发第二特征码读取模块;
第二特征码读取模块,用于判断是否读取到音频数据文件,如果读取到,则读取所述音频数据文件的当前数据包的音频加工特征码,根据所述音频加工特征码对所述音频数据文件的数据包的顺序码连续以及对应的时基标记进行更新;
第二文件读取模块,用于读取所述第二特征码读取模块读取的当前数据包的内容,将所述数据包中的音频加工特征码改为同步字0x47,读取所述数据包的后188字节,所述后188字节包括所述同步字0x47;
第一循环更新模块,用于判断所述第二文件读取模块是否完成一次音频数据文件的读取循环,如果完成,则将当前音频循环次数累加,并将获取的新的音频循环次数更新所述当前音频循环次数;
速率调整模块,用于当所述第一文件读取模块读取完一个视频数据文件的数据包后且后续所述第二文件读取模块未读取到音频数据文件时,或者,当所述第二文件读取模块读取完一个音频数据文件的数据包后且所述音频文件未完成一次读取循环时,或者,当所述第二文件读取模块读取完一个音频数据文件的数据包后所述音频文件完成一次读取循环并已完成所述成音频循环次数累加更新时,根据所述传输流片段的码流速率判断是否添加对应的空包,如果需要添加,则根据所述指示字节的字节数量添加对应数量的空包;
第二循环更新模块,用于判断所述第一文件读取模块是否完成一次视频数据文件的读取循环,如果完成,则将当前视频循环次数累加,将获取的新的视频循环次数更新所述当前视频循环次数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100818673A CN101521833B (zh) | 2009-04-14 | 2009-04-14 | 一种测试用传输流的处理方法及其处理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100818673A CN101521833B (zh) | 2009-04-14 | 2009-04-14 | 一种测试用传输流的处理方法及其处理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101521833A true CN101521833A (zh) | 2009-09-02 |
CN101521833B CN101521833B (zh) | 2011-01-05 |
Family
ID=41082167
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100818673A Active CN101521833B (zh) | 2009-04-14 | 2009-04-14 | 一种测试用传输流的处理方法及其处理装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101521833B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103400584A (zh) * | 2013-07-31 | 2013-11-20 | 成都华迈通信技术有限公司 | 音频压缩性能最大化和流量低消耗的智能处理方法及装置 |
CN103618896A (zh) * | 2013-12-06 | 2014-03-05 | 北京牡丹视源电子有限责任公司 | 一种测试用的无缝循环传输流生成方法及装置 |
CN104093038A (zh) * | 2014-07-10 | 2014-10-08 | 腾讯科技(深圳)有限公司 | 用于实时流媒体识别服务的测试和监控方法及装置 |
CN106534981A (zh) * | 2016-11-28 | 2017-03-22 | 湖南国科微电子股份有限公司 | 一种机顶盒测试用的码流文件的生成方法及生成装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000511383A (ja) * | 1997-03-12 | 2000-08-29 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 記録担体にディジタル情報信号を記録する装置及び方法 |
JP3772154B2 (ja) * | 2003-03-28 | 2006-05-10 | 三菱電機インフォメーションシステムズ株式会社 | 任意位置再生用連続再生データ転送装置及び任意位置再生用mpegデータ転送装置及びプログラム |
CN1276658C (zh) * | 2003-06-13 | 2006-09-20 | 天津大学 | 对循环播放的传输流进行控制和调整的方法 |
CN100438634C (zh) * | 2006-07-14 | 2008-11-26 | 杭州国芯科技有限公司 | 视音频同步方法 |
JP4793247B2 (ja) * | 2006-12-18 | 2011-10-12 | 株式会社日立製作所 | 記録装置、記録方法、再生装置及び再生方法 |
JP4682159B2 (ja) * | 2007-01-26 | 2011-05-11 | 富士通東芝モバイルコミュニケーションズ株式会社 | ストリーム再生装置 |
-
2009
- 2009-04-14 CN CN2009100818673A patent/CN101521833B/zh active Active
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103400584A (zh) * | 2013-07-31 | 2013-11-20 | 成都华迈通信技术有限公司 | 音频压缩性能最大化和流量低消耗的智能处理方法及装置 |
CN103400584B (zh) * | 2013-07-31 | 2015-10-28 | 成都华迈通信技术有限公司 | 音频压缩性能最大化和流量低消耗的智能处理方法及装置 |
CN103618896A (zh) * | 2013-12-06 | 2014-03-05 | 北京牡丹视源电子有限责任公司 | 一种测试用的无缝循环传输流生成方法及装置 |
CN103618896B (zh) * | 2013-12-06 | 2017-02-08 | 北京牡丹视源电子有限责任公司 | 一种测试用的无缝循环传输流生成方法及装置 |
CN104093038A (zh) * | 2014-07-10 | 2014-10-08 | 腾讯科技(深圳)有限公司 | 用于实时流媒体识别服务的测试和监控方法及装置 |
CN104093038B (zh) * | 2014-07-10 | 2015-09-16 | 腾讯科技(深圳)有限公司 | 用于实时流媒体识别服务的测试和监控方法及装置 |
US9667508B2 (en) | 2014-07-10 | 2017-05-30 | Tencent Technology (Shenzhen) Company Limited | Method and system for testing and monitoring a real-time streaming media recognition service provider |
CN106534981A (zh) * | 2016-11-28 | 2017-03-22 | 湖南国科微电子股份有限公司 | 一种机顶盒测试用的码流文件的生成方法及生成装置 |
CN106534981B (zh) * | 2016-11-28 | 2019-07-16 | 湖南国科微电子股份有限公司 | 一种机顶盒测试用的码流文件的生成方法及生成装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101521833B (zh) | 2011-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6823131B2 (en) | Method and device for decoding a digital video stream in a digital video system using dummy header insertion | |
CN102129474B (zh) | 一种视频数据检索方法及其装置和系统 | |
CN101843099B (zh) | 存储视频数据的装置和方法 | |
CN109840879B (zh) | 图像渲染方法、装置、计算机存储介质及终端 | |
EP1222822A2 (en) | Trick play signal generation for a digital video recorder | |
CN101521833B (zh) | 一种测试用传输流的处理方法及其处理装置 | |
CN110264280A (zh) | 一种户外广告监测方法 | |
CN101206899A (zh) | 用于编码/解码具有预览功能的多媒体数据的方法以及装置 | |
US20100098161A1 (en) | Video encoding apparatus and video encoding method | |
CN103165151A (zh) | 多媒体文件播放方法和装置 | |
CN111818295B (zh) | 一种图像获取方法及装置 | |
CN109644290B (zh) | 数据转接装置、数据采集装置及系统、方法 | |
CN110225399B (zh) | 流媒体处理方法、装置、计算机设备及存储介质 | |
CN104506920A (zh) | 一种播放全媒体数据信息的方法及装置 | |
EP1455360A2 (en) | Disc apparatus, disc recording method, disc playback method, recording medium, and program | |
WO2024109317A1 (zh) | 一种传输视频帧及摄像参数信息的方法与设备 | |
KR101349487B1 (ko) | 패킷의 길이가 가변적인 mpeg-2 트랜스포트 패킷 생성 장치 및 방법 | |
JP5094993B2 (ja) | 再生装置、再生方法、及びシステム集積回路 | |
US11653039B2 (en) | Video stream batching | |
KR100382655B1 (ko) | 프로그램 저장 방법 및 이에 적합한 저장 장치 | |
CN106791909A (zh) | 一种视频数据处理方法、装置和服务器 | |
CN113055680B (zh) | 一种分布式转码方法 | |
JP2006333330A (ja) | データ処理方法、その装置およびプログラム | |
JPH11262002A (ja) | データ解析装置及びデータ解析方法 | |
US20220256191A1 (en) | Panoramic video generation method, video collection method, and related apparatus |
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 |