packet_start_code_prefix — packet_start_code_prefix 为24 比特码。同跟随它的stream_id 一起组成标识包起始端的包起始码。packet_start_code_prefix 为比特串‘0000 0000 0000 0000 0000 0001’(0x000001)。

stream_id — 节目流中,stream_id 指示基本流的类型和编号,如stream_id 表2-22 所定义的。传输流中,stream_id 可以设置为准确描述基本流类型的任何有效值,如表2-22 所规定的。传输流中,基本流类型在2.4.4 中所指示的节目特定信息中指定。

PES_packet_length — 16 比特字段指示PES 包中跟随该字段最后字节的字节数。0 值指示PES 包长度既未指示也未限定并且仅在这样的PES 包中才被允许,该PES 包的有效载荷由来自传输流包中所包含的视频基本流的字节组成。

PES_scrambling_control — 2 比特PES_scrambling_control 字段指示PES 包有效载荷的加扰方式。当加扰在PES 等级上实施时,PES 包头,其中包括任选字段只要存在,应不加扰(见表2-23)。

PES_priority — 此为1 比特字段,指示在此PES 包中该有效载荷的优先级。‘1’指示该PES 包有效载荷比具有此字段置于‘0’的其他PES 包有效载荷有更高的有效载荷优先级。多路复用器能够使用该PES_priority 比特最佳化基本流内的数据。此字段不能由传输机制加以改变。

data_alignment_indicator — 此为1 比特标志。置于值‘1’时,它指示PES 包头之后紧随2.6.10 中data_stream_alignment_descriptor 字段中指示的视频句法单元或音频同步字,只要该描述符字段存在。若置于值‘1’并且该描述符不存在,则要求表2-53,表2-54 或表2-55 的alignment_type‘01’中所指示的那种校准。置于‘0’值时,不能确定任何此类校准是否发生。

copyright — 此为1 比特字段。置于‘1’时,它指示相关PES 包有效载荷的素材依靠版权所保护。置于‘0’时不能确定该素材是否依靠版权所保护。2.6.24 中描述的版权描述符同包含与此PES 包的基本流有关并且只要该描述符适用于在此PES 包中所包含的素材,版权标志就应设置于‘1’。

original_or_copy — 此为1 比特字段。置于‘1’时,相关PES 包有效载荷的内容是原始的。置于‘0’时,它指示相关PES 包有效载荷的内容是复制的。

PTS_DTS_flags — 此为2 比特字段。当PTS_DTS_flags 字段设置为‘10’时,PES 包头中PTS 字段存在。当PTS_DTS_flags 字段设置为‘11’时,PES 包头中PTS 字段和DTS 字段均存在。当PTS_DTS_flags字段设置为‘00’时,PES 包头中既无任何PTS 字段也无任何DTS 字段存在。值‘01’禁用。

ESCR_flag — 1 比特标志,置于‘1’时指示PES 包头中ESCR 基准字段和ESCR 扩展字段均存在。置于‘0’时指示无任何ESCR 字段存在。ESCR:基本流时钟基准

ES_rate_flag — 1 比特标志,置于‘1’时指示PES 包头中ES_rate 字段存在。置于‘0’时指示无任何 ES_rate 字段存在。

DSM_trick_mode_flag — 1 比特标志,置于‘1’时指示8 比特特技方式字段存在。置于‘0’时指示此字段不存在。

additional_copy_info_flag — 1 比特标志,置于‘1’时指示additional_copy_info 存在。置于‘0’时指示此字段不存在。

PES_CRC_flag — 1 比特标志,置于‘1’时指示PES 包中CRC 字段存在。置于‘0’时指示此字段不存在。
PES_extension_flag — 1 比特标志,置于‘1’时指示PES 包头中扩展字段存在。置于‘0’时指示此字段不存在。

PES_header_data_length — 8比特字段指示在此PES包头中包含的由任选字段和任意填充字节所占据的字节总数。任选字段的存在由前导 PES_header_data_length 字段的字节来指定。

marker_bit — marker_bit 为1 比特字段,具有赋值‘1’。

PTS (presentation time stamp) — 显示时间与解码时间的关系如下:PTS 为三个独立字段编码的33 比特数。

DTS (decoding time stamp) DTS(解码时间标记)DTS 为三个单独字段编码的33 比特数。

ESCR_base; ESCR_extension — 基本流时钟参考为两部分编码的42 比特字段

