CN105959730B - 一种生成ts流的打包顺序控制方法 - Google Patents
一种生成ts流的打包顺序控制方法 Download PDFInfo
- Publication number
- CN105959730B CN105959730B CN201610367473.4A CN201610367473A CN105959730B CN 105959730 B CN105959730 B CN 105959730B CN 201610367473 A CN201610367473 A CN 201610367473A CN 105959730 B CN105959730 B CN 105959730B
- Authority
- CN
- China
- Prior art keywords
- audio
- video
- packet
- packing
- condition
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/236—Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
- H04N21/23608—Remultiplexing multiplex streams, e.g. involving modifying time stamps or remapping the packet identifiers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/236—Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
- H04N21/2368—Multiplexing of audio and video streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8547—Content authoring involving timestamps for synchronizing content
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了一种生成TS流的打包顺序控制方法,按照PSI、PCR、音频、视频和空包的先后顺序,判断先满足打包条件数据类型,再生成该类型的TS包,最终生成符合标准的TS流;且生成每个TS包后,通过模拟解码缓存器,删除播放时间小于TS包对应节目时间的数据;生成每个音频TS包时,模拟一个音频解码器缓存,确保音频解码器缓存大于该TS包节目时间的音频数据量;生成每个视频TS时,模拟一个视频频解码器缓存,确保视频解码器缓存大于该TS包节目时间的视频数据量,进而使得生成的TS流在解码时不会发生缓存的溢出。
Description
技术领域
本发明涉及一种生成TS流的打包顺序控制方法,
背景技术
TS流是MPEG-2格式种类中的一种,其英文全称是(MPEG-2Transport Stream),它是数字电视领域中普遍应用的系统层编码标准;TS流中是固定长度为188字节的连续TS包,通过这些TS包,它包含了丰富的流信息,要解析一个特定的流,首先要解析它由哪些PID(Packet ID)的包构成,再根据PID解析出对应的音视频流;MPEG-2定义了一些用来描述传输流所携带内容的信息表,称为节目特定信息(PSI)表,包括4个与之相关的表,其中,节目关联表PAT和节目映射表PMT是确定当前传输流中各节目内容的最关键的两个表,需在流中周期性重复出现。
由于TS是经过压缩的信号,数据间的相关性很小,而且TS流有着严格的数据格式,因而很小的误差都将导致图像质量的急剧下降甚至无法解码;我国的数字电视技术正在快速发展,为了保证数字电视网络的正常运转和传输质量,必须对TS流进行码流分析,以确保TS流中的信息格式都符合标准规范。
码流分析的信息包括:基本信息、节目信息、PCR信息、音视频缓冲区信息等部分;其中基本信息主要包含TS包同步字节、流码率、流ID等;节目信息包含流中各个节目的节目号、节目名、节目中各信息流PID(Packet ID)的分配等信息;PCR信息显示流中各个PCR的精度和间隔;音视频缓冲区信息是虚拟解码器(STD)在解码当前流时对应缓冲区中原始数据的状态;此外还包括ETR290分析测试,根据测试参数的重要性以及其不同的性质,为3个优先级,其中:第1级包含TS流基本的参数,这些参数保证ts流能够被解码;第2级包含一些附加参数,是保证TS流达到同步后可连续工作必须的参数和周期性监测的参数;第3级是一些特定应用的参数。码流分析工具可对TS流进行完整的分析,对不符合标准的TS流,发出错误警告,即该TS流不能通过监测,不能在数字电视应用中被正常播放。
目前,大部分开源工具生成的TS流,并不能通过码流分析工具的监测,生成的TS流不符合数字电视对流的上线要求。
发明内容
本发明的目的在于克服现有技术的不足,提供一种生成TS流的打包顺序控制方法,按照PSI、PCR、音频、视频和空包的先后顺序,判断先满足打包条件数据类型,再生成该类型的TS包,最终生成符合标准的TS流;且生成每个TS包后,通过模拟解码缓存器,删除播放时间小于TS包对应节目时间的数据。
本发明的目的是通过以下技术方案来实现的:一种生成TS流的打包顺序控制方法,包括以下步骤:
S1.开始生成TS流;
S2.判断音视频是否打包完成:
(1)音视频打包完成,打包结束;
(2)音视频打包没有完成,进入步骤S3;
S3.判断PSI是否满足打包条件:
(1)PSI满足打包条件,连续生成所有节目信息的TS包,并跳转至步骤S8;
(2)PSI不满足打包条件,进入步骤S4;
S4.判断PCR是否满足打包条件:
(1)PCR满足打包条件,生成一个PCR标记的TS包,并跳转至步骤S8;
(2)PCR不满足打包条件,进入步骤S5;
S5.判断音频是否满足打包条件:
(1)音频满足打包条件,生成一个音频TS包,并跳转至步骤S8;
(2)音频不满足打包条件,进入步骤S6;
S6.判断视频是否满足打包条件:
(1)视频满足打包条件,生成一个视频TS包,并跳转至步骤S8;
(2)视频不满足打包条件,进入步骤S7;
S7.生成一个空包并进入步骤S8;
S8.通过模拟解码缓存器,删除播放时间小于TS包对应节目时间的数据;完成当前TS包的生成,并返回步骤S1进行下一个TS包的生成。
步骤S1中如果所有音视频数据均被打包,且TS包的节目时间大于音视频数据的最大播放时间戳,则认为音视频打包完成。
步骤S2中PSI的打包条件为:TS包与上一次打包PSI的节目时间间隔大于PSI阈值,PSI阈值在开始生成TS流之前预先设定。
步骤S3中PCR的打包条件为:TS包与上一次打包PCR的节目时间间隔大于PCR阈值,PCR阈值在开始生成TS流之前预先设定。
步骤S5中对音频是否满足条件的判断包括以下子步骤:
S51.判断音频数据的播放时间与视频数据的播放时间(视频流中准备打包的数据播放时间)大小关系:
(1)如果音频数据的播放时间小于视频数据的播放时间;进入步骤S52;
(2)如果音频数据的播放时间不小于视频数据的播放时间,则不满足音频打包条件;
S52.模拟一个音频解码器缓存,判断判断音频数据的播放时间在大于TS包对应节目时间的固定范围内时,音频模拟解码缓存是否有溢出:
(1)如果音频模拟解码缓存无溢出,则认为满足音频打包条件;
(2)如果音频模拟解码缓存有溢出,则认为不满足音频打包条件。
步骤S6中对视频是否满足条件的判断包括:模拟一个视频解码器缓存,判断视频数据的播放时间在大于TS包对应节目时间的固定范围内、视频模拟解码缓存是否有溢出:
(1)如果视频模拟解码缓存无溢出,则认为满足视频打包条件;
(2)如果视频模拟解码缓存有溢出,则认为不满足视频打包条件。
本发明的有益效果是:按照PSI、PCR、音频、视频和空包的先后顺序,判断先满足打包条件数据类型,再生成该类型的TS包,最终生成符合标准的TS流;且生成每个TS包后,通过模拟解码缓存器,删除播放时间小于TS包对应节目时间的数据;生成每个音频TS包时,模拟一个音频解码器缓存,确保音频解码器缓存大于该TS包节目时间的音频数据量;生成每个视频TS时,模拟一个视频频解码器缓存,确保视频解码器缓存大于该TS包节目时间的视频数据量,进而使得生成的TS流在解码时不会发生缓存的溢出。
附图说明
图1为本发明的流程图。
具体实施方式
下面结合附图进一步详细描述本发明的技术方案,但本发明的保护范围不局限于以下所述。
如图1所示,一种生成TS流的打包顺序控制方法,包括以下步骤:
S1.开始生成TS流;
S2.判断音视频是否打包完成:
(1)音视频打包完成,打包结束;
(2)音视频打包没有完成,进入步骤S3;
音视频打包完成,即所有音视频数据已打包完毕;首先所有音视频数据均被打包,其次TS包的节目时间大于音视频数据的最大播放时间戳,满足两个条件后就结束打包任务,确保流中的所有音视频数据均可解码播放;设音频未打包数据长度为la,视频未打包数据长度为lv,已音视频数据的最大播放时间戳ptsmax,TS包的节目时间pcrts,如果la=0,lv=0,且pcrts>ptsmax,则结束打包,否则,进入步骤S3。
S3.判断PSI是否满足打包条件:
(1)PSI满足打包条件,连续生成所有节目信息的TS包,并跳转至步骤S8;
(2)PSI不满足打包条件,进入步骤S4;
TS包与上一次打包PSI信息的节目时间间隔超过阈值则视为满足条件,进行打包;如设置阈值0.5s,则确保PSI信息在0.5s内打包一次。
设PSI阈值为Tpsi,上一次打包PSI的节目时间为pcrpsi,如果当前TS包的节目时间pcrts>pcrpsi+Tpsi,则打包所有节目信息,并更新pcrpsi,更新后的pcrpsi与当前的pcrts相等。
S4.判断PCR是否满足打包条件:
(1)PCR满足打包条件,生成一个PCR标记的TS包,并跳转至步骤S8;
(2)PCR不满足打包条件,进入步骤S5;
TS包与上一次打包PCR信息的节目时间间隔超过阈值,则认为满足条件,进行打包,如设置阈值小于40ms,确保PCR信息在40ms内打包一次。
设PCR阈值为Tpcr,上一次打包PCR的节目时间为pcrpcr,如果当前TS包的节目时间pcrts>pcrpcr+Tpcr,则生成一个PCR标记的TS包,并对pcrpcr进行更新,更新后的pcrpcr等于当前pcrts。
S5.判断音频是否满足打包条件:
(1)音频满足打包条件,生成一个音频TS包,并跳转至步骤S8;
(2)音频不满足打包条件,进入步骤S6;
及时打包音频数据,可防止流中音频出现数据下溢,但音频数据连续打包太多会导致流中音频出现数据上溢,设音频模拟解码缓存大小为ma,音频缓存中数据长度为lma,系统时间超时阈值为Tpcra(步骤S52中所述的固定时间,所有音频流的超时阈值均为0.95秒),如果ptsa<ptsv′,ptsa<pcrts+Tpcra,且ma>lma,则满足音频打包条件,ptsa表示当前音频数据的播放时间,ptsv′表示当前视频数据播放时间(视频流中准备打包的数据播放时间)。
S6.判断视频是否满足打包条件:
(1)视频满足打包条件,生成一个视频TS包,并跳转至步骤S8;
(2)视频不满足打包条件,进入步骤S7;
及时打包视数据,可防止流中视频出现数据下溢,但视频数据打包太多会导致流中视频出现数据上溢,设视频模拟解码缓存大小为mv,视频缓存中数据长度为lmv,系统时间超时阈值Tpcra(步骤S6中的固定时间,超时阈值,H264:8秒、MPEG2:0.95秒),如果ptsv<pcrts+Tpcrv,且mv>lmv,则打包一个视频数据的TS包,ptsv表示当前视频数据播放时间。
S7.生成一个空包并进入步骤S8;
S8.通过模拟解码缓存器,删除播放时间小于TS包对应节目时间的数据;完成当前TS包的生成,并返回步骤S1进行下一个TS包的生成。
Claims (6)
1.一种生成TS流的打包顺序控制方法,其特征在于:包括以下步骤:
S1.开始生成TS流;
S2.判断音视频是否打包完成:
(1)音视频打包完成,打包结束;
(2)音视频打包没有完成,进入步骤S3;
S3.判断PSI是否满足打包条件:
(1)PSI满足打包条件,连续生成所有节目信息的TS包,并跳转至步骤S8;
(2)PSI不满足打包条件,进入步骤S4;
S4.判断PCR是否满足打包条件:
(1)PCR满足打包条件,生成一个PCR标记的TS包,并跳转至步骤S8;
(2)PCR不满足打包条件,进入步骤S5;
S5.判断音频是否满足打包条件:
(1)音频满足打包条件,生成一个音频TS包,并跳转至步骤S8;
(2)音频不满足打包条件,进入步骤S6;
S6.判断视频是否满足打包条件:
(1)视频满足打包条件,生成一个视频TS包,并跳转至步骤S8;
(2)视频不满足打包条件,进入步骤S7;
S7.生成一个空包并进入步骤S8;
S8.通过模拟解码缓存器,删除播放时间小于TS包对应节目时间的数据,完成当前TS包的生成,并返回步骤S1进行下一个TS包的生成。
2.根据权利要求1所述的一种生成TS流的打包顺序控制方法,其特征在于:步骤S2中如果所有音视频数据均被打包,且TS包的节目时间大于音视频数据的最大播放时间戳,则认为音视频打包完成。
3.根据权利要求1所述的一种生成TS流的打包顺序控制方法,其特征在于:步骤S3中PSI的打包条件为:TS包节目时间与上一次打包PSI的节目时间间隔大于PSI阈值,PSI阈值在开始生成TS流之前预先设定。
4.根据权利要求1所述的一种生成TS流的打包顺序控制方法,其特征在于:步骤S4中PCR的打包条件为:TS包节目时间与上一次打包PCR的节目时间间隔大于PCR阈值,PCR阈值在开始生成TS流之前预先设定。
5.根据权利要求1所述的一种生成TS流的打包顺序控制方法,其特征在于:步骤S5中对音频是否满足条件的判断包括以下子步骤:
S51.判断音频数据的播放时间与视频数据的播放时间大小关系:
(1)如果音频数据的播放时间小于视频数据的播放时间;进入步骤S52;
(2)如果音频数据的播放时间不小于视频数据的播放时间,则不满足音频打包条件;
S52.模拟一个音频解码器缓存,判断音频数据的播放时间在大于TS包对应节目时间的固定范围内时,音频模拟解码缓存是否有溢出:
(1)如果音频模拟解码缓存无溢出,则认为满足音频打包条件;
(2)如果音频模拟解码缓存有溢出,则认为不满足音频打包条件。
6.根据权利要求1所述的一种生成TS流的打包顺序控制方法,其特征在于:步骤S6中对视频是否满足条件的判断包括:模拟一个视频解码器缓存,判断视频数据的播放时间在大于TS包对应节目时间的固定范围内、视频模拟解码缓存是否有溢出:
(1)如果视频模拟解码缓存无溢出,则认为满足视频打包条件;
(2)如果视频模拟解码缓存有溢出,则认为不满足视频打包条件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610367473.4A CN105959730B (zh) | 2016-05-27 | 2016-05-27 | 一种生成ts流的打包顺序控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610367473.4A CN105959730B (zh) | 2016-05-27 | 2016-05-27 | 一种生成ts流的打包顺序控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105959730A CN105959730A (zh) | 2016-09-21 |
CN105959730B true CN105959730B (zh) | 2019-01-29 |
Family
ID=56910749
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610367473.4A Active CN105959730B (zh) | 2016-05-27 | 2016-05-27 | 一种生成ts流的打包顺序控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105959730B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6747998B1 (en) * | 1997-08-28 | 2004-06-08 | Sony Corporation | Transmitter for multichannel digital data and transmission method |
CN1722833A (zh) * | 2004-07-12 | 2006-01-18 | 三星电子株式会社 | 产生传输流的多路复用方法和设备 |
CN101729908A (zh) * | 2009-11-03 | 2010-06-09 | 上海大学 | 一种传输流视音频同步复用方法 |
CN102647616A (zh) * | 2012-04-18 | 2012-08-22 | 北京大学 | 一种音视频复用的装置 |
CN103152607A (zh) * | 2013-01-10 | 2013-06-12 | 上海思华科技股份有限公司 | 视频超快速粗编方法 |
CN103179436A (zh) * | 2013-03-14 | 2013-06-26 | 北京大学 | 一种多路节目传输流复用装置 |
-
2016
- 2016-05-27 CN CN201610367473.4A patent/CN105959730B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6747998B1 (en) * | 1997-08-28 | 2004-06-08 | Sony Corporation | Transmitter for multichannel digital data and transmission method |
CN1722833A (zh) * | 2004-07-12 | 2006-01-18 | 三星电子株式会社 | 产生传输流的多路复用方法和设备 |
CN101729908A (zh) * | 2009-11-03 | 2010-06-09 | 上海大学 | 一种传输流视音频同步复用方法 |
CN102647616A (zh) * | 2012-04-18 | 2012-08-22 | 北京大学 | 一种音视频复用的装置 |
CN103152607A (zh) * | 2013-01-10 | 2013-06-12 | 上海思华科技股份有限公司 | 视频超快速粗编方法 |
CN103179436A (zh) * | 2013-03-14 | 2013-06-26 | 北京大学 | 一种多路节目传输流复用装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105959730A (zh) | 2016-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105453580B (zh) | 接收方法、发送方法、接收装置及发送装置 | |
CN108769786A (zh) | 一种合成音视频数据流的方法和装置 | |
CN102821308B (zh) | 一种多场景流媒体课件录制与直播方法 | |
CN104618786A (zh) | 音视频同步方法和装置 | |
CN104581229B (zh) | 一种流媒体数据传输装置、方法和系统 | |
CN103024603B (zh) | 一种用于解决播放网络视频时短时停顿的装置及方法 | |
CN201781583U (zh) | 多路服务器录像回放同步控制系统 | |
CN110868600A (zh) | 目标跟踪视频推流方法、显示方法、装置和存储介质 | |
JPH09139677A (ja) | 符号化された信号をスプライシングする方法及び装置 | |
CN111770390B (zh) | 数据处理方法、装置、服务器及存储介质 | |
US20180192090A1 (en) | Method of implementing audio and video live broadcast and server | |
CN109660805B (zh) | 解码播放中音视频同步优化方法、存储介质、设备及系统 | |
CN110139148A (zh) | 一种视频切换清晰度的方法及相关装置 | |
EP2628297A1 (en) | Method for synchronizing multimedia flows and corresponding device | |
CN103686315A (zh) | 一种音视频同步播放方法及装置 | |
CN109819312B (zh) | 基于动态缓冲区的播放器系统及其控制方法 | |
TW200400761A (en) | System for random access to content | |
CN111372138A (zh) | 一种播放器端的直播低延迟技术方案 | |
CN109618208A (zh) | 一种直播流分布式切片同步方法及装置 | |
WO2012116558A1 (zh) | 一种视频质量评估方法及装置 | |
CN109905763A (zh) | 优化播放器音频播放卡顿的方法 | |
CN106470291A (zh) | 从音频/视频解码器中的时间同步中的中断中恢复 | |
CN103581730A (zh) | 在数字机顶盒上实现音视频同步的方法 | |
CN102223539A (zh) | 图像编码丢帧花屏的处理方法 | |
CN111131874A (zh) | 一种解决h.256码流随机接入点播放卡顿的方法及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |