HLS协议格式

HLS协议格式
  • ES流(Elementary Stream):基本码流,不分段的音频、视频或者其他信息的连续码流
  • PES流,把基本码流ES分割成段,并加上相应头文件打包成形的打包基本码流
  • PS流(Program Stream):节目流,将具有共同时间基准的一个或者多个PES组合(复合)而成的单一数据流
  • TS流(Transport Stream):传输流,将具有共同时间基准或独立时间基准的一个或多个PES组合(复合)而成的单一数据流(用于数据传输)
TS packet格式
  • sync_bypte
    • 8 bit
    • 同步字段,拥有固定的值
    • value: 0x47(固定为0x47)
  • transport_error_indicator
    • 1 bit
    • 错误指示字段
    • value:1-> 在这个TS packet中至少有一个不正常的位
  • payload_unit_start_indicator
    • 1bit
    • 负载单元开始标志,仅对于携带PES packet和PSI data的TS packet有意义
    • PES packet
      • 1-> TS packet的有效负载将会从PES packet的第一个字节开始
      • 0-> PES packet不会从这个 TS packet开始
    • PSI data
      • //TODO
  • transport_proiority
    • 1bit
    • 传输优先级
    • 1->当前 TS packet相比其它具有相同PID的且该位为0的TS packet拥有更高的优先级
  • PID
    • 13bit
    • 表明存储在TS packet负载中的数据类型
      • 0x000 PAT(Program Association Table)表
      • 0x001 CAT(Conditional Access Table)表
        在这里插入图片描述- transport_scrambling_control
    • 2bit
    • 加密标志
    • 00-> 不加密
    • 其余用户定义
  • adaptation_field_control
    • 2bit
    • 这个字段表明TS packet header之后跟随的是adaptation field还是payload
      在这里插入图片描述- continuity_counter
    • 4bit
    • 同pid内的TS packet递增
      在这里插入图片描述#### Adaptation field
  • 调整字段
  • 在MPEG-2TS中,为了传送打包后不足188Byte(包括包头)的不完整TS,或者为了在系统层插入节目时钟参考PCR字段,需要在TS包中插入可变长字段的调整字段。调整字段则包括对较高层次的解码功能有用的相关信息,调整字段的格式基于采用若干标志符,以表示该字段的某些特定扩展是否存在。
  • adaptation_field_length
    • 8bit
    • 表示跟随在这个字段之后的adaptation_filed的字节数量
  • discontinuity_indicator
    • 1bit
    • 表明系统时钟基的不连续和continuity_counter的不连续
  • random_access_indicator
    • 1bit
    • 当前的TS数据包,以及可能具有相同PID的后续传输流数据包,都包含一些信息以提供帮助在这一点上随机访问。
  • elementary_stream_priority_indicator
    • 1bit
    • ES流(基本流,即音频or视频这些基本的数据流)的优先级标志位
    • 1->当前TS packet携带的负载相比同样PID的TS packet有更高的优先级
  • PCR_Flag
    • 1bit
    • 1->表明当前adaptation field包含一个 PCR field
      OPCR_flag
    • 1bit
    • 1->表明当前adaptation field包含一个OPCR field
  • splicing_point_flag
    • 1bit
    • 1->表明当前adaptation field 包含一个splicing point fied
  • transport_private_data_flag
    • 1bit
    • 1->当前adaptation field包含一个或更多的私有数据
  • adaptation_field_extension_flag
    • 1bit
    • 1->表明出现了adaptation 的扩展
      在这里插入图片描述
  • 关于adaptation field 中每一个扩展flag的含义我们后续再看
PES
  • 基本流数据
PAT
  • PAT表记录了节目号与其对应的PMT表所在的PID值
  • 解析过程中我们首先需要解析到PAT表,然后就能知道对应PMT表的pid值,通过这个记录可以知道哪些PID携带的是PMT表。
  • PMT
    • PMT表记录的是这个节目号对应基本流所在的pid,比如video和audio
参考文献

https://www.cnblogs.com/jiangzhaowei/p/4329187.html
https://blog.csdn.net/u013354805/article/details/51683830
https://www.cnblogs.com/renhui/p/10362640.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值