首页 > 其他分享 >TS流分析-PES包头实例分析

TS流分析-PES包头实例分析

时间:2022-11-08 10:37:26浏览次数:57  
标签:分析 00 01 字节 stream TS PES 1111




下面的字节是从ts文件中读取的一个ts包。并包含有PES头。





负载单元开始标志 附加区域控制 知道。



负载单元开始标志:第二个字节的第二位知道: 负载单元开始标志,1:含有PES数据时,该包为其开始。



附加区域控制:第四个字节,第3、4位  附加区域控制,后面是否有自适应字段和有效载荷 





47 40 45 30 07 10 87 14 3E 61 FE 00 00 00 01  E0 35 93  80 C0  0A 39  38 A7  06 75 19  38 A7 06 



75 00 00 00 01 09 10 00 00 00 01 67 4D 40 29 E9 80 A0 0B 76 02 20 00 01 F4 80 00 EA 9C 13 



E3 86 27 00 00 00 01 68 FE 32 48 00 00 00 01 06 00 01 C0 80 00 00 00 01 06 01 01 04 80 00 



00 00 01 41 88 80 10 6F F3 83 62 ED 5F 32 BE 03 FF 74 45 7C A3 FE 0F 76 3C A8 BE 65 8A BD 



CC 00 00 03 00 00 03 00 00 03 00 00 03 00 0D 75 34 BA 90 F1 6E D2 E3 F4 00 00 03 00 00 03 



00 76 00 01 0C 00 3B E5 09 40 85 3F 56 42 87 23 D5 14 2B 4A A7 7C 39 5C 15 A6 A6 A2 D0 C3 



BC 24 98 96 27 27 13 B0 




47 40 45 30 07 10 87 14 3E 61 FE 00 TS包头及自适应字段


00 00 01 E0 这四个四节叫做PES包的开始字节


E0   二进制 1110 0000 流类型 : H264  ISO/IEC 13818-3  或 ISO/IEC 11172-3  或 ISO/IEC 13818-7  或 ISO/IEC 14496-3  音 频流编号 x xxxx  


35 93  PES长度 0x 35 0x93 = 13715个字节,这说明这个PES包的长度是13715,需要好些ts包才能分割完。


80  = 10 00 0 0 0 0 =   10(固定值) 00PES_scrambling_control 0PES_priority 0 data_alignment_indicator  0copyright  0original_or_copy 



data_alignment_indicator  :0  包头后没有填充


C0 11 PTS_DTS_flags   0 ESCR_flag  0 ES_rate_flag 0 DSM_trick_mode_flag  0 additional_copy_info_flag  0 PES_CRC_flag  0 PES_extension_flag 说明既有PTS又有DTS


0A  PES_header_data_length 10字节,由任选字节(也就是下面的扩展域)和任意填充字节构成的长度。




39 = 0011 1001 = 0011(固定值)100(PTS[32-30]) 1 标记位,赋值1


38 A7 = 00 11 1000 1010 0111 = 111000101001(PTS[29-15])1 标记位 赋值1 意义不明


06 75 =  0000 0 110 0111 0101 =  0000 0110 0111 010(PTS[14-0]) 1 标记位 赋值1 PTS = 4532568890


19  =  000 1 1001  = 0001(固定值)100(TDS[32-30])1 标记位,赋值1 100 0011 1000 1010 0110000  0110 0111 010


38 A7 = 00 11 1000 1010 0111 = 0011 1000 1010 011(TDS[29-15])1 标记位,赋值1


06 75 = 0000  0 110 0111 0101 = 0000  0110 0111 010(TDS[14-0]) 1 标记位,赋值1 DTS = 4532568890


19 38 A7 06 75 这几个应该是任意填充字节。




负载的是h264视频数据,这是从节目映射表PMT中知道的。






附,



1. Wiki 对PES包头的定义


​https://en.wikipedia.org/wiki/Packetized_elementary_stream​​      




2. 图解

参考博客​​javascript:void(0)​​




3. PES中扩展头部的判断



根据流类型判断(流类型是PES包头第四字节),扩展头部有三种。



