TS案例分析

TS案例分析
TS案例分析

TS16949案例练习

根据下述不合格的事实指出不符合标准中最适用的一个条款号,并说明理由。

1、在某工厂的销售部中,审核员抽查了5-8月份的客户反馈记录,发现至少有20次是客户对产品包装问题的投诉,未见针对性的处理结果;销售部长说,我们的产品包装虽然差了点,但不影响使用,反正现在产品供不应求,也不怕他们不要,就没有理他们。

2、审核员在一汽车音箱生产线上,看到一位检验员在检测一批工件之前先填好全部测试记录,再开始检测。他向审核员解释说,由于生产非常稳定,每批工件都是100%合格,所以为了节省时间,先填好记录,再测试也没有什么关系。

3、车间为某汽车厂制造了一批后箱盖,成品均100%通过检验合格,才按合同规定交付到汽车厂的第一仓库去,但这批后箱盖有约一半左右被退货,理由是表面油漆层严重刮伤,有的外形也有碰伤变形的缺陷,审核员问成品仓库主任为什么会造成这种问题,主任答:道路不平,最近连降大雨,道路更是泥泞难行,谁能保证装在卡车上的后箱盖不互相碰撞呢?

4、在某厂贸易部,审核员发现8~11月份中,有大约10多份销售合同没有评审的证据;负责人解释说:这几份合同所销售的产品是委托外部企业加工制造的,所有问题我们直接找他们说事,所以没有评审。

5、在一机械厂,审核员翻看品质部的质量检查记录,发现一冲压下料记录有四个栏目,第一栏为“图纸尺寸”;第二栏“为员工自检”第三栏为“班长检验”第四栏为“检验员检验”;查看一图号为WL091406的记录:其长度图纸尺寸为“50±0.5mm” 4月份所有记录,第二栏全部为“50 mm”,第三栏全部为“50 mm”,第四栏全部为“50 mm”。

6、吸顶灯装配工艺卡规定:装灯座后高压测试,实际操作是高压测试后装灯座,操作工人说:“这样作对产品质量没有任何影响而且效率高”。

7、审核员在计量室发现一位校准工在校准分厘卡时,先对一个零位,如不准先回零调整,然后进行校验,查阅分厘卡校验操作规程(编号CA-013)规定,要求先校验,发现问题后,再调整零,问校准工为什么不按规程检验时,校准工答,这样做可以大大节省校验时间,最后结果也是相同的。

8、审核员在液压车间试验站发现检验员在作油压管道压力试验时,用的参数是120牛顿/平方米·1.5分钟;而检验规程上规定的是150牛顿/平方米·1分钟,对此检验员解释说:检验规程不太合理,检验科长已打电话通知我们修改,审核员到检验科进一步调查,科长说:确有此事,因修改后的检验规程还要等副总工程师批准,而副总出国未归,所以新规程无法下发,只好先口头通知。

9、机械加工车间检验站检验员使用的编号为08-10及08-13的两件游标卡尺的校准合格证贴在木盒上,已破损不堪,看不清下次应校准的日期,检验员说:我知道下个月才到期,不信可以到计量室去查。

10、钣金车间一直采用第一特殊钢厂的BX2型特种钢板作簿板精密冲压加工,由于一时订不到第一特殊钢厂的产品,就从另一家杨村钢厂购入牌号、规格相同但价格低廉的BX2钢板,结果由于钢板性能不符合冶金部标准,冲压时损坏了模具,审核员问杨村钢厂是否属于合格供方名单之列。采购处长说:对该厂也是第一次打交道,由于生产急需,来不及对它进行评定,看来这个乡镇企业不能满足质量要求。

11、冲压车间噪声很大,双方讲话听不清楚

12、在化验室审核员发现两张编号为95AL00和95AL005的铝材化验单上,11栏中只填了铝、铜、锰、铁的含量数据,其余7项全是空白。化验员说:我们是按照国家标准化验的,查有关的国家标准规定,应作11项含量的测定:查检验规程只规定按国标测定,并没有可以少测7项含量的说明或特殊规定。

13、审核员在2#挤出机审核时发现:电线挤出温度与规定要求不符。挤出工解释说:“该机温控器早已失灵,我凭经验操作,从未出过次品。

14、电动工具装刷握工序,工艺规定使用紧钉螺钉M5×8装配,盛装紧钉螺钉盒上的标识为M4×8,实际盛装和使用的为M5×6紧钉螺钉。

15、链节工序质量特性“孔心距、孔经”要求用统计技术进行控制,但因员工文化低,未能应用。

16、某厂程序规定:有一些检验不合格但不影响最终产品质量的原材料和半成品,可由技术部门负责人签字同意使用,审核员问这种让步接受是否要得到用户的书面同意,技术科长说:如果合同规定所有让步接受都要用户书面同意,我们就按合同办事,但如果合同中没有规定,有些不重要的原材料、半成品就由工厂技术科负责人签字作书面认可。

17、审核员对精车工序一张工序控制图进行检查时,发现50个控制点全部在中心线上限分布,审核员问工序操作者“你加工的工件正常吗”?操作者回答说:“控制图控制点全部在公差范围内,很正常”。

18、在某包装车间,审核员看到包装计量的电子称对每袋重量显示的都是50.50KG;审核问,你们每袋产品规定应该是多少KG,包装主管说,因为现在这种产品价格比较高,客户挑剔,经常到现场查看包装的重量,我们为了让客户满意故意将电子称调整了一下,其实显示的50.50KG,真正重量正好是50KG,这个创意我们还准备报公司合理化建议奖呢。

19、在一汽车座椅生产厂,仓库存放着一批外观不良的产品,负责人说,这些都是装车时野蛮操作划破的;审核员:对这些装车没有管理措施吗?答:有是有,但这些装车的都是民工,没办法。

20、在原材料检验工段,一名对A型合金钢材进行压痕硬度测量的工人,不知道如果二个压痕靠的太近,测试结果将是不准确的。问他为什么还是这么做时,此工人说他是看人家操作而学着样子干的,而不是按作业指导书的要求那么干。

21、审核员在电机厂绝缘车间询问定子浸漆后烘干是否对热态绝缘电阻进行测定。

车间技术主任说:“我们对每批定子都作100%的热态绝缘电阻测定”。

审核员查看了近二天的记录后,又问电阻值多少才算合格。

车间主任说工艺规程中有规定。

审核员在工艺规程中查到H160电机的热态绝缘电阻为72兆欧,但记录中最小为5兆欧,最大为200兆欧,多数小于72兆欧。审核员问这些小于72兆欧的,例如5兆欧的算合格吗?

