发明名称 一种传输流视音频同步复用方法
摘要 本发明涉及一种传输流视音频同步复用方法,本方法是将压缩编码后的视频、音频节目和其他辅助数据复用成一路单节目传输流。视音频帧编码TS包时计算每个TS包的DTS值,根据每个视音频TS包的DTS值与当前PCR值的比较进行同步复用。可对离线视频文件或实时编码流进行复用,复用得到的传输流码率恒定,能被接收解码器正确解码。
申请公布号 CN101729908B 申请公布日期 2012.06.13
申请号 CN200910198205.4 申请日期 2009.11.03
申请人 上海大学 发明人 郑启盛;熊江江;朱民耀
分类号 H04N21/236(2011.01)I 主分类号 H04N21/236(2011.01)I
代理机构 上海上大专利事务所(普通合伙) 31205 代理人 何文欣
主权项 一种传输流视音频同步复用方法,将压缩编码后的视频、音频节目和辅助数据复用成一路单节目传输流,其特征在于,操作步骤如下:步骤1、初始化,其具体方法为:初始化缓存区和计数器;统计获取输入视频码率、视频帧率、音频码率、音频采样率和音频采样点数基本信息;若输出传输流速率小于视音频码率之和,则报错退出;步骤2、计算节目参考时钟PCR信息,其具体方法为:根据传输流输出码率计算节目参考时钟PCR输出包间隔,为输出码率和设定PCR插入时间间隔的乘积与传输流TS包长度的比值;输出传输流PCR的起点时间比视频解码时间标签DTS的起点时间小一个视频帧间隔;每输出一个TS包,PCR增加一个TS包的时间间隔Packet_time,该时间间隔为TS包长度与输出码率的比值;步骤3、生成节目特定信息PSI信息,其具体方法为:根据输入视音频基本流个数生成输出传输流的节目特定信息PSI,生成填充空包;PSI信息包括节目关联表PAT,节目映射表PMT,网络信息表NIT,条件访问表CAT,若表段长度大于单个TS包的最大有效负载时,则分段置于连续的TS包中;步骤4、视音频同步复用,其具体方法为:步骤4.1、获取视、音频帧数据,分析帧信息,若视音频流结束,则退出,否则:对于视频:一帧视频帧编码成一个分组基本流PES包,根据视频基本流ES结构获取一个视频图像帧,图像帧前的图像序列头Sequence_header及其扩展、图像组头GOP_header一并归到该图像帧中;根据图像头判断图像帧类型,统计帧长度;对于音频:一个音频帧编码成一个PES包,根据音频ES结构获得一个音频帧,统计帧长度;步骤4.2、视、音频数据编码成TS包:对于视频:一帧图像数据加上PES分组头信息形成一个PES包,PES包头包含了解码时间标签DTS和显示时间标签PTS信息;DTS帧间隔由所述步骤1获得的视频帧速率计算,PTS根据帧类型不同取值不同,对于B帧PTS等于DTS;根据TS包结构将PES分组分段置于整数个TS包中,缓存TS包数据;计算每个TS包的DTS,为该PES分组DTS值加上当前TS包中的第一个ES字节在整个ES包中的位置乘以每个ES字节所持续的时间;每个ES字节所持续时间为一个视频帧时间间隔与帧长度的比值;对于音频:一帧音频数据加上PES分组头信息形成一个PES包,PES包头包含了解码时间标签DTS,对于音频PTS等于DTS;DTS帧间隔由所述步骤1获得的音频采样率和采样点数计算;音频DTS的起点与视频DTS的起点相同;根据TS包结构将PES分组分段置于整数个TS包中,缓冲TS包数据;计算每个TS包的DTS,为该PES分组DTS值加上当前TS包中的第一个ES字节在整个ES包中的位置乘以每个ES字节所持续的时间;每个ES字节所持续时间为一个音频帧时间间隔与帧长度的比值;步骤4.3、根据视音频DTS选择输出TS包类型:步骤4.4、循环步骤4.3。
地址 200444 上海市宝山区上大路99号