一种可伸缩的传输流收录方法*
2015-06-23康红娟杨先伟
罗 影,康红娟,杨先伟
(1. 卫士通信息产业股份有限公司,四川 成都 610041;2. 四川长虹电器股份有限公司,四川 成都 610041;3.无锡职业技术学院,江苏 无锡 214073)
一种可伸缩的传输流收录方法*
罗 影1,康红娟2,杨先伟3
(1. 卫士通信息产业股份有限公司,四川 成都 610041;2. 四川长虹电器股份有限公司,四川 成都 610041;3.无锡职业技术学院,江苏 无锡 214073)
传输流(TS流)广泛应用于数字电视和其它多媒体领域,是最常见的码流格式之一。随着新媒体等业务的快速发展,TS收录已成为内容提供商和内容运营商获得节目素材和进行节目交流的重要手段。在充分分析现有TS收录方法优缺点的基础上,提出一种新的收录方法,该收录方法具有收录效率高,满足实时性业务需求的优点,又能在收录任务异常时帮助排查异常原因,恢复收录内容,并讨论了生成的压缩数据的安全存储。
TS流;收录系统;加密;杂凑算法
0 引 言
MPEG组织制定了用于视音频压缩编码及其封装格式的MPEG-2标准,该标准的第一部分系统层定义了将音视频和其它数据组合成适宜于存储或传输的数据流规范[1]。系统层中定义了两种不同的传输协议:传输流(TS)和节目流(PS)。TS流可包括多套数字电视节目,适合在有噪音的环境中传输,是数字电视领域最常见的码流格式。
TS流具有很强的可扩展性,可以传输常见的音视频流,也允许传输各种业务信息,既可封装H.264等视频流,也可插入条件接收系统(CAS)以及电子节目指南(EPG)信息等。因此TS流在数字电视等领域应用广泛。目前TS流已经成为广播电视系统流的标准,北美的ATSC和欧洲的DVB等均在MPEG-2 TS基础上进行了扩展,由此可说明TS流的重要性。
随着新媒体业务的迅速发展,内容提供商和内容运营商已经将TS流收录作为获得节目素材和进行节目交流的重要手段。数字节目制作中需要将音视频流复用成恒定码率的TS流。面对如此巨大的需求,TS流收录需要一个良好稳定的收录方法,好的收录方法应该考虑文件输出是否具有及时性,收录效率高低,对存储系统要求情况,当数据流出现异常时(如网络异常,收录系统故障)怎样判断常见故障,是否对丢失内容进行恢复等[2]。现有的TS收录方法主要有离线式收录和在线式收录。在线式收录方法可即时输出文件,能满足实时性要求高的应用场景;而离线式收录的实时性不高,收录效率低。但当数据流异常时,在线式收录将会出现内容丢失,收录任务异常且无法恢复,排查原因困难等问题;而离线式收录在数据流异常时便于排查异常原因和恢复丢失的内容(如收录系统故障)。
本文在充分分析这些收录方法优缺点的基础上,提出一种新的收录方法,可伸缩的传输流收录。该收录方法既具有收录效率高,可满足实时性业务需求的优点,又能在收录任务异常时帮助排查异常原因,恢复收录内容。另外,此收录方法向下兼容在线式收录和离线式收录,只需通过简单的配置就可以退化为上述两种方法中的任意一种。
1 传输流简介
MPEG-2系统层定义了TS流和PS流,两者都是由压缩后的音视频数据和辅助数据打包而成。其中PS流主要针对无差错的环境,如DVD、交互式多媒体等。TS流则主要面对有差错的环境,其分组长度固定,结构复杂,容错性好,灵活性高,允许使用复用器对数据进行快速处理。TS流形成过程见图1。
图1 TS流形成过程
按照形成过程,可将TS流中涉及到的码流分为基本流(ES)、打包的基本流(PES)和传输流。ES流是由压缩层编码产生的音视频数据加上辅助数据而成的原始流;PES流是由ES流按照语法规则形成的中间层,对应PES包格式;TS流是由PES包添加包头后产生的数据包串,对应TS包格式。TS流的形成过程如图1。压缩层对原始的音视频信号进行编码后产生ES流,系统层将ES流打包成PES包。TS复合器将音视频PES包切割打包为定长的TS包,与系统信息和填充数据交织在一起形成TS流。
TS包188字节,由包头和负载组成,包头包含了PID(包的ID值)、是否存在调整字段、是否存在负载等重要信息。调整字段会包含系统时间信息(PCR),而有效负载可为PES包或节目详细信息(PSI)。PES包通常包含一帧压缩编码的音频或视频构成的访问单元,而PSI信息描述解复用和其他系统操作所需要的信息,其中节目分配表(PAT)和节目映射表(PMT)尤其重要。PAT表用于描述每套节目对应的PMT表的信息,而PMT表则描述包含在节目中的每个流的信息。解析TS流时需将TS包拼凑成PES或PSI,先解析PAT表,再解析PMT表,接着解析并收录需要的流和系统信息。
2 在线式收录和离线式收录
现有的TS收录方法主要有离线式收录和在线式收录。
在线式收录在收录的同时输出媒体文件,甚至可以做到边采边编。在线式收录包含两个模块:解析模块和文件封装模块。解析模块的主要工作是将TS流按照系统层的规定解析为音视频ES流和系统信息(如音视频同步信息)。文件封装模块将ES流和系统信息进行编解码和封装,输出用户所需的媒体文件格式。如果用户所需的音视频格式和TS流中原有的音视频格式有差异,还需要进行视音频解码和编码。
在线式收录的工作流程是:首先将TS流送入解析模块;然后解析模块将TS流解析为ES流和相关的系统信息并输送给文件封装模块;接下来文件封装模块将ES流和系统信息进行音视频同步、编解码、文件封装,最终输出收录任务需要的媒体文件。
在线式收录的不足是收录任务异常时无法恢复,当收录任务非常重要时这将导致灾难性的后果。
离线式收录先将TS流缓存为中间文件,然后待到收录节目播出完毕缓冲文件完成后,再对中间文件进行解析得到最终的目标文件。离线式收录需要新加一个TS流存储模块,该模块对TS流不做任何处理,直接存储为中间文件。
离线式收录的流程是:首先将TS流送入TS流存储模块存储为中间文件;然后待到存储完成后(如达到收录结束时间点),将中间文件送入解析模块;接下来的流程和在线式收录相同,解析模块将TS解析为ES和系统信息,然后文件封装模块将它们封装并输出为媒体文件。
离线式收录的不足有:效率低,任务完成时间包括节目本身的时长以及后续进行的解析、编解码、文件封装等时间;占用存储空间大,收录时把所有节目都存储下来,即使只收录全部五套节目中的一套,这会占用大量的磁盘储存空间。
3 可伸缩收录
本节详细描述新的收录方法——可伸缩的传输流收录方法。
3.1 可伸缩收录工作流程
可伸缩收录包含4个模块:解析模块、文件封装模块、压缩模块、解压缩模块(见图2)。压缩模块将TS流压缩后输出并存储,存储的压缩数据在必要时送入解压缩模块解压。压缩模块和解压缩模块不仅可以在收录异常时帮助恢复收录任务,还可以在离线式收录中发挥重要作用。
图2 可伸缩收录过程
工作时将开关1和开关2闭合,开关3断开。工作流程是:首先TS流同时进入解析模块1和压缩模块;然后进入解析模块1的TS流被解析为ES流和系统信息;接下来文件封装模块1将ES流和系统信息封装为媒体文件;另一边,进入压缩模块的TS流被压缩后得到压缩文件并存储在后台。
系统故障导致收录任务失败时,可以启用存储在后台的压缩文件恢复收录任务。此时需将开关1和开关2断开,开关3闭合。执行流程是:首先将压缩文件送入解压缩模块,解压后得到恢复的TS流;然后TS解析模块2解析TS得到ES流和系统信息;接下来文件封装模块2将它们封装为媒体文件。
3.2 压缩模块详情
压缩模块是可伸缩收录方法中最重要的模块之一,其基本思想是选择性地保留TS包,即只保留与收录任务相关的TS包,丢弃与收录任务无关的TS包。这是它与普通压缩算法的根本区别。
压缩模块的工作流程包括基本的系统层解析:①解析并保存PSI信息。这和普通的TS解析流程一样,先解析PAT再解析PMT等;②解析并保存相关ES流。按照系统层规定解析与收录任务相关的音视频数据并保存。压缩算法的描述如下。
算法1 TS压缩算法
输入:TS流,收录起止时间,需收录的节目。
输出:压缩后的TS流文件。
步骤:
1)取一个TS包并解析包头信息。
2)如果当前时间大于收录开始时间,转入步骤3。否则执行以下步骤:
2.1)如果TS包含PSI信息,缓存之;否则,丢弃此包。
2.2)转入步骤1)。
3)如果当前时间大于收录结束时间,转入步骤4)。否则执行以下步骤:
3.1)如果是空包,丢弃之。
3.2)如果是包含系统信息的TS包,保留之。
3.3)如果是含有与收录任务相关的PSI信息的TS包,保留之。
3.4)如果是与收录任务相关的音视频TS包,保留之。
3.5)如果是无法识别的TS包或者不识别流的TS包,丢弃之。
3.6)以上步骤无法决定的包,丢弃之。
3.7)转到步骤1)。
4)在保留TS包的前面添加4个字节记录相邻两个包间的丢包数,然后将包依次写入压缩TS流文件,并返回。
压缩算法中需要注意以下几点:
1)步骤2.1中只缓存最新的PSI信息,且在第一次进入步骤3时立即将缓存的PSI信息保留下来。
2)步骤3.2中提到含系统信息的TS包,包括含PCR信息的TS包。
3)步骤3.4是指当TS流中包含多套节目时,只保留待收录节目的数据,丢弃其他节目的数据。比如收录含有五套节目的TS流中的一套节目时,只保留那一套节目的音视频TS包。
4)为了记录保存下来的TS包之间的丢包情况,需要添加一些辅助信息,比如压缩算法中提到的在TS包的前面添加4个字节记录相邻两个TS包之间的丢包数。另外,必要时这四个字节还可以添加别的辅助信息,如索引信息、视频帧类型标识等。
经过筛选、压缩和添加辅助信息后,保留下来的数据大大降低,特别是含有多套节目的TS流。
例如,收录含有五套节目的TS流中的一套时,有效的数据为20%左右。虽然TS包前面增加的4个字节使存储空间增加2.1%,但TS流有大量的填充数据和空包(很多TS流的空包率大于10%甚至更高),因此压缩后数据的大小为原始数据的20%以下。而普通压缩工具WinRAR等只能将该流压缩为原始数据的90%左右,且压缩速度很慢。
本压缩算法的优点是:①压缩率高。它不同于离线式收录时将TS流全盘接收,而是仅仅保留有用的数据;②压缩效率高。普通压缩软件或者音视频编码软件的压缩速度非常慢。
3.3 解压缩模块详情
解压缩模块将压缩的TS数据恢复为符合标准的TS流,以便后续解析。
解压缩算法的基本思想是:压缩算法中丢弃的是与收录任务无关的TS包,这些包是记录与收录任务毫不相干的数据还是无用的空包,这并不重要,都是在解析时被丢掉的数据。解压缩算法的描述如下。
算法2 TS解压缩算法
输入:压缩TS流文件。
输出:解压缩的TS流文件。
步骤:
1)如果压缩TS文件没有读取完毕,则读取一个已添加4字节辅助信息的TS包,并转入步骤2);否则转入步骤4)。
2)读取辅助信息中的丢包数,然后在解压缩TS文件的末尾插入对应个数的空包。
3)删除该TS包前面的4字节辅助信息,然后将之插入解压缩TS文件的末尾。转入步骤1)。
4)返回解压缩的TS流文件。
由于PSI信息和系统信息没有被丢弃,因此这些信息可以被完整地复原。另外,压缩阶段丢弃的是与收录任务无关的TS包,这些TS包都要被解析模块忽略掉。经过上述方法恢复得到的TS流,包含正确的系统信息、PSI信息和与收录任务相关的节目流信息。即解压缩后得到的TS流包含了与收录任务密切相关的完整的数据。
3.4 压缩数据的保密性
某些情况下,用户可能希望能保证压缩数据的保密性。一个基本想法就是将压缩数据进行加密,然后把密文数据存储在服务器上。这样一来,非授权用户只能获得密文数据,无法知道原始数据。而另一方面,数据的完整性一般可以由基于哈希函数的签名体制保证的。
我国的商密分组密码算法SM4可对压缩数据进行对称加密。SM4分组密码算法的分组长度为128比特,密钥长度为128比特,解密算法与加密算法的结构相同,这可以避免分别实现加密和解密。密码算法的工作模式可根据用户需要进行选择,比如CBC模式、CTR模式、GCM模式、XTS模式等[3]。
哈希函数可以采用我国国家密码管理局颁布的SM3密码杂凑算法,它适用于商用中的数字签名和验证、消息认证码的生成与验证以及随机数的生成,可满足多种应用的安全需求。算法的输入数据可以为任意有限长度的比特串,输出值长度为256比特。
需要注意的是,密文数据很难实现快速检索、查找等功能。因此简单的加密和签名体制不能使加密压缩数据提供有效搜索功能等服务。
3.5 退化为在线式收录和离线式收录
可伸缩式收录退化为普通的在线式收录的方法是切断送入压缩存储模块的TS流,见图3。此时压缩模块和解压缩模块都不再工作,出现异常时也无法恢复收录任务。为了突出主要流程,图3将没有起作用的部分标注为灰色。
图3 在线式收录的示意
可伸缩式收录退化为普通的离线式收录的方法是切断送入TS解析模块1的TS流,见图4。此时TS解析模块1和文件封装模块1都不再工作,TS流经过压缩模块被压缩为压缩文件,事后压缩文件送入解压缩模块解压为普通TS,然后数据顺序通过TS解析模块2和文件封装模块2,得到最终的媒体文件。为了突出主要流程,图4将没有起作用的部分标注为灰色。
图4 离线式收录的示意
4 三种收录方法的比较
数字电视中最常用的就是复用多套节目的TS流,可伸缩式收录尤其适合这种复用多套节目的TS流。此时的可伸缩式收录兼备在线式和离线式收录的优点,收录效率高,存储空间占用小,收录任务可恢复,便于排查异常原因。表1对三种收录方法的特点进行比较。
表1 三种方法的比较
5 结 语
国内数字电视的推行是大势所趋,我国政府规定2015年全面实现数字电视。其次,TS流的扩展越来越广,如蓝光光盘(含3D)的媒体文件格式M2TS是对TS流扩展而成的一种重要格式[4]。另外,随着更多业务需求的提出,现在的TS码流收录需具有多路并发收录、DVB over IP码流采集、边采边编等特点,能更好的满足用户对TS流节目收录系统全数字化、智能化工作的需求。
文本介绍的可伸缩传输流收录方法具有收录效率高,存储空间小,收录任务可恢复,便于排查异常原因等优点。并且此收录方法可以根据实际需要调整为在线式或离线式收录。另外,此收录方法尤其适合收录复用多套节目的TS流。因此,可伸缩式传输流收录方法非常适合用于数字电视等的收录。
[1] ISO/IEC 13818-1. Genetic Coding of Moving Pictures and Associated Audio information-part 1: Systems[S]. European: ISO/IEC, 2002.
[2] 刘佳, 段永良, 周洪萍. IP收录系统关键技术及常见故障分析[J]. 电视技术, 2013, 37(04):63-66. Liu Jia, Duan Yongliang, Zhou Hongping. Key Technology and Common Failture Analysis of IP Receiving Record System[J].Video Engineering, 2013, 37(04):63-66.
[3] 罗影, 刘冬梅, 康红娟. NIST新分组密码工作模式及快速实现研究[J]. 通信技术, 2014,47(09):1066-1070. Luo Ying, Liu Dongmei, Kang Hongjuan, NIST New Block Cipher Modes of Operation and Their Fast Implementation[J]. Communications Technology, 2014, 47(09):1066-1070.
[4] Blu-ray disc White paper Blu-ray Disc Format-2.B:Audio Visual Application Format Specifications for BD-ROM[EB/OL]. (2005-03-01) [2005-03-01]. http://www.blu-raydisc.com/Assets/Downloadablefile/2b_bdrom_audiovisualapplication_0305_12955-15269.pdf.
A Scalable Recording Method of Transport Stream
LUO Ying1, KANG Hong-juan2, YANG Xian-wei3
(1. Westone Information Industry, Ltd., Chengdu Sichuan 610041, China;2. Sichuan Changhong Electric Co., Ltd., Chengdu Sichuan 610041, China;3. Wuxi Prof Technology Inst., Wuxi Jiangsu 214073, China)
TS(Transport Stream), widely used in digital television and other multimedia fields, is one of the most common stream formats. With the rapid development of new media business, TS recording becomes an essential means for content providers and operators to obtain program materials and exchange programmes. Based on analysis of advantages and disadvantages of existing recording methods, a novel recording method is proposed. This method is of high efficiency and can meet the needs of real-time business. In addition, it can assist to analyze the error causes and recover recorded content. Meanwhile,the safe storage of compressed data is also discussed in this paper.
TS;recording system;encryption;hash function
date:2014-10-11;Revised date:2015-02-23
TP391
A
1002-0802(2015)04-0484-05
罗 影(1981—),男,硕士,工程师,主要研究方向为信息技术与安全;
康红娟(1983—),女,硕士,工程师,主要研究方向为保密通信;
杨先伟(1982—),男,学士,讲师,主要研究方向为通信与系统工程。
10.3969/j.issn.1002-0802.2015.04.020
2014-10-11;
2015-02-23