ES_rate (elementary stream rate) ES 速率(基本流速率)— ES_rate 字段为22 比特无符号整数,在PES 流情况中,指定系统目标解码器接收PES 包字节的速率。ES_rate 在包括它的PES 包以及相同PES 流的后续PES 包中持续有效直至遇到新的ES_rate 字段时为止。ES 速率值以50 字节/秒为度量单位。0 值禁用。ES_rate 值用于确定字节到达2.5.2.4 中定义的PES 流的P-STD 输入端的时间。ES_rate 字段中的编码值可以伴随着从一个PES_packet 到另一个PES_packet 的变化而改变。

trick_mode_control — 3 比特字段,指示适用于相关视频流的特技方式。在其他类型基本流的情况中,此字段以及后随5 比特所规定的那些含义未确定。对于trick_mode 状态的定义,参阅2.4.2.3 的特技方式段落。
当trick_mode 状态为假时,由连续序列的解码处理输出的一个图像的次数N,在ITU-T H.262 建议书|ISO/IEC 13818-2 视频的情况中,由repeat_first_field 以及top_field_first 对每个图像指定,并在ISO/IEC11172-2 视频情况中,通过该序列头指定。
对于交错序列,当trick_mode 状态为假时,由连续序列的解码处理输出的一个图像的次数N,在ITU-TH.262 建议书|ISO/IEC 13818-2 视频的情况中,由repeat_first_field 和 progressive_frame 字段对每个图像指定。
当特技方式状态为真时,图像显示的次数取决于N 的值
当此字段的值改变或特技方式操作终止时,以下情况的任意组合可以发生:

  • 时间基上的中断;
  • 解码中断;
  • 连续性计数器中断。
       
    特技方式控制值
      值           描   述
    '000'         快进
    '001'         慢动作
    '010'         冻结帧
    '011'         快速反向
    '100'          慢反向
    '101'-'111' 保留的

在特技方式的上下文关系中,解码和显示的非正常速度可能引起视频基本流数据中规定的某些字段值不准确。同样的,截面结构上的语义限制可能无效。此例外适用的视频句法单元为:bit_rate  vbv_delay  repeat_first_field  v_axis_positive field_sequence  subcarrier   burst_amplitude  subcarrier_phase
特技方式时,解码器不能依靠这些字段中的编码值。

未正式要求解码器解码trick_mode_control 字段。然而,以下的正式要求应适用于要求解码器确实解码该trick_mode_control 字段。

fast forward 快进 —trick_mode_control 字段中,该值为‘000’。此值存在时,它指示快进视频流并规定PES 包头中后随的5 比特含义。intra_slice_refresh 比特可以设置为‘1’,指示可能存在丢失宏块,解码器可以使用先前解码图像的同一位置宏块来替代该丢失宏块。表2-25 中定义的field_id 字段指示哪个字段或哪些字段应予显示。frequency_truncation 字段指示可能包括的受限系数集。此字段赋值含义在表2-26 中显示。

slow motion 慢动作 — trick_mode_control 字段中,该值为‘001’。此值存在时,它指示慢动作视频流并规定PES 包头中后随的5 比特含义。在连续序列的情况中,图像应予显示N×rep_cntrl 字段的次数,其中N 为以上定义。
在ISO/IEC 11172-2 视频和ITU-T H.262 建议书|ISO/IEC 13818-2 视频连续序列的情况中,图像应予显示N×rep_cntrl 字段的持续周期。
在ITU-T H.262 建议书|ISO/IEC 13818-2 交错序列的情况中,图像应予显示N×rep_cntrl 字段的持续周期。若图像为成帧图像,只要顶字段第一个设置为‘1’, 则即将显示的首帧应为顶字段;只要顶字段第一个设置为‘0’,则即将显示的首帧为底字段(参阅ITU-T H.262 建议书|ISO/IEC 13818-2)。此字段显示二分之一的N×rep_cntrl 字段持续周期。该图像的其他字段显示N–N×rep_cntrl /2 的字段持续周期。

freeze frame 冻结帧 — trick_mode_control 字段中,该值为‘010’。此值存在时,它指示冻结帧视频流并规定PES 包头中后随的5 比特含义。表2-25 中定义的field_id 字段标识哪些字段应予显示。field_id 字段涉及包含该field_id 字段的PES 包中起始的第一视频存取单元,包含零个有效载荷字节的PES 包除外。在后一种情况中,field_id 字段涉及最近的先前视频存取单元。

