移动多媒体广播码流转换为传输流的方法 【所属技术领域】
本发明涉及一种数字移动通信的数据流之间的转换,尤其涉及一种移动多媒体广播码流转换为传输流的方法。
【背景技术】
中国移动多媒体广播(China Mobile Multimedia Broadcasting)是一套面向手机、PDA、MP3、MP4、数码相机、笔记本电脑等小尺寸屏幕移动便携手持式终端的系统。它通过卫星和地面无线广播的方式,实现终端随时随地接收广播电视节目的收看与信息服务等业务。
移动多媒体广播的特点是窄带传输、低码率特性,CMMB信号为了能在移动多媒体信道上进行传输,必须对音频、视频、数据、电子业务指南等信息进行封装和排列,复用成CMMB标准规范的码流。
传输流(Transport Stream,TS)是ISO/IEC的标准之一,已经成为现有技术的DVB、DMB等流媒体中有广泛应用的成熟技术,只要安装Windows操作系统和Linux操作系统的播放器或电子设备都支持这一数据格式的节目的播放。然而,随着CMMB码流的节目的丰富和方便性,CMMB码流的节目得到越来越广泛的应用,但是,现有技术的可进行传输流播放的播放器或电子产品却不能直接用于播放CMMB码流的节目,从而妨碍了CMMB码流的节目的推广,也不便于使用者进行CMMB码流节目的收看。
因而,如何将CMMB码流转换为传输流,实现现有的播放传输流的播放器或电子产品也可以直接播放CMMB码流的节目,则成为当前CMMB产业所亟需解决的问题。
【发明内容】
本发明提供一种移动多媒体广播码流转换为传输流的方法,方便不同的电子播放设备通过传输流的方式播放CMMB信号,从而便于不同的播放装置进行CMMB节目的播放。
为解决上述的技术问题,本发明提供一种移动多媒体广播码流转换为传输流的方法,包括如下步骤:
(1)解复用帧头和复用子帧,提取音视频参数;
(2)将提取的音视频参数生成传输流头;
(3)判断复用帧的数据中是否有视频数据,若有,则提取视频数据,若没有,则转至步骤(5);
(4)将视频数据转换为传输流格式的数据,转至步骤(3)继续进行视频数据转换为传输流格式的数据,直至复用帧的视频数据转换完成;
(5)判断复用帧的数据中是否有音频数据,若有,则提取音频数据,若没有,则转至步骤(7);
(6)将音频数据转换为传输流格式的数据,转至步骤(5)继续进行音频数据转换为传输流格式的数据,直至复用帧的音频数据转换完成;
(7)提取复用帧的数据中的其他节目信息相关的数据;
(8)将视频、音频数据和其他节目信息相关的数据封装为传输流数据包,之后输出。
如上所述,本发明通过将移动多媒体广播码流的数据解复用后,转换为传输流格式的数据码流,方便现有技术的播放传输流的播放装置也便于播放移动多媒体广播码流的节目,有利于现有技术的播放装置的再次利用,节省成本。
【附图说明】
图1是本发明移动多媒体广播码流转换为传输流的方法的原理框图。
图2是本发明移动多媒体广播码流转换为传输流的方法的流程图。
【具体实施方式】
为进一步阐述本发明达成预定目的所采取地技术手段及功效,以下结合附图及实施例,对本发明移动多媒体广播码流转换为传输流的方法的原理、结构特征及其功效,进行详细说明。
本发明移动多媒体广播码流转换为传输流的方法,方便现有技术用于播放传输流的数字节目的播放器或电子产品也可以播放移动多媒体广播码流的节目,无需移动多媒体广播码流的专用解码器,节省使用成本,且有利于移动多媒体广播的推广应用。为便于说明,在下文描述的本发明的具体实施例中,移动多媒体广播是以中国移动多媒体广播(CMMB)标准进行技术描述或说明,但本发明的应用与技术方案并不囿于本具体实施例。
如图1,为本发明是实现移动多媒体广播码流转换为传输流的方法的原理,包括如下步骤:
1)将移动多媒体广播码流进行解复用,还原为多媒体广播码流封装前的数据;
2)分析解复用后的数据,提取数据码流中的音频、视频数据以及其他相关参数;
3)将提取的音视频数据以及其他相关参数复用为传输流的数据格式,即封装为传输流数据包;
5)将封装后的TS数据包输出。
由上述,本发明将移动多媒体广播码流转换为传输流是通过对移动多媒体广播码流的解复用后的数据流进行分析,提取其中的音视频数据等,封装成为传输流的格式,进而便于播放器直接对传输流的数据解码播放,从而,有利于现有技术的播放传输流的播放装置也可以播放移动多媒体广播码流的节目,扩展和推广移动多媒体广播的播放及应用,且有利于节省播放装置成本。
如图2,为实现将移动多媒体广播码流转换为传输流的方法的流程图。其具体的实现过程包括如下步骤:
1)解复用帧头和复用子帧头,提取音视频参数,根据CMMB标准的第二部分关于复用的技术规范,复用子帧头指示了复用帧中是否有音频视频数据,音视频的编码,视频的帧速率等音视频的参数,因而,根据现有技术的解复用器进行解复用CMMB码流的复用帧头和复用子帧头后的数据,再按照CMMB的标准就可以进行提取相应的音视频参数等数据;
2)生成传输流头,根据步骤1)中所提取的音视频参数,生成传输流头的节目关联表(PAT,program associate table)和节目映射表(PMT,program map table),在CMMB码流中的一个数据包为一套节目,所以只有一个PMT,根据步骤1)的PMT则可知,基本码流(ES,elementary stream)流的个数和相应的音视频数据的数据包识别号(PID,Packet Identification),在本发明的具体实施例中,如果音频是AAC或HE-AAC,则音频的参数封装成IOD_descriptor,根据现有技术的封装技术即可进行封装,例如第一个字节(byte)是descriptor的长度,第二个字节是descriptor的类型;如果音频是DRA格式,则可把其参数封装成Audio_descriptor,而视频的参数则封装成Video-descriptor,且DRA格式的音频和视频的部分参数包含在了其数据的本身,传输流头是传输流的重要构成部分,解复用器根据传输流头即可找到音视频和节目信息;
3)判断是否有视频数据,如果有,则提取视频段数据,如果没有,则转到步骤5)进行音频数据处理,在具体实施例中,根据CMMB标准的第二部分的描述的视频段的位置,可以提取视频数据,其中,视频段头说明了视频单元的个数和每个单元的长度,再根据CMMB标准的复用实施指南,判断所提取的视频数据单元的封装模式是1还是2,且根据现有技术的音视频数据的标准定义,则可以判断得知,若封装模式是1,则该视频段单元的数据就是视频数据;若封装模式是2,则所提取的该视频段单元去掉复用块头就是视频数据;
4)将所提取的视频数据转为传输流格式的数据,转至步骤3),具体地,是将步骤3)中所提取的每一帧视频数据转换成传输流格式的视频数据,相应地,生成的传输流格式的数据包的PID和步骤2)的视频数据的PID一致,且其PTS(packet time step,数据包时长)的计算公式为:(起始时间+该视频单元的相对时间)×4,起始时间在复用子帧头中获得,视频单元的相对时间在视频段头得出,由此,即可计算出PTS长度,传输流格式的数据封装是现有技术,已有多种实现的代码,例如,可通过直接运用mplayer中传输流的Muxer代码进行实现,则只需设置PID和PTS后调用函数mpegts_write_packet()即可,循环以上操作直到提取完该数据帧所有的视频数据;
5)判断解复用后的数据是否有音频数据,如里有,则提取音频段数据,具体地,可以对照步骤3)中提取视频数据的方法,同样进行音频数据的提取,如果没有,则转至步骤7)进行其它数据的提取和处理,在具体实施例中,根据CMMB标准的第二部分中说明的音频段的位置,可以提取音频数据,其中,音频段头说明了音频单元的个数和每个单元的长度,再根据CMMB标准的复用实施指南,判断所提取的音频单元的封装模式是1还是2,若封装模式是1,则该音频单元的数据就是音频数据;若封装模式是2,则所提取的该音频段单元去掉复用块头就是音频数据;
6)将所提取的音频数据转换为传输流格式的数据,转至步骤5),反复进行,直到提取完该数据帧中所有的音频数据,将音频数据转换为传输流格式的数据,采用现有技术可以实现,即,可以参照步骤4)中的方法进行转换;
7)提取其它数据,具体地,其它数据包括与节目信息有关的数据,如播放时间,节目名称等,并把与节目信息相关的数据封装到事件信息表(EIT,event information table)中,其中EIT的PID是固定的;
8)将上述所提取的视频、音频数据以及其它数据转换为传输流格式,即封装为传输流格式的数据;
9)输出传输流头、转换为传输流格式的音视频数据及其它数据;
10)结束。
综上所述,本发明移动多媒体广播码流转换为传输流的方法,通过将移动多媒体广播码流转换为传输流,进而使得现有技术的播放器或电子装置也可以播放CMMB码流的节目,无需针对CMMB码流的进行重新设计播放装置,方便现有的播放传输流流的播放装置可直接继续用于播放CMMB码流的节目,避免重复投入及成本增加。