主任说5兆欧当然算合格,但他解释不了这72兆欧是怎么回事,他承认从未注意过这个数字。

审核员到工艺处去查问,处长说:“糟了,我们的描图员把>2描成72

兆欧了,这种电机的热态绝缘电阻只需大于2兆欧,对绝缘工程师来说,这是常识范围内的事!”

22、审核员在总装车间看到所有的设备都标识的非常清楚,只有一台设备无任何标识。

审核员问车间主任:“为什么这台设备无标识?”

车间主任说:“这台设备不是我们厂的。”

审核员又问:“这台设备是做什么用的?”

车间主任回答:“是为客户包装产品的专用设备。因客户对包装有特殊要求,我们无此类设备,顾客就提供了这台设备。”

审核员要求看这台设备的维护记录。

车间主任说:“我们的设备都有,客户的设备没有维护记录,出了问题,我们通知他们就行了。”

审核员仔细看了这台设备,看到设备上有定期润滑点。

审核员问操作人员:“使用中你们有没有定期加润滑油?”

操作人员说:“没有人告诉过我要这样做。”

审核员继续查看包装情况,看到包装好的产品直接进行大包装后就进库了。

审核员问:“包装质量如何检查?”

车间主任说:“这台包装机是顾客提供的,指定让我们用他的机器包装,所以包装质量我们没必要检查;只有出现较大问题时,才通知客户来进行调整修理。”

23、在某汽车空调机生产厂总装车间后工序,审核员发现经商检局监测出的不合格空调转入返修线时,修理工检修每一台有问题的机器后,将原随机卡取下,换上新的随机卡送去重新测试。

审核员问:“为什么要换卡?”

修理班长说:“因为要重新测试,原来的各测试项目都要重检,所以换一张新的卡上去,测试结果要求记录在随机卡上。”

24、工厂产品企业标准规定,每批产品出厂检测项目为十项,但是有两项参数工厂没有检测条件,因此隔一段时间就送到另一个大厂的检测站检测。检验科长说那个工厂是通过了计量认证的单位,出具的数据很可靠。审核员查看了八月份的出厂检测记录,发现该月共生产了三十批产品,但只有三次提供了全部检测项目的报告。

25、审核员在审核供应部时,看到采购物资清单上共列有48种采购物资。在查看合格分承包方名单时,发现已评定的合格分承包方只能覆盖48种采购物资中的43种,有5种采购物资无相应合格分承包方。

审核员问供应部部长:“为什么有5种采购物资无相应的合格分承包方?这5种物资如何采购?”

供应部部长回答说:“这5种物资用量很少,而且这些物资的生产厂很远,有的在国外。我们需要时就到市场上去采购,采购回来后逐件检验,合格的才允许使用。”

26、在进货检验处你查看了压簧的尺寸和弹簧力检验的记录,发现在记录的数据中约有10%超出了规定的允差。对此,记录中也无任何标注。

当你问这些压簧如何处理了时,进货检验的负责人回答说:“超过允差没什么大关系。所以这些压簧都放行了。”

27、塑料壳体经进货检验判定合格后直接进入流水线进行加工。

在进货检验处,审核员发现按照要求对刚交付的1000个壳体需检验20个。但在相应的检验记录中只填写了10个壳体的检验结果。负责检验的检验员正巧不在。

进货检验处的其他人员说,对此他们不能解释。这批塑料壳体也已发放到车间加工了。

28、在出货检验处,审核员问按什么标准进行检验。检验人员回答说:“检验标准被证明是可靠的,几年来并没有变化。唯一的不足是需检验的项目太多,又不好把握,很容易出错,所以不得不多加班,多次检。为了产品能够按时交付,所以不得不加很多班。

29、审核员在一自动加工机床工位上看到一千分表,该表无任何标识。问此表是用来测量什么的,是否检定过。机床操作工回答:不清楚,是班长交给我用的,我就用了。

30、在一工位旁放着五箱电器部件,其中四箱放有流程单,并有检查合格的标记,只有一箱没有。审核员问正在操作的员工,这一箱是合格的吗。该员工说:应该是合格的吧,按理应该有一个流程单的,这箱没有,但他们是一起送过来的,应该不会有问题,我已按合格品用了一部份了。

31、在一工位旁审核员看到有一批座垫海绵,上面还有一个检验表格。此表格并未填写测试记录,但上面注有“因时间原因紧急放行”,并有一潦草的签名。根据程序规定,如果产品紧急放行,但必须经车间主任批准并签字确认。操作人员告诉审核员说,座垫海绵要24小时塑化后才能使用,但因生产任务紧,这是才出模几小时的产品。

32、某厂生产车间的一台设备,工艺规程上规定应在200℃±20℃的温度下运行。但审核员发现该设备运行温度的实测值是240℃,车间主任出示该设备的说明书,上面说该设备可在160℃~250℃温度范围内运行。主任说:我们规定200℃±20℃是从严要求,加强操作人员的责任心,其实超过一点对产品质量并无影响。

33、核员在元器件仓库中发现六个箱子,标有“需方来件”字样,仓库主任解释说:这是用户送来的一批特殊电力电子元器件,指定要按装在为他们制造的产品上。审核员问:对用户提供的元器件是否经过验证。仓库主任说:这些元器件既然由用户提供,质量当然由他们负责,我们不用验证,再说,这样的产品检验成本很高,我们也没必要花这个钱。

34、机械加工车间一台YB315-4P型大型电动机的主轴(工号为BO2114)在精加工时被车小了 1.5mm,车间主任发现后安排一名工人用电焊的方法补救,然后在车到尺寸,此事未通知任何有关部门,亦无记录,用户也不知道此事。这是审核员见到实物后询问电焊工人才知道的。车间主任承认此事是他安排的,确实未通知其他部门,也未记录。他认为这样做不会妨碍电机主轴的使用。

35、油漆车间一名喷漆工在喷C1031型控制柜面板时,用小桶收集残漆,再倒入储漆桶与新漆混合使用,结果因残漆带入尘土使喷枪堵塞,面板喷漆后表面粗糙不平。

油漆工对审核员说:“工长只告诉我,此漆很贵,不能浪费,没有告诉我该如何做才对”。

工长说:“这确实是个问题,我们已提请工艺科研究”。

36、机床厂总装车间在装配批号为NO.238的10台62W的铣床时,发现铣床主轴箱的二个关键齿轮(3号和4号齿轮)的检验报告还未完成。为了赶进度,经检验科及质管办领导同意,在做好标记及记录的情况下例外转序,现进行总装。总装完成后,专职成品检验员进行了成品检验,且顺利通过。此时,2件齿轮的检验报告也出来了,表明性能全部合格。检验科就签发了成品合格证,并通知销售科可以发货。