fast reverse 快速反向 — trick_mode_control 字段中,该值为‘011’。此值存在时,它指示快速反向视频流并规定PES 包头中后随的5 比特含义。intra_slice_refresh 比特可以置于‘1’,指示可能存在丢失宏块,解码器可以使用先前解码图像的同一位置宏块来替代该丢失宏块。表2-25 中定义的field_id 字段指示哪个字段或哪些字段应予显示。frequency_truncation 字段指示可能包括的受限系field_id — 2 比特字段,指示哪些字段应予显示。依照表2-25 编码。数集。此字段赋值含义在表2-26“系数选择值”中显示。

slow reverse 慢反向 — trick_mode_control 字段中,该值为‘100’。此值存在时,它指示慢反向视频流并规定PES 包头中后随的5 比特含义。在ISO/IEC 11172-2 视频和ITU-T H.262 建议书|ISO/IEC 13818-2 视频连续序列的情况中,图像应予显示N× rep_cntrl 的图像持续周期,其中N 为以上定义。
ITU-T H.262 建议书|ISO/IEC 13818-2 交错序列的情况中,图像应予显示N×rep_cntrl 字段的持续周期。若图像为成帧图像,只要top_field_first 为‘1’,则即将显示的首字段为底字段;只要top_field_first 为‘0’,则即将显示的首字段为顶字段(参阅ITU-T H.262 建议书|ISO/IEC 13818-2)。此字段显示二分之一的N×rep_cntrl /2 字段持续周期。该图像的其他字段显示N–N×rep_cntrl /2 的字段持续周期。

field_id — 2 比特字段,指示哪些字段应予显示。依照表2-25 编码。

intra_slice_refresh — 1 比特标志,置于‘1’时指示此PES 包中视频数据的编码截面间可能存在丢失宏块。置于‘0’时此事件不可能发生。详情请见ITU-T H.262 建议书|ISO/IEC 13818-2。解码器可以采用先前解码图像的同一位置宏块来替代丢失宏块。

frequency_truncation — 2 比特字段,指示在此PES 包中编码视频数据时曾经使用的受限系数集。该值在表2-26 中定义。

rep_cntrl — 5 比特字段,指示交错图像中每个字段应予显示的次数,或者连续图像应予显示的次数。视频序列头中trick_mode_control 字段和 top_field_first 比特的作用是在交错图像情况中决定是顶字段还是底字段应予首先显示。‘0’值禁用。

additional_copy_info — 此7 比特字段包含与版权信息有关的专用数据。

previous_PES_packet_CRC — previous_PES_packet_CRC 为16 比特字段,包含产生解码器中16 寄存器零输出的CRC 值,类似于附件A 中定义的解码器。但在处理先前的PES 包数据字节之后,PES 包头除外,采用多项式:

PES_private_data_flag — 1 比特标志,置于‘1’时指示该PES 包头包含专用数据。置于‘0’值时,它指示PES 包头中不存在专用数据。

pack_header_field_flag — 1 比特标志,置于‘1’时指示ISO/IEC 11172-1 包头或节目流包头在此PES包头中存储。若此字段处于节目流中包含的PES 包中,则此字段应设置为‘0’。传输流中,设置为‘0’值
时,它指示该PES 头中无任何包头存在。

program_packet_sequence_counter_flag — 1 比特标志, 置于‘ 1 ’ 时指示program_packet_sequence_counter、MPEG1_MPEG2_identifier 以及original_stuff_length 字段在PES 包中存在。设置为’0’值时,它指示这些字段在PES 头中不存在。

P-STD_buffer_flag — 1 比特标志,置于‘1’时指示P-STD_buffer_scale 和 P-STD_buffer_size 在PES包头中存在。设置为‘0’值时,它指示这些字段在PES 头中不存在。

PES_extension_flag_2 — 1 比特字段,置于‘1’时指示PES_extension_field_length 字段及相关的字段存在。设置为‘0’值时,指示PES_extension_field_length 字段以及任何相关的字段均不存在。

PES_private_data — 此为包含专用数据的16 字节字段。此数据,同前后字段数据结合,应不能仿真packet_start_code_prefix (0x000001)。

pack_field_length — 此为8 比特字段指示 pack_header_field() 的长度,以字节为单位。