一种是非 (0xBC 0XBE  0xBF 0xF0 0xF1 0xF2 0xF8),这类可能又PTS/DTS信息


一种是(0xBC  0xBF 0xF0 0xF1 0xF2 0xF8)其中之一。


一种是 0XBE,也就是padding_stream 。



第一种


1011 1100  1  program_stream_map     0xBC



1011 1110  padding_stream                  0XBE



1011 1111  3  private_stream_2              0xBF



1111 0000  3  ECM_stream                     0xF0



1111 0001  3  EMM_stream                    0xF1



1111 1111  4  program_stream_directory 0xFF



1111 0010  5  ITU-T H.222.0 建议书 | ISO/IEC 13818-1  附件 A 或 ISO/IEC 13818-6_DSMCC_stream 0xF2



1111 1000  6  ITU-T H.222.1  建议书类型 E 0xF8




第二种:


  1011 1100  1  program_stream_map     0xBC



1011 1111  3  private_stream_2              0xBF



1111 0000  3  ECM_stream                     0xF0



1111 0001  3  EMM_stream                    0xF1



1111 1111  4  program_stream_directory 0xFF



1111 0010  5  ITU-T H.222.0 建议书 | ISO/IEC 13818-1  附件 A 或 ISO/IEC 13818-6_DSMCC_stream 0xF2



1111 1000  6  ITU-T H.222.1  建议书类型 E 0xF8



第三种


1011 1110  padding_stream                  0XBE

















标签:分析,00,01,字节,stream,TS,PES,1111
From: https://blog.51cto.com/u_13316945/5831970

相关文章

  • TS流分析-PES中扩展头部的判断
    根据流类型判断(流类型是PES包头第四字节),扩展头部有三种。0xBC 0XBE  0xBF 0xF0 0xF1 0xF2 0xF8),这类可能又PTS/DTS信息一种是(0xBC  0xBF 0xF......
  • TS流分析-PMT包
    PMT即节目映射表,ProgramMapTable。节目相关表PAT中可能包含多个PMT,PMT中又包含音视频对应的包PID及音视频类型的定义。   0000   47 40 62 38 8......
  • TS流分析-PAT包
    TS流是由ts数据包构成的。ts的数据包如果PID为0,那么该包就是PAT包。下面的数据是从ts流中找到的PAT类型的ts数据包。长度为188字节。有自适应域。自适应域应该就是为......
  • vlc-解码一个RTP数据包函数分析
    函数与解析解码RTP包主要完成的是从RTP包队列中取走一个RTP包,解析是否丢弃,并初始化时间戳,显示时间戳,负载类型,忽略字节等信息,更新包队列信息,并把解析后的该包传递给负载类型......
  • 我要涨知识 —— TypeScript 常见面试题(一)
    1、ts中的any和unknown有什么区别?unknown和any的主要区别是unknown类型会更加严格:在对unknown类型的值执行大多数操作之前,我们必须进行某种形式的检查。而在......
  • sklearn的数据集库datasets
    sklearn的数据集库datasetssklearn的数据集库datasets提供很多不同的数据集,主要包含以下几大类:1.玩具数据集2.真实世界中的数据集3.样本生成器4.样本图片5.svmlight......
  • Echarts Y轴网格线宽度调整
    yAxis:{show:false,type:"value",axisTick:{show:false,},show:true,axisLabel:{show:true,......
  • echarts横坐标显示不全
    echarts横坐标显示不全,效果不够好,让标签倾斜在xAxis下加入这段代码rotate就是倾斜量axisLabel:{rotate:50},......
  • 资源管理应用平台租赁需求分析之北京博奥智源
    1.1.1.本地资源建设深度融合的主要瓶颈在集团层面,针对教学资源建设方面,现可访问资源类型单一,不能为教师备授课提供更多有力支持;在教师研修方面,目前未建教研资源体系,不利于......
  • CF487E Tourists
    题意给定一张无向图,点有点权。每次可以修改一个点的点权,或者询问从\(a\)到\(b\)所有不经过重复点的路径上最小的点权是多少。Solution考虑一个点双,点双中任意两个点......