CN101729908B - 一种传输流视音频同步复用方法 - Google Patents

一种传输流视音频同步复用方法 Download PDF

Info

Publication number
CN101729908B
CN101729908B CN2009101982054A CN200910198205A CN101729908B CN 101729908 B CN101729908 B CN 101729908B CN 2009101982054 A CN2009101982054 A CN 2009101982054A CN 200910198205 A CN200910198205 A CN 200910198205A CN 101729908 B CN101729908 B CN 101729908B
Authority
CN
China
Prior art keywords
bag
frame
video
audio
dts
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.)
Expired - Fee Related
Application number
CN2009101982054A
Other languages
English (en)
Other versions
CN101729908A (zh
Inventor
郑启盛
熊江江
朱民耀
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Getsoon Electronic Co ltd
Original Assignee
University of Shanghai for Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by University of Shanghai for Science and Technology filed Critical University of Shanghai for Science and Technology
Priority to CN2009101982054A priority Critical patent/CN101729908B/zh
Publication of CN101729908A publication Critical patent/CN101729908A/zh
Application granted granted Critical
Publication of CN101729908B publication Critical patent/CN101729908B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明涉及一种传输流视音频同步复用方法,本方法是将压缩编码后的视频、音频节目和其他辅助数据复用成一路单节目传输流。视音频帧编码TS包时计算每个TS包的DTS值,根据每个视音频TS包的DTS值与当前PCR值的比较进行同步复用。可对离线视频文件或实时编码流进行复用,复用得到的传输流码率恒定,能被接收解码器正确解码。

Description

一种传输流视音频同步复用方法
技术领域
本发明属于数字电视编码领域,具体涉及一种传输流视音频同步复用方法。
背景技术
在数字电视传输过程中,为了充分利用频谱资源,往往在一个模拟物理信道中传输多路数字电视节目。因此需要将压缩编码后的视频、音频节目和其他辅助数据复用成一路传输流以便于传输。
目前有很多实现多个单节目传输流复用成一个多节目传输流的装置或方法,但它们普遍存在以下一个或者几个问题:用硬件实现,可移植性差、成本较高;复用方法复杂;复用方法性能指标不佳.
我国专利200610029599.7“一种统计复用传输流的方法”中公开了一种视音频基本流文件多路统计复用方法,该发明采用软件实现,通过统计输入文件信息和统计复用传输流对视音频基本流文件进行多路统计复用,但该发明在统计复用过程中以视音频帧为单位进行统计复用。由于视频帧数据相对音频帧较大,导致音频数据间隔较长,可能使得接收端解码器缓存区产生溢出现象,表现为节目显示时视频图像跳帧、音频破音等。
发明内容
本发明的目的在于针对已有技术存在的缺陷,提供一种传输流视音频同步复用方法,将压缩编码后的视频、音频节目和其他辅助数据复用成一路单节目传输流,可对离线视频文件或实时编码流进行复用,复用得到的传输流码率恒定,能被接收解码器正确解码。
为达到上述目的,本发明采用下述技术方案:一种传输流视音频同步复用方法,将压缩编码后的视频、音频节目和辅助数据复用为一个单节目传输流。其特征在于操作步骤如下
步骤1、初始化;步骤2、计算节目参考时钟PCR信息;步骤3、生产节目特定信息PSI;步骤4、视音频同步复用。
上述步骤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.3.1、若缓冲区中视频或音频TS包数为零,则循环至步骤4.1读取相应的视频或音频帧进行处理。
步骤4.3.2、若PSI信息间隔TS包数大于设定PSI输出间隔,输出PSI信息TS包。PSI输出间隔为输出码率和设定PSI插入时间间隔的乘积与TS包长度的比值。根据输出的TS包个数更新PCR值。
步骤4.3.3、若PCR间隔TS包数大于设定PCR输出包间隔,输出包含PCR字段的TS包。根据输出的TS包个数更新PCR值。
步骤4.3.4、比较缓冲区中最近一个视频和音频TS包的DTS值,取较小的DTS值计算与当前PCR值的差值DTS-PCR:
若该差值大于一个视频帧时间间隔Frame_time,则输出填充空包。计算该差值与一个视频帧时间间隔的差值DTS-PCR-Frame_time,该值与每个TS包的时间间隔Packet_time的比值就是填充空包的个数。然后输出DTS值较小的TS包。根据输出的TS包个数更新PCR值;
若该差值小于一个视频帧时间间隔Frame_time,则输出DTS值较小的TS包。根据输出的TS包个数更新PCR值。
步骤4.4、循环步骤4.3。
本发明与现有技术相比,具有如下显而易见的突出实质性特点和显著优点:本发明的技术方案简单灵活,输出传输流码率恒定;输出传输流无缓冲区溢出,能被解码器正确解码;可在通用计算机上实现,无需专用硬件实现,可移植性佳,具有良好的应用前景。
附图说明
图1是本发明的视音频同步复用流程图。
图2是本发明的步骤4.3的流程图。
具体实施方式
下面结合附图和实施例对本发明进一步说明:如图1、图2所示,利用本发明提供的一种传输流视音频同步复用方法,将一路4.5Mbps视频基本流和一路192Kbps音频基本流同步复用成一路传输速率恒等于5Mbps的单节目传输流。
步骤1、初始化缓存区和计数器;统计获取输入视频码率、视频帧率、音频码率、音频采样率、音频采样点数等基本信息。若输出传输流速率小于视音频码率之和,则报错退出。
步骤2、根据传输流输出码率计算节目参考时钟PCR输出包间隔PCR_packet_interval,为输出码率和设定PCR插入时间间隔的乘积与TS包长度的比值。输出传输流PCR的起点时间比视频DTS的起点时间小一个视频帧间隔。每输出一个TS包,PCR增加一个TS包的时间间隔Packet_time,该时间间隔为TS包长度与输出码率的比值。
步骤3、根据输入视音频基本流个数生成输出传输流的节目特定信息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。
PTS(B)=DTS(B)
PTS(I/P)=DTS(I/P)+(n+1)×Frame_time
Frame _ time = 1 Frame _ rate _ code × 27000000 300
其中n表示I帧P帧间连续B帧的个数,Frame_time为视频帧间隔,Frame_rate_code为视频帧速率。B帧由于DTS和PTS相同,一般不写入PTS。
根据TS包结构将PES分组分段置于整数个TS包中,缓存TS包数据。计算每个TS包的DTS,为该PES分组DTS值加上当前TS包中的第一个ES字节在整个ES包中的位置乘与每个ES字节所持续的时间。每个ES字节所持续时间为一个视频帧时间间隔与帧长度的比值。
对于音频:一帧音频数据加上PES分组头信息形成一个PES包,PES包头包含了解码时间标签DTS,对于音频PTS等于DTS。DTS帧间隔由步骤1获得的音频采样率和采样点数计算。音频DTS的起点与视频DTS的起点相同。
PTS=DTS
Frame _ time = samples sampling _ frequency × 27000000 300
其中Frame_time为音频帧间隔,samples为音频帧采样点数,sampling_frequency为音频帧采样率。
根据TS包结构将PES分组分段置于整数个TS包中,缓冲TS包数据。计算每个TS包的DTS,为该PES分组DTS值加上当前TS包中的第一个ES字节在整个ES包中的位置乘与每个ES字节所持续的时间。每个ES字节所持续时间为一个音频帧时间间隔与帧长度的比值。
步骤4.3、根据视音频DTS选择输出TS包类型:
步骤4.3.1、若缓冲区中视频或音频TS包数为零,则循环至步骤4.1读取相应的视频或音频帧进行处理。
步骤4.3.2、若PSI信息间隔TS包数大于设定PSI输出间隔,输出PSI信息TS包。PSI输出间隔为输出码率和设定PSI插入时间间隔的乘积与TS包长度的比值。根据输出的TS包个数更新PCR值。
步骤4.3.3、若PCR间隔TS包数大于设定PCR输出包间隔PCR_packet_interval,输出包含PCR字段的TS包。根据输出的TS包个数更新PCR值。
步骤4.3.4、比较缓冲区中最近一个视频和音频TS包的DTS值,取较小的DTS值计算与当前PCR值的差值(DTS-PCR):
若该差值大于一个视频帧时间间隔(Frame_time),则输出填充空包。计算该差值与一个视频帧时间间隔的差值(DTS-PCR-Frame_time),该值与每个TS包的时间间隔Packet_time的比值就是填充空包的个数。然后输出DTS值较小的TS包。根据输出的TS包个数更新PCR值;
若该差值小于一个视频帧时间间隔(Frame_time),则输出DTS值较小的TS包。根据输出的TS包个数更新PCR值;
步骤4.4、循环步骤4.3。

Claims (2)

1.一种传输流视音频同步复用方法,将压缩编码后的视频、音频节目和辅助数据复用成一路单节目传输流,其特征在于,操作步骤如下:
步骤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。
2.如权利要求1所述的传输流视音频同步复用方法,其特征在于所述步骤4.3根据视音频DTS选择输出TS包类型的操作步骤如下:
步骤4.3.1、若缓冲区中视频或音频TS包数为零,则循环至步骤4.1读取相应的视频或音频帧进行处理;
步骤4.3.2、若PSI信息间隔TS包数大于设定PSI输出间隔,输出PSI信息TS包;PSI输出间隔为输出码率和设定PSI插入时间间隔的乘积与TS包长度的比值;根据输出的TS包个数更新PCR值;
步骤4.3.3、若PCR间隔TS包数大于设定PCR输出包间隔,输出包含PCR字段的TS包;根据输出的TS包个数更新PCR值;
步骤4.3.4、比较缓冲区中最近一个视频和音频TS包的DTS值,取较小的DTS值计算与当前PCR值的差值(DTS-PCR):
若该差值大于一个视频帧时间间隔Frame_time,则输出填充空包;计算该差值与一个视频帧时间间隔的差值DTS-PCR-Frame_time,该值与每个TS包的时间间隔Packet_time的比值就是填充空包的个数;然后输出DTS值较小的TS包;根据输出的TS包个数更新PCR值;
若该差值小于一个视频帧时间间隔Frame_time,则输出DTS值较小的TS包;根据输出的TS包个数更新PCR值。
CN2009101982054A 2009-11-03 2009-11-03 一种传输流视音频同步复用方法 Expired - Fee Related CN101729908B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009101982054A CN101729908B (zh) 2009-11-03 2009-11-03 一种传输流视音频同步复用方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009101982054A CN101729908B (zh) 2009-11-03 2009-11-03 一种传输流视音频同步复用方法

Publications (2)

Publication Number Publication Date
CN101729908A CN101729908A (zh) 2010-06-09
CN101729908B true CN101729908B (zh) 2012-06-13

Family

ID=42449973

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009101982054A Expired - Fee Related CN101729908B (zh) 2009-11-03 2009-11-03 一种传输流视音频同步复用方法

Country Status (1)

Country Link
CN (1) CN101729908B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101984672B (zh) * 2010-11-03 2012-10-17 深圳芯邦科技股份有限公司 多线程的音视频同步控制方法及装置
CN102780930B (zh) * 2012-05-31 2018-05-04 新奥特(北京)视频技术有限公司 一种传输流视音频同步的处理方法
CN102724559A (zh) * 2012-06-13 2012-10-10 天脉聚源(北京)传媒科技有限公司 一种音视频编码同步方法和系统
CN105959730B (zh) * 2016-05-27 2019-01-29 成都索贝数码科技股份有限公司 一种生成ts流的打包顺序控制方法
CN107682716B (zh) * 2016-08-02 2019-12-27 北京数码视讯科技股份有限公司 一种码率控制方法和装置
CN107613320B (zh) * 2017-09-20 2019-09-06 高斯贝尔数码科技股份有限公司 一种传输流复用的插包控制方法及系统
CN110324643B (zh) * 2019-04-24 2021-02-02 网宿科技股份有限公司 一种视频录制方法及系统
TWI734326B (zh) * 2019-12-30 2021-07-21 新唐科技股份有限公司 音訊同步處理電路及其方法
CN111770364B (zh) * 2020-07-17 2023-02-14 上海国茂数字技术有限公司 一种视频码率平滑方法及装置
CN114401376B (zh) * 2021-12-31 2024-06-07 中国电信股份有限公司 一种多画面视频播放方法及装置

Also Published As

Publication number Publication date
CN101729908A (zh) 2010-06-09

Similar Documents

Publication Publication Date Title
CN101729908B (zh) 一种传输流视音频同步复用方法
CN101605252B (zh) 将节目流转换成传输流的方法和系统
CN101282482B (zh) 视频数据与音频数据同步播放的装置、系统和方法
CN102740064B (zh) 对讲系统中流媒体传输的组包方法
CN101179736B (zh) 一种传输流节目转换成中国移动多媒体广播节目的方法
CN105009595A (zh) 发送设备、发送方法、接收设备以及接收方法
CN103414957A (zh) 一种音视频数据同步的方法和装置
CN101272500B (zh) 一种视音频数据流的传输方法及系统
CN1411280A (zh) 一种制作和发送及接收广播式准视频点播节目的装置
CN102724559A (zh) 一种音视频编码同步方法和系统
CN100391261C (zh) 一种传输流复用的方法
CN106937137B (zh) 一种多通道数字音频编码音视频同步的方法
CN101951506A (zh) 实现可伸缩视频编码业务同步发送、接收的系统和方法
CN101951387A (zh) 流媒体传输方法及装置
CN102404348A (zh) 多媒体数据传输协议
CN100479529C (zh) 一种广播网络复用协议的转换方法
CN108122558B (zh) 一种latm aac音频流的实时转容实现方法及装置
CN1972453A (zh) 一种移动多媒体广播系统的数据流封装方法
CN101426142B (zh) 一种传输流再复用方法
CN1812590A (zh) 信号处理设备和流处理方法
CN109040818A (zh) 直播时的音视频同步方法、存储介质、电子设备及系统
CN102104795A (zh) 基于mpeg-2的多路ps流转复用为一路ts流的方法
CN1960328A (zh) 一种移动多媒体广播实时流的封装方法
CN102420981A (zh) 转码装置和转码方法
CN1098600C (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
ASS Succession or assignment of patent right

Owner name: SHANGHAI GETSOON ELECTRONICS INC.

Free format text: FORMER OWNER: SHANGHAI UNIVERSITY

Effective date: 20150226

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 200444 BAOSHAN, SHANGHAI TO: 200072 ZHABEI, SHANGHAI

TR01 Transfer of patent right

Effective date of registration: 20150226

Address after: 200072, room 2993, 706 Xin Lu, Zhabei District, Shanghai

Patentee after: SHANGHAI GETSOON ELECTRONIC CO.,LTD.

Address before: 200444 Baoshan District Road, Shanghai, No. 99

Patentee before: Shanghai University

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120613

Termination date: 20211103

CF01 Termination of patent right due to non-payment of annual fee