封装格式--TS


基础知识

  • ES流(Elementary Stream):
    基本码流,不分段的音频、视频或其它信息的连续码流。
  • PES流(Packeted Elementary Stream):
    打包的基本码流,把基本码流(ES)分割成段,并加上头部信息打包而成。
  • PS流(Program Stream):
    节目流,将具有共同时间基准的一个或多个PES复合并打包而成的单一数据流。PS包的长度不固定。
  • TS流(Transport Stream):
    传输流,将具有共同时间基准或独立时间基准的一个或多个PES复合而成的单一数据流。TS包的长度固定。
注意:
TS流抵抗传输误码能力强于PS流,因为TS packet是固定长度的.
如果某一TS packet的同步信息被破坏,接收机可在固定位置(ts packet length)检测它后面packet的同步位置,从而恢复同步。
而PS流无法确定下一个PS packet的同步位置,从而造成失步。

TS packet的大小

TS Packet有四种大小:

  • 188 bytes:MPEG-2标准大小
  • 192 bytes:188 bytes + 4 bytes时间码 --> 日本DVH-S标准
  • 204 bytes:188 bytes + 16 bytes前向纠错码(FEC) --> 美国ATSC标准
  • 208 bytes:188 bytes + 4 bytes时间码 + 16 bytes前向纠错码(FEC)

TS封装过程

ES封装成TS需要经过两次封装。如下图:
在这里插入图片描述
注意:

  • 如果一个pes packet打包为多个ts packet,那么同一个pes的ts packet是排在一起的
  • sps和pps的nalu通常是跟I frame nalu封在同一个pes packet里面的。也就是:
    PES packet

PES packet

内部结构

在这里插入图片描述

关键栏位

  • Packet start code prefix:
    –>包头起始码,固定为0x00 00 01,占位24bit,用来作为pes packet的分割符。
  • Stream id:
    –>PES包中的负载流类型,比如音频流:0xC0 ~ 0xDF,视频流是: 0xE0 ~ 0xEF。一般音频是0xC0,视频是0xE0
    注意:packet start code prefix + stream id这四个字节称为pes start code(PES起始码),用以识别pes packet的开始,共4个字节。
    音频start code为:0x 00 00 01 C0视频start code为:0x 00 00 01 E0<
  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值