37、工厂不合格品控制程序规定,检验出不合格品时应先开出不合格品报告单,然后将其隔离,等候处置。

在焊接车间检验站看到一块黑板上写着:30-008号零件焊接有裂缝,但查不到相应的不合格品报告单。

检验工长对审核员解释说:此零件很大,只能修补返工,而修补又必须在下道工序结束后再进行,所以无法隔离,也就不开不合格品报告单了,只能在工件上作个记号,等待返工。

38、某电子设备厂的成品厂库里,审核员发现许多包装箱上标明的产品型号都是JB-16,审核员问:不是还有一种JB-32的产品吗?仓库主任说:因为JB-16的包装箱定制得太多了,所以JB-32的产品也用JB-16的包装箱,好在包装箱大小正合适。仓库管理员都知道放在什么地方的成品是JB-32,不会发错的。

39、某化工厂对103#化工产品的工艺监控作了规定,即每小时要对温度、压力和流速测量一次并加以记录。

审核员检查本月第一周的监控记录时发现记下的参数是每4小时一次的数据。

值班负责人解释说:“由于工艺十分稳定,没有必要每小时记录一次。”

40、审核员在一配件厂审核,发现大批部件堆放在仓库,审核员部,这

是不合格品吗,仓库负责人说:这是去年六月,客户新标准发布后,技术部未及时调整生产图纸,车间生产多余的老标准的产品,只好等着当废品处理了。

ts流解析规则

HLS,Http Live Streaming是由Apple公司定义的用于实时流传输的协议,HLS基于HTTP 协议实现,传输内容包括两部分,一是M3U8描述文件,二是TS媒体文件。 1、M3U8文件 用文本方式对媒体文件进行描述,由一系列标签组成。 #EXTM3U #EXT-X-TARGETDURATION:5 #EXTINF:5, ./0.ts #EXTINF:5, ./1.ts #EXTM3U:每个M3U8文件第一行必须是这个tag。 #EXT-X-TARGETDURATION:指定最大的媒体段时间长度(秒),#EXTINF中指定的时间长度必须小于或等于这个最大值。该值只能出现一次。 #EXTINF:描述单个媒体文件的长度。后面为媒体文件,如./0.ts 2、ts文件 ts文件为传输流文件,视频编码主要格式h264/mpeg4,音频为acc/MP3。 ts文件分为三层:ts层Transport Stream、pes层 Packet Elemental Stream、es层 Elementary Stream. es层就是音视频数据,pes层是在音视频数据上加了时间戳等对数据帧的说明信息,ts层就是在pes层加入数据流的识别和传输必须的信息

注:详解如下 (1)ts层ts包大小固定为188字节,ts层分为三个部分:ts header、adaptation field、payload。ts header固定4个字节;adaptation field可能存在也可能不存在,主要作用是给不足188字节的数据做填充;payload是pes 数据。 ts header

TS流结构分析(PAT和PMT)

TS流也是由一个或多个PES组合而来的,他们可以具有相同的时间基准,也可以不同。其基本的复用思想是,对具有相同时间基准[color="#000000"]的多个PES现进行节目复用,然后再对相互有独立时间基准的各个PS进行传输复用,最终产生出TS。TS包由包头和包数据2部分组成,其中包头还可以包括扩展的自适用区。包头长度占4bytes,自使用区和包数据共占184bytes,整个TS包长度相当于4个ATM包长。TS包的包头由如下图摘录所示的同步字节、传输误码指示符、有效载荷单元起始指示符、传输优先、包识别(PID-Packet Identification)、传输加扰控制、自适应区控制和连续计数器8个部分组成。 其中,可用同步字节位串的自动相关特性,检测数据流中的包限制,建立包同步;传输误码指示符,是指有不能消除误码时,采用误码校正解码器可表示1bit 的误码,但无法校正;有效载荷单元起始指示符,表示该数据包是否存在确定的起始信息;传输优先,是给TS包分配优先权;PID值是由用户确定的,解码器根据PID将TS上从不同ES来的TS包区别出来,以重建原来的ES;传输加扰控制,可指示数据包内容是否加扰,但包头和自适应区永远不加扰;自适应区控制,用2 bit表示有否自适应区,即(01)表示有有用信息无自适应区,(10)表示无有用信息有自适应区,(11)表示有有用信息有自适应区,(00)无定义;连续计数器可对PID包传送顺序计数,据计数器读数,接收端可判断是否有包丢失及包传送顺序错误。显然,包头对TS包具有同步、识别、检错及加密功能。 TS包自适应区由自适应区长、各种标志指示符、与插入标志有关的信息和填充数据4部分组成。其中标志部分由间断指示符、随机存取指示符、ES优化指示符、PCR标志、接点标志、传输专用数据标志、原始PCR标志、自适应区扩展标志8个部分组成。重要的是标志部分的PCR字段,可给编解码器的27MHz时钟提供同步资料,进行同步。其过程是,通过PLL,用解码时本地用PCR相位与输入的瞬时PCR相位锁相比较,确定解码过程是否同步,若不同步,则用这个瞬时PCR调整时钟频率。因为,数字图像采用了复杂而不同的压缩编码算法,造成每幅图像的数据各不相同,使直接从压缩编码图像数据的开始部分获取时钟信息成为不可能。为此,选择了某些(而非全部)TS包的自适应区来传送定时信息。于是,被选中的TS包的自适应区,可用于测定包信息的控制bit和重要的控制信息。自适应区无须伴随每个包都发送,发送多少主要由选中的TS包的传输专用时标参数决定。标志中的随机存取指示符和接点标志,在节目变动时,为随机进入I帧压缩的数据流提供随机进入点,也

TS流信息描述2