program_packet_sequence_counter — program_packet_sequence_counter 字段为7 比特字段。它是一个任选的计数器,随着来自节目流或来自ISO/IEC 11172-1 流的每个连续PES 包或传输流中与单个节目定义有
关的PES 包而增加,提供类似于连续性计数器的功能(参阅2.4.3.2)。此字段允许适用于检索节目流的原始PES 包序列或原始ISO/IEC 11172-1 流的原始包序列的那些应用。该计数器到达其最大值后循环返回到0 值。
PES 包重发不会发生。因而, 在节目多路复用中, 没有任何两个连续的PES 包会有相同的program_packet_sequence_counter 值。

MPEG1_MPEG2_identifier — 1 比特标志,置于‘1’时指示此PES 包承载来自ISO/IEC 11172-1 流的信息。置于‘0’时,它指示此PES 包承载来自节目流的信息。

original_stuff_length — 此 6 比特字段规定在原始ITU-T H.222.0 建议书| ISO/IEC 13818-1 PES 包头或在原始ISO/IEC 11172-1 包头中所使用的填充字节数。

P-STD_buffer_scale — P-STD_buffer_scale 为1 比特字段,它的含义仅当节目流中包含此PES 包时才规定。它指示所使用的标度因子用于解释后续的P-STD_buffer_size 字段。若前导stream_id 指示音频流,则
P-STD 缓冲器标度字段必为‘0’值。若前导stream_id 指示视频流,则P-STD_buffer_scale 字段必为‘1’值。对于所有其他流类型,该值可为‘1’或为‘0’。

P-STD_buffer_size — P-STD_buffer_size 为13 比特的无符号整数,其含义仅当节目流中包含此PES包时才规定。它规定在P-STD中,输入缓冲器BSn 的尺寸。若STD_buffer_scale 为‘0’值,则P-STD_buffer_size
以128 字节为单位度量该缓冲器尺寸。若P-STD_buffer_scale 为‘1’值,则P-STD_buffer_size 以1024 字节为单位度量该缓冲器尺寸。

PES_extension_field_length — 此为 7 比特字段,指示PES 扩展字段中跟随此长度字段的直至并包括任何保留字节为止的数据长度,以字节为度量单位。

stream_id_extension_flag — 1 比特标志,当置为'0' 时表示 stream_id_extension 字段在PES 包头中,'1'值保留。

stream_id_extension — 在节目流中,stream_id_extension 规定基本流的类型和数量,如表 2-27 中stream_id_extension 的定义。在传输流中,stream_id_extension 可以置为正确描述如表 2-27 中规定的基本流
类型的任何有效值,在传输流中,基本流类型在如2.4.4 规定的节目特定信息中规定。注意,此字段用做上述定义的stream_id 的扩展。除非stream_id 的值是1111 1101,否则不使用此字段。

stuffing_byte — 此为等于‘1111 1111’的固定的8 比特值,它能够由编码器插入,例如为满足信道的要求。它为解码器所丢弃。在一个PES 包头中将存在长度不超过32 的填充字节。

PES_packet_data_byte — PES_packet_data_bytes 应是来自包stream_id 或PID 所指示的基本流的连贯数据字节。当基本流数据遵从ITU-T H.262 建议书| ISO/IEC 13818-2 或ISO/IEC 13818-3 时,该
PES_packet_data_bytes 必须把字节定位到本建议书|国际标准的字节上。该基本流的字节序必须保持。PES_packet_data_bytes 数N 由PES_packet_length 字段指定。N 应等于PES_packet_length 中所指定的值减去
PES 包长度字段的最后字节与该第一PES_packet_data_byte 间的字节数。
在private_stream_1, private_stream_2, ECM_stream 或 EMM_stream 的情况中,PES_packet_data_byte 字段的内容为用户自定义,今后将不由ITU-T|ISO/IEC 所指定。

padding_byte — 此为等于‘1111 1111’的固定8 比特值。它为解码器所丢弃。