transport stream MPEG组织于1994年推出MPEG-2压缩标准,以实现视/音频服务与应用互操作的可能性,MPEG-2标准是针对标准数字电视和高清晰度电视在各种应用下的压缩方案和系统层的详细规定。对应于不同的应用,符合MPEG-2标准的码流又分为传送流和程序流,本文主要讲解了传送流有关的部分数据结构,从实际应用的传送流码流中截取了部分码流做了说明,并给出了部分解析传送流码流的实例程序。 在MPEG-II标准中,为了将一个或更多的音频、视频或其他的基本数据流合成单个或多个数据流,以适应于存储和传送,必须对其重新进行打包编码,在码流中还需插入各种时间标记、系统控制等信息,最后送到信道编码与调制器。这样可以形成两种数据流——传送流(TS)和程序流(PS),分别适用于不同的应用,图1给出了单路节目的视音频数据流的复用框图。 传送流(Transport Stream)简称TS流,它是根据ITU-T Rec.H.222.0|ISO/IEC 13818-2 和ISO/IEC 13818-3协议而定义的一种数据流,其目的是为了在有可能发生严重错误的情况下进行一道或多道程序编码数据的传送和存储。这种错误表现为比特值错误或分组丢失。传送流由一道或多道节目组成,每道节目由一个或多个原始流和一些其他流复合在一起,包括视频流、音频流、节目特殊信息流(PSI)和其他数据包。其中PSI表有4种类型:节目关联表(PAT)、节目映射表(PMT)、网络信息表和条件访问表。传送流应用比较广泛,如视音频资料的保存、电视节目的非线性编辑系统及其网络等。在开发机顶盒以及视频设备时有时需要对码流的编码知识有比较清楚地了解,这样才能在遇到问题时做出全面的分析。 TS流结构分析 如图2所示,TS包的长度是固定的,为188字节。包括同步字节(sync_byte)0x47和数据包识别号PID等。PID为13位字段,指示存储于分组有效负载中数据的类型,PID值0x0000为程序关联表保留,而0x0001为条件访问表保留,0x1FFF为空分组保留。从PID可以判断其后面负载的数据类型是视频流、音频流、PSI还是其他数据包。 PSI描述说明 在MPEG-II中定义了节目特定信息(PSI),PSI用来描述传送流的组成结构,在MPEG-II系统中担任极其重要的角色,在多路复用中尤为重要的是PAT表和PMT表。PAT表给出了一路MPEG-II码流中有多少套节目,以及它与PMT表PID之间的对应关系;PMT表给出了一套节目的具体组成情况与其视频、音频等PID对应关系。PSI提供了使接收机能够自动配置的信息,用于对复用流中的不同节目流进行解复用和解码。PSI信息由以下几种类型表组成: ◆节目关联表(PAT Program Association Table) PAT表用MPEG指定的PID(00)标明,通常用PID=0表示。它的主要作用是针对复用的每一路传输流,提供传输流中包含哪些节目、节目的编号以及对应节目的节目映射表(PMT)的位置,即PMT的TS包的包标识符(PID)的值,同时还提供网络信息表(NIT)的位置,即NIT 的TS包的包标识符(PID)的值。 ◆条件接收表(CAT Conditional Access Table) CAT表用MPEG指定的PID(01)标明,通常用PID=1表示。它提供了在复用流中条件接收系统的有关信息,指定CA系统与它们相应的授权管理信息(EMM))之间的联系,指定EMM 的PID,以及相关的参数。 ◆节目映射表(PMT Program Map Table) 节目映射表指明该节目包含的内容,即该节目由哪些流组成,这些流的类型(音频、视频、数据),以及组成该节目的流的位置,即对应的TS包的PID值,每路节目的节目时钟参考(PCR)

ts流解析规则

HLS,Http Live Streaming 是由Apple公司定义的用于实时流传输的协议,HLS基于HTTP 协议实现,传输内容包括两部分,一是M3U8描述文件,二是TS媒体文件。 1、M3U8文件 用文本方式对媒体文件进行描述,由一系列标签组成。 #EXTM3U #EXT-X-TARGETDURATION:5 #EXTINF:5, ./0.ts #EXTINF:5, ./1.ts #EXTM3U:每个M3U8文件第一行必须是这个tag。 #EXT-X-TARGETDURATION:指定最大的媒体段时间长度(秒),#EXTINF中指定的时间长度必须小于或等于这个最大值。该值只能出现一次。 #EXTINF:描述单个媒体文件的长度。后面为媒体文件,如./0.ts 2、ts文件 ts文件为传输流文件,视频编码主要格式h264/mpeg4,音频为acc/MP3。 ts文件分为三层:ts层Transport Stream、pes层 Packet Elemental Stream、es层 Elementary Stream. es层就是音视频数据,pes层是在音视频数据上加了时间戳等对数据帧的说明信息,ts层就是在pes层加入数据流的识别和传输必须的信息

注:详解如下 (1)ts层 ts包大小固定为188字节,ts层分为三个部分:ts header、adaptation field、payload。ts header固定4个字节;adaptation field可能存在也可能不存在,主要作用是给不足188字节的数据做填充;payload是pes数据。 ts header sync_byte 8b 同步字节,固定为0x47 transport_error_indicator 1b 传输错误指示符,表明在ts头的adapt域后由一个无用字节,通常都为0,这个字节算在adapt域长度内 payload_unit_start_indicator 1b 负载单元起始标示符,一个完整的数据包开始时标记为1 transport_priority 1b 传输优先级,0为低优先级,1为高优先级,通常取

TS流解析

#include #include using namespace std; struct programs //封装节目信息的结构体 { int programID;//节目编号 int pmtPID;//所属PMT的pid int videoPID;//视频pid int audioPID1;//音频pid int audioPID2;//音频pid }myProg[20]; bool FindAndParsePAT(unsigned char *buffer,int pID,int curPack);//传入BUF和PID的值bool FindAndParsePMT(unsigned char *buffer,int pID,int curPack); int program=0; int prog_count=0; void main() { unsigned char *buffer=new unsigned char[500]; int startPos=0;//第一个TS分组在流中的位置序号 int packageLen=0;//分组长度 int pmtCount=-1;//PMT表序号 int pID=0; int nullpack=0; //0.以二进制方式打开TS文件 ifstream myFile("test.ts",ios::binary|ios::in); //1.读入文件的前500个字节,找同步头、确定包长 myFile.read((char *)buffer,500); for(int i=0;i<500;i++) { //判断有无压缩 if(buffer[i]==0x47&&buffer[i+188]==0x47) { startPos=i;//第一个TS分组在流中的位置序号 packageLen=188;//分组长度 break; } else if(buffer[i]==0x47&&buffer[i+204]==0x47) { startPos=i; packageLen=204; break; } }

MPEG-2 TS 码流编辑的原理与应用

MPEG-2 TS 码流编辑的原理与应用 在当今数字媒体不断发展、新媒体业务不断涌现的前提下,实践证明襁褓中的新媒体只有两种经营方略可供选择:或是购买并集成整套节目,或是低成本深加工新节目,再不可能去按照传统生产模式去自采自编。低成本的节目生产制作与发布,不仅成为数字媒体经营的主要手段,也成为传统媒体“改革工作流程”的重要举措,进而促成了对新型工作母机和简捷快速流程的迫切需求。 在辽宁新媒体多业务综合服务平台上,先于国际和国内应用了MPEG-2传输流快速剪辑编辑系统(以下简称码流快编)。这项由辽宁电视台与深圳奥维迅公司在2003年10月联合开发的新技术,为数字媒体低成本节目的制作、推广和运营提供了高效生产工作母机。尽管担负此项目源代码开发的奥维迅公司出现了经营问题,在技术推广的中间环节发生梗塞,但并不能说明此项技术走到了尽头。回顾3年的应用实践及研发成果,需要的不是扬弃,而是演进的升级,否则就是对可调控资源的莫大浪费。特别是针对第二代信源编解码国标AVS-P2的更新换代,很可能成为多业务内容整合的新一代产品的突破口。 一工作原理 1. 功能目标 码流快编的应用目标是,通过对开放视频的采集,将DVB-S或C的传输流(Transport Stream,TS)节目作为信源,直接进行剪辑处理,再经过人工创意后,整合为新主题内容的新节目,以便直接进入频道集成或编辑频道节目播出,快速实现数据层的内容整合,不仅简捷了采集制作的工作流程,而且为丰富媒体内容资产开辟了一条捷径。因为码流快编的工作流程无需先以解码后的视频记录于磁带,再以磁带上载编辑机,经编辑后再下载成为磁带,再编码复用成为新内容的新节目。即便数字化完成以后,视频数据流仍不能用于经复用的数字传输,还需编码、转码、打包等传输格式化以后,才能在数字信道上传输。而采用码流快编以后,不仅避免了解码后再采样编码所形成的视频损耗,还避免了在1∶1时间的上下载中所造成的效率损耗。更重要的是在视频内容整合中,一次性完成音/视频同步剪切、字幕处理和音/视频数据打包复用等连续作业。所以,它能够提高生产效率60%以上。必要时还可进行节目包装的特技编辑,直接创建数据级和文件级的互联互通内容交换平台,在媒体资产管理下,顺利实现网络化与智能化的节目配送与发布。 由于码流快编是针对以TS为信源的再编辑系统,所以实行“高来高走,低来低走”,或是“高来低走”的应用策略,即高码率对应高码率(包括兼容高清),低码率对应低码率,但码率连续可调,以适应高码率对应低码率的应用。理论和应用都说明,对比源节目和成品节目,经剪切和编辑处理的图像保持了同等的视频质量,成为不劣化图像的创新工作流程和新型工作母机。 2. 设计特征

TS流解析之PMT表格解析

TS流解析之PMT表格解析 2010-12-14 08:44 TS流解析之PMT表格解析 PMT结构定义: typedef struct TS_PMT_Stream { unsigned stream_type : 8; //指示特定PID的节目元素包的类型。该处PID由elementary PID指定 unsigned elementary_PID : 13; //该域指示TS包的PID 值。这些TS包含有相关的节目元素 unsigned ES_info_length : 12; //前两位bit为00。该域指示跟随其后的描述相关节目元素的byte数 unsigned descriptor; }TS_PMT_Stream; //PMT 表结构体 typedef struct TS_PMT { unsigned table_id : 8; //固定为0x02, 表示PMT表 unsigned section_syntax_indicator : 1; //固定为0x01 unsigned zero : 1; //0x01 unsigned reserved_1 : 2; //0x03 unsigned section_length : 12;//首先两位bit置为00,它指示段的byte数,由段长度域开始,包含CRC。 unsigned program_number : 16;// 指出该节目对应于可应用的Program map PID unsigned reserved_2 : 2; //0x03 unsigned version_number : 5; //指出TS流中Program map section的版本号 unsigned current_next_indicator : 1; //当该位置1时,当前传送的Program map section可用; //当该位置0时,指示当前传送的Program map section不可用,下一个TS 流的Program map section有效。 unsigned section_number : 8; //固定为0x00 unsigned last_section_number : 8; //固定为0x00 unsigned reserved_3 : 3; //0x07 unsigned PCR_PID : 13; //指明TS包的PID值,该TS包含有PCR域, //该PCR值对应于由节目号指定的对应节目。 //如果对于私有数据流的节目定义与PCR无关,这个域的值将为

TS码流分析

MPEG组织于1994年推出MPEG-2压缩标准,以实现视/音频服务与应用互操作的可能性,MPEG-2标准是针对标准数字电视和高清晰度电视在各种应用下的压缩方案和系统层的详细规定。对应于不同的应用,符合MPEG-2标准的码流又分为传送流和程序流,本文主要讲解了传送流有关的部分数据结构,从实际应用的传送流码流中截取了部分码流做了说明,并给出了部分解析传送流码流的实例程序。 在MPEG-II标准中,为了将一个或更多的音频、视频或其他的基本数据流合成单个或多个数据流,以适应于存储和传送,必须对其重新进行打包编码,在码流中还需插入各种时间标记、系统控制等信息,最后送到信道编码与调制器。这样可以形成两种数据流——传送流(TS)和程序流(PS),分别适用于不同的应用,图1给出了单路节目的视音频数据流的复用框图。 传送流(Transport Stream)简称TS流,它是根据ITU-T Rec.H.222.0|ISO/IEC 13818-2 和ISO/IEC 13818-3协议而定义的一种数据流,其目的是为了在有可能发生严重错误的情况下进行一道或多道程序编码数据的传送和存储。这种错误表现为比特值错误或分组丢失。传送流由一道或多道节目组成,每道节目由一个或多个原始流和一些其他流复合在一起,包括视频流、音频流、节目特殊信息流(PSI)和其他数据包。其中PSI表有4种类型:节目关联表(PAT)、节目映射表(PMT)、网络信息表和条件访问表。传送流应用比较广泛,如视音频资料的保存、电视节目的非线性编辑系统及其网络等。在开发机顶盒以及视频设备时有时需要对码流的编码知识有比较清楚地了解,这样才能在遇到问题时做出全面的分析。 TS流结构分析 如图2所示,TS包的长度是固定的,为188字节。包括同步字节(sync_byte)0x47和数据包识别号PID 等。PID为13位字段,指示存储于分组有效负载中数据的类型,PID值0x0000为程序关联表保留,而0x0001为条件访问表保留,0x1FFF为空分组保留。从PID可以判断其后面负载的数据类型是视频流、音频流、PSI 还是其他数据包。 PSI描述说明 在MPEG-II中定义了节目特定信息(PSI),PSI用来描述传送流的组成结构,在MPEG-II系统中担任极其重要的角色,在多路复用中尤为重要的是PAT表和PMT表。PAT表给出了一路MPEG-II码流中有多少套节目,以及它与PMT表PID之间的对应关系;PMT表给出了一套节目的具体组成情况与其视频、音频等PID对应关系。PSI提供了使接收机能够自动配置的信息,用于对复用流中的不同节目流进行解复用和解码。PSI信息由以下几种类型表组成: ◆节目关联表(PAT Program Association Table) PAT表用MPEG指定的PID(00)标明,通常用PID=0表示。它的主要作用是针对复用的每一路传输流,提供传输流中包含哪些节目、节目的编号以及对应节目的节目映射表(PMT)的位置,即PMT的TS 包的包标识符(PID)的值,同时还提供网络信息表(NIT)的位置,即NIT的TS包的包标识符(PID)的值。 ◆条件接收表(CAT Conditional Access Table) CAT表用MPEG指定的PID(01)标明,通常用PID=1表示。它提供了在复用流中条件接收系统的有关信息,指定CA系统与它们相应的授权管理信息(EMM))之间的联系,指定EMM的PID,以及相关的参数。 ◆节目映射表(PMT Program Map Table) 节目映射表指明该节目包含的内容,即该节目由哪些流组成,这些流的类型(音频、视频、数据),以及组成该节目的流的位置,即对应的TS包的PID值,每路节目的节目时钟参考(PCR)字段的位置。 ◆网络信息表(NIT Nerwork Information Table) 网络信息表提供关于多组传输流和传输网络相关的信息,其中包含传输流描述符、通道频率、卫星发射器号码、调制特性等信息。 ◆传输流描述表(TSDT Transport Stream Description Table) 传输流描述表由PID为2的TS包传送,提供传输流的一些主要参数。 ◆专用段(private_section)