TS科普11 PES包句法解析相关推荐

  1. TS科普5 PES包解析

    以第三个TS包为例: 00000170h: 47 48 14 10 00 00 01 C0 00000180h: 01 88 80 80 05 21 00 01 96 07 FF FD 85 00 3 ...

  2. 从mpeg ts文件中提取I帧(3):pes包的解析

    本系列的第一篇文章讲解了如何把ts包拼装为pes包,本章主要讲解如何解析pes包. 一.pes包的格式如下图所示: 二.相关字段解析 packet_start_code_prefix          ...

  3. TS流PAT、PMT、ES、PES分析及解析代码

    TS流即是我们所熟知的传输流,其是由定长的TS包组成(188字节),包括包头和负载数据.其中包头固定为4字节,用来指明包的起始位置.负载的PID以及各种标志位:负载则由各种表及基础流组成: PAT表给 ...

  4. 从mpeg ts文件中提取I帧(1):将ts包拼装为section或pes包

    写在前面的话:         不觉中已经在数码工作了十年有余,十年的青春.十年的汗水,如今即将离开,个中滋味难以言表! 以后可能不会在广电行业工作了,就用这个小程序,为自己十年的广电工作画上一个句号 ...

  5. 【烂活】斯坦福句法解析库使用小结+最新四月新番下载(以辉夜与阿尼亚为例)

    序言 前排提示本文是挂羊头卖狗肉,正文在第二部分,第一部分纯属为了过审凑字数. 文章目录 序言 1 斯坦福句法解析库(句法树.依存关系图)使用概述 2 烂活(可能对追番的朋友有用) 1 斯坦福句法解析 ...

  6. TS各个表 与 SECTION 的解析 CAS原理

    TS流,通过一个个的TS包来传送: TS包可以是传送PSI SI等各表的数据包,也可以是传送节目音视频数据(携带的PES包:音视频基本流包)的包:TS携带 PSI SI等表的数据时,各个表以各表对应的 ...

  7. PES包的PTS详解

    PES包的PTS详解 之前做ts转flv用的是osmf框架,那个东东略复杂,和自己的代码结合后想调整某个地方有些困难,所以还是打算自己来解ts并进行封装. 其中的pts的获取上网查了下,结构图差点没看 ...

  8. Go 的 flag 包可以解析命令行的参数

    Go 的 flag 包可以解析命令行的参数. 一.命令行语法 命令行语法主要有以下几种形式: cmd -flag       // 只支持bool类型 cmd -flag=xxx cmd -flag ...

  9. TS科普19 各种流(如:MP3、H264、H265等)在TS的流类型

    在PMT中会定义当前节目其音频流对应的PID以及视频流对应的PID 其中的字段stream_type 决定了当前的流类型 此为8比特字段,指示具有PID值的包内承载的节目元类型,其PID值由eleme ...

最新文章

  1. PHP伪类型和伪变量
  2. 大数据让人们得到更加细致和人性化的服务
  3. 宅家过年 | 程序员消遣活动指南
  4. mysql时间函数总结_MySQL 日期时间函数常用总结
  5. python中正则表达式的使用
  6. 求助下 Ubuntu 15.10(64 位)下安装 pyspider 下的问题 - V2EX
  7. VC++动态链接库(DLL)编程(六)――DLL***
  8. 完全二叉树/ 满二叉树/二叉树遍历(前序、中序、后序、层序遍历)
  9. 关于msn 微软关闭MSN聊天信息超级链接功能
  10. 心情整天都在郁闷浮云往事如云烟,撕心裂肺:伤感心情日志
  11. cannot find -l****问题的解决办法
  12. [源码学习][知了开发]WebMagic-总体流程源码分析
  13. 调试器GDB的基本使用方法
  14. css实现文字旋转360度
  15. 原知因制药将亮相第五届进博会,解锁青春逆龄密码
  16. 关于如何使用动态域名在个人电脑搭建个人网站的几点经验
  17. 启动flume报错guava版本不一致
  18. 如何高效地使用 OneNote
  19. SQL语句匹配时间的用法
  20. 哪里有 介绍 LicenseManager 的资料??

热门文章

  1. 计算机学猫叫音乐,抖音学猫叫音乐 抖音学猫叫什么歌
  2. 通达信20个经典公式_20个欧美时尚达人高领毛衣+大衣造型集锦:冬季最高级的穿搭公式...
  3. 在PowerShell中将QuickBooks在线数据导入QuickBooks桌面
  4. 时间的过客怎么用计算机完整版,抖音时间的过客MC名决在哪看?附歌词完整版原文...
  5. (素材源代码)猫猫学IOS(四)UI之半小时搞定Tom猫
  6. linux+agent卸载_Symantec Backup Exec 2012 Agent for Linux 卸载 - 潇湘隐者
  7. 读书笔记《进化的力量:刘润年度演讲1》
  8. 基于C#的音乐播放器
  9. IRremoteESP8266库 红外控制空调方法
  10. 离线安装docker-compose