TS流解析

传输流(TS) 将具有共同时间基准或具有独立时间基准的一个或多个PES组合而成的单一的数据流称为传输流(Transport Stream)。TS实际是面向数字化分配媒介(有线、卫星、地面网)的传输层接口。对具有共同时间基准的两个以上的PES 先进行节目复用,然后再对相互可有独立时间基准的各个PS进行传输复用,即将每个PES再细分为更小的TS包 TS包由包头、自适应区和包数据3部分组成。每个包长度为固定的188B,包头长度占4 B,自适应区和包数据长度占184B。184B为有用信息空间,用于传送已编码的视音频数据流。当节目时钟基准(PCR-Program Clock Reference)存在时,包头还包括可变长度的自适应区,包头的长度就会大于4B。考虑到与通信的关系,整个传输包固定长度应相当于4个ATM包。考虑到加密是按照8B 顺序加扰的,代表有用信息的自适应区和包数据的长度应该是8B的整数倍,即自适应区和包数据为23×8B =184B。 TS包的包头由如图所示的同步字节、传输误码指示符、有效载荷单元起始指示符、传输优先、包识别(PID-Packet Identification)、传输加扰控制、自适应区控制和连续计数器8个部分组成。其中,可用同步字节位串的自动相关特性,检测数据流中的包限制,建立包同步;传输误码指示符,是指有不能消除误码时,采用误码校正解码器可表示1bit 的误码,但无法校正;有效载荷单元起始指示符,表示该数据包是否存在确定的起始信息;传输优先,是给TS包分配优先权;PID值是由用户确定的,解码器根据PID将TS上从不同ES来的TS包区别出来,以重建原来的ES;传输加扰控制,可指示数据包内容是否加扰,但包头和自适应区永远不加扰;自适应区控制,用2 bit表示有否自适应区,即(01)表示有有用信息无自适应区,(10)表示无有用信息有自适应区,(11)表示有有用信息有自适应区,(00)无定义;连续计数器可对PID包传送顺序计数,据计数器读数,接收端可判断是否有包丢失及包传送顺序错误。显然,包头对TS 包具有同步、识别、检错及加密功能。 TS包自适应区由自适应区长、各种标志指示符、与插入标志有关的信息和填充数据4部分组成。其中标志部分由间断指示符、随机存取指示符、ES优化指示符、PCR标志、接点标志、传输专用数据标志、原始PCR标志、自适应区扩展标志8个部分组成。 TS包语法结构如下:

TS流分析软件EasyICE使用方法简介

龙源期刊网 https://www.360docs.net/doc/0414942460.html, TS流分析软件EasyICE使用方法简介 作者:陈晓军 来源:《卫星电视与宽带多媒体》2012年第09期 TS流分析软件EasyICE使用方法简介 笔者以深圳生产的DVBWorld 2102S USB多媒体数据接收盒为例向大家介绍详细使用过程,将接收盒硬件和软件全部安装好,然后依次点击“开始”→“所有程序”→“DVBWorld” →“TsCapture”项,打开TS流录制程序,如,点击“ LOCK”按钮可设置待录制TS流的下行频率、极化方式和符码率等参数,“Max File Size”是修改保存文件的大小,通过“Set Path”按钮设置好保存的文件名和位置(注意:保存文件的扩展名可以更改为TS,如图2),然后点击“Start Capture”便开始保存码流文件了,单击“Stop Capture”按钮可以停止录制。 接下来就是分析TS流文件的操作了。通过菜单栏或工具栏打开一个 TS 文件或将文件拖动到 EasyICE内,可根据实际所需调协范围:整个文件或抽样分析,通常选择整个文件来分析,虽然多花点时间,但分析效果会更好。当文件分析完毕后,软件主界面上会出现播放器、MediaInfo、PSI/SI、PID、图表和数据包四个选项标签,其中的播放器窗口会被初始化并处于暂停状态,单击播放按钮便开始播放节目(注:若TS流包含多路节目的话,则必须先在右上角选定某路节目才能播放),如图3所示。播控按钮依次为:播放、暂停、停止、降低播放速度、加大播放速度及逐帧播放,播放速度的调整分七个级别:1/4 速、1/3 速、1/2 速、正常速度、2 倍速、3 倍速和四倍速。当前播放速度会在“质量”区显示,“节目”区列出了当前流中所 含有的节目,展开可以看到节目的视频、音频和PCR三个PID;“质量”区显示了当前播放媒体的简单信息,如播放速度等,不过由于软件问题有些数据获取不到或存在问题,请以“媒体信息”栏检测结果为准。特别声名,软件首先会查找流中的 PSI/SI 信息,如果存在将按照 PSI/SI 信息解析,如果不存在软件将自己尝试检测视音频 PID 及 PCRPID,如果没有看到播放器画面,表明软件没有找到视频流或没有找到 PCR。 MediaInfo媒体信息标签模块显示了包括图像大小、编码格式、码率大小、彩色制式及场频等几乎所有的音视频详细参数,见图4所示。 PSI/SI标签模块对所有的 PSI/SI 进行了解析,当流中存在 PSI/SI 数据时,会在此模块会一一列出,在视图中点击鼠标右键,可以展开/折叠所有节点,见图5所示。 PID标签模块以统计的方式列出当前 TS 流中各个 PID 出现的数量及占用百分比及所属类型等,如图6所示。 图表标签模块。当流中存在多路节目时,图标界面会显示一节节目选择对话框,单击可以显示相应节目图表。包括:1、时间戳信息。时间戳图表显示的是DTS、PTS 出现时与 PCR 的采样。与“PCR 抖动” 图表相同的是,时间戳以 PCR 时钟为基准。DTS与PTS值取自视频流中

解析TS流PAT和PMT 代码

#include #include #include #define ts_path "/home/huohuo/huangwork/work/birds.ts" //TS文件的绝对路径 void Read_Ts_Packet(FILE *file_handle,unsigned char *packet_buf,int len); //读一个TS流的packet int parse_TS(unsigned char *buffer,int FileSize); //分析TS流,并找出PA T的PID和PAT的table void parse_PAT(unsigned char *buffer,int len); //分析PA T,并找出所含频道的数目和PMT的PID void pronum_pmtid_printf(); //打印PMT的PID unsigned char* Find_PMT(unsigned short pmt_pid); //找出PMT的table void parse_PMT(unsigned char *buffer,int len,unsigned short pmt_pid); //解析PMT,找出其中的Video和Audio的PID void printf_program_list(); //打印PMT table中包含的stream的类型和PID unsigned char* Find_video_audio(unsigned short program_pid,unsigned char type); //找出Video或者Audio的table typedef struct { unsigned short program_num; //program's num unsigned short pmt_pid; // }PROGRAM; typedef struct { unsigned char stream_type; unsigned short elementary_pid; }PRO_LIST; PROGRAM programs[10] = {{0,0}}; //用来存储PMT的PID和数量unsigned int num = 0; //total program PRO_LIST program_list[10] = {{0,0}}; //用来存储PMT中stream的类型和PID unsigned int program_list_num = 0; FILE *file_handle; //指向TS流的指针 unsigned int FileSize = 0;

TS流分析

TS流分析 图一 MPEG-2定义了一些用来描述传输流所携带内容的信息表,称为节目特定信息(PSI)表,包括4个与之相关的表。其中,节目关联表PAT和节目映射表PMT是确定当前传输流中各节目内容的最关键的两个表。 在接收到TS流时我们首先找到PA T表,因为只有找到PAT表才能确定PMT表才能知道哪些是我们要播放的音频数据和视频数据 在开始之前先给出一片实际TS流例子: 0000f32ch: 47 40 00 170000 B0 0D 00 01 C1 00 00 00 01 E0 ; G@....?..?...? 0000f33ch: 20 A2 C3 29 41 FF FF FF FF FF FF FF FF FF FF FF ; ⒚)A 0000f34ch: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; 0000f35ch: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; 0000f36ch: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; 0000f37ch: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; 0000f38ch: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; 0000f39ch: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; 0000f3ach: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ; 0000f3bch: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ;

TS188字节流结构图(转载)

TS 188字节流结构图(转载) chenjijun3011 收录于2009-12-24 阅读数:查看收藏数:61公众公 开原文来源 tags:TV 修改 以文找 文 推荐给 好友 如何对文章标记,添加 批注? MEPG2 -TS小结 2007/04/30 15:08 应该说真正了解TS,还是看了朋友推荐的《数字电视业务信息及其编码》一书之后,MPEG2 TS和数字电视是紧密不可分割的,值得总结一下其中的一些关系。 ISO/IEC-13818-1:系统部分; ISO/IEC-13818-2:视频; ISO/IEC-13818-3:音频; ISO/IEC-13818-4:一致性测试; ISO/IEC-13818-5:软件部分; ISO/IEC-13818-6:数字存储媒体命令与控制; ISO/IEC-13818-7:高级音频编码; ISO/IEC-13818-8:系统解码实时接口; MPEG2系统任务包括: 1. 规定以包传输数据的协议; 2. 规定收发两端数据流同步的协议; 3. 提供多个数据流的复用和解复用协议; 4. 提供数据流加密的协议。以包形式存储和传送数据流是MPEG2系统之要点。 ES是直接从编码器出来的数据流,可以是编码过的视频数据流,音频数据流,或其他编码数据流的统称。ES流经过PES打包器之后,被转换成PES包。PES包由包头和payload组成,具体格式摘录如下:

可以看到PTS/DTS是打在PES包里面的,这两个parameters是解决视音频同步显示,防止解码器输入缓存上溢或下溢的关键。PTS表示显示单元出现在系统目标解码器(STD: system target decoder)的时间,DTS表示 将存取单元全部字节从STD的ES解码缓存器移走的时刻。每个I、P、B帧的包头都有一个PTS和 DTS,但PTS与DTS对B帧都是一样的,无须标出B帧的DTS。对I帧和P帧,显示前一定要存储于视频解码器的重新排序缓存器中,经过延迟(重新排序)后再显示,一定要分别标明PTS和DTS。 上面介绍过,ES首先需打包成PES流包,然后PES根据需要打包成PS或TS包进行存储或传输。其每路ES只包含一路信源的编码数据流,所以每路PES也只包含相对应信源的数据流。 对PS流而言,每个PES包头含有PTS和DTS,流识别码,用于区别不同性质ES。然后通过PS复用器将PES 包复用成PS包。实际上是将PES 包分解为更细小的PS包。在解码的时候,解复用器将PS分解成一个个PES 包,拆包器然后将PES包拆成视频和音频的ES,最后输入至各自解码器进行解码。一个问题是:各个ES在解码时,如何保证视音频的同步呢?除了PTS和DTS的配合工作外,还有一个重要的参数是SCR(system clock reference)。在编码的时候,PTS,DTS和SCR都是由STC(system time clock)生成的,在解码时,STC会再生,并通过锁相环路(PLL-phase lock loop),用本地SCR相位与输入的瞬时SCR相位锁相比较,以确定解码过程是否同步,若不同步,则用这个瞬时SCR调整27MHz的本地时钟频率。最后,PTS,DTS和SCR一起配合,解决视音频同步播放的问题。PS格式摘录如下:

TS流解析源码

非常实用的解析TS流源码 废话不说,直接上传源码。 TsParser.cpp: #include "stdafx.h" #include "crc.h" #include "log.h" #include "xstring.h" #include "Xml.h" #include "osfile.h" #include "TsParser.h" #include "OcgMem.h" #include "MptsTransfer.h" #include "main.h" #include "osfile.h" #include "osdir.h" /* TS流分析器*/ CTsParser::CTsParser() { m_pat_filter = NULL; m_pat_buf = NULL; m_pat_size = 0; m_sdt_filter = NULL; m_bufsize = 12*188*1024; m_head = 0; m_tail = 0; m_buf = (unsigned char*)OCG_MALLOC( m_bufsize ); } CTsParser::~CTsParser() { uint16_t pmt_pid, serv_id; SProgInfo spi; TSSDTInfo sdt; void *position; if( m_pat_filter ) { m_demux.DestroyFilter( m_pat_filter ); m_pat_filter = NULL; }

if( m_pat_buf ) { OCG_FREE( m_pat_buf ); m_pat_buf = NULL; } if( m_sdt_filter ) { m_demux.DestroyFilter( m_sdt_filter ); m_sdt_filter = NULL; } if( m_buf ) { OCG_FREE( m_buf ); m_buf = NULL; } position = m_pmtmap.GetFirst( &pmt_pid, &spi ); while( position ) { if( spi.filter ) m_demux.DestroyFilter( spi.filter ); if( spi.pmt_buf ) OCG_FREE( spi.pmt_buf ); position = m_pmtmap.GetNext( &pmt_pid, &spi, position ); } m_pmtmap.RemoveAll(); /* 清除SDT信息*/ position = m_sdtmap.GetFirst( &serv_id, &sdt ); while( position ) { if( sdt.sdt_service_node ) { TSSDTServiceInfo *serv_del, *serv_tmp = sdt.sdt_service_node; while( serv_tmp ) { serv_del = serv_tmp; serv_tmp = serv_tmp->next; serv_del->next = NULL; OCG_FREE( serv_del ); } } if( sdt.sdt_multilingual_node ) { TSSDTMultilingualInfo *multi_del, *multi_tmp = sdt.sdt_multilingual_node; while( multi_tmp ) {

FFMpeg对MPEG2 TS流解码的流程分析

一、FFMPEG中MPEG2 TS流解码的流程分析 (1) 二、mpegts.c文件分析 (11) 一、 FFMPEG中MPEG2 TS流解码的流程分析 说道具体的音频或者视频格式,一上来就是理论,那是国内混资历的所谓教授的做为,对于我们,不合适,还是用自己的方式理解这些晦涩不已的理论吧。 其实MPEG2是一族协议,至少已经成为ISO标准的就有以下几部分: ISO/IEC-13818-1:系统部分; ISO/IEC-13818-2:视频编码格式; ISO/IEC-13818-3:音频编码格式; ISO/IEC-13818-4:一致性测试; ISO/IEC-13818-5:软件部分; ISO/IEC-13818-6:数字存储媒体命令与控制; ISO/IEC-13818-7:高级音频编码; ISO/IEC-13818-8:系统解码实时接口; 我不是很想说实际的音视频编码格式,毕竟协议已经很清楚了,我主要想说说这些部分怎么组合起来在实际应用中工作的。 第一部分(系统部分)很重要,是构成以MPEG2为基础的应用的基础. 很绕口,是吧,我简单解释一下:比如DVD实际上是以系统部分定义的PS流为基础,加上版权管理等其他技术构成的。而我们的故事主角,则是另外一种流格式,TS流,它在现阶段最大的应用是在数字电视节目的传输与存储上,因此,你可以理解TS实际上是一种传输协议,与实际传输的负载关系不大,只是在TS中传输了音频,视频或者其他数据。先说一下为什么会有这两种格式的出现,PS适用于没有损耗的环境下面存储,而TS则适用于可能出现损耗或者错误的各种物理网络环境,比如你在公交上看到的电视,很有可能就是基于TS的DVB-T 的应用:) 我们再来看MPEG2协议中的一些概念,为理解代码做好功课: l ES(Elementary Stream): wiki上说“An elementary stream (ES) is defined by MPEG communication protocol is usually the output of an audio or video encoder” 恩,很简单吧,就是编码器编出的一组数据,可能是音频的,视频的,或者其他数据。说到着,其实可以对编码器的流程思考一下,无非是执行:采样,量化,编码这3个步骤中的编码而已(有些设备可能会包含前面的采样和量化)。关于视频编码的基本理论,还是请参考其它的资料。 l PES(Packetized Elementary Stream): wiki上说“allows an Elementary stream to be divided into packets” 其实可以理解成,把一个源源不断的数据(音频,视频或者其他)流,打断成一段一段,以便处理. l TS(Transport Stream): l PS(Program Stream): 这两个上面已经有所提及,后面会详细分析TS,我对PS格式兴趣不大. 步入正题 才进入正题,恩,看来闲话太多了:(,直接看Code. 前面说过,TS是一种传输协议,因此,对应到FFmpeg,可以认为他是一种封装格式。

mpeg2 ts流PAT,PMT,SDT的定义

更具体准确的信息请参考iso13818-1,都在里面定义的 PAT的定义: Table_id:为8bit字段,该字段标识节目关联分段,对于PAT,置为0x00。 Section_syntax_indicator:1bit字段,对于PAT,置为 0x01。 Reserved:2bit保留字段,用于将来扩展,置为11。 Section_length:12bit字段,指示当前section的长度,计数值 从分段长度下一个字节开始,包括CRC校验的4个字节,开头两 位置为00,因此其大小不超过1021。 Transport_stream_id:16bit字段,当前TS流的ID,与网络中其 他TS流相区别,由运营商指定。 Reserved:2bit保留字段,用于将来扩展,置为11。 Version_number:5bit字段,指出PAT表的版本号,一旦PAT表有变 化,其版本号增1,当增至31时,恢复至0。 Current_next_indicator:1bit,置为1时,表示传送的PAT当 前有效,置为0表示PAT下一次有效。 Section_number:8bit字段,表示section的数目,从0x00开 始。 Last_section_number:8bit字段,指出最后一个section号, 即PAT表section的最大数目。 Program_number:16bit字段,指出了节目对于哪一个PMT PID是可用的,当为0x00时,后面的PID对应于NIT。 Reserved:3bit保留字段,用于将来扩展,置为111。 Network_id:13bit字段,NIT PID。 Program_map_PID:13bit字段,对应于program_number 所指定的节目的program_map_section的PID,从上面可看出:一个program用4字节来表示(包括16bit的program_number与13bit的PID)。 CRC:用来证实数据正确性的循环冗余校验码。 (section_number和 last_section_number的功能是当PAT内容>184字节时,PAT表会分成多个段(sections),解复用程序必须在全部接收完成后再进行PAT的分析) PMT定义如下: 各字段含义如下: table_id:8bits的ID,应该是0x02 section_syntax_indicator:1bit的段语法标志,应该是''1'' ''0'':固定是''0'',如果不是说明数据有错. reserved:2bits保留位,应该是''00'' section_length:16bits段长度,从program_number开始,到CRC_32(包含)的字节总数.

相关主题
相关文档
最新文档