TS协议概念及传输流程

TS协议之PAT(节目关联表)
TS协议之PMT(节目映射表)
TS协议之PES(ES数据包)

概要

TS协议是一种媒体流封装协议,类似于MP4,FLV等,可以将编码好的视频流(H164,H265等)和音频流(AAC,MP3等)封装为TS数据流进行传输。

TS数据包规定为188字节,数据包有多种类型:

  1. PAT包:节目关联表,与PMT成对出现,包含所有的节目编号;是解析ts数据的起点。
  2. PMT包:节目映射表,与PAT成对出现,包含所有的节目元素编号,是获取媒体流的关键。
  3. PES包:就是媒体流数据包,包含了视频帧,音频帧的数据。

在TS协议中会经常见到ES这个词,ES包含在PES中,就是指需要传输的视频流(H164,H265等),音频流(AAC,MP3等)的原始流。

专业名词

ES:是指需要传输的视频流(H164,H265等),音频流(AAC,MP3等)的原始流。

PID:包含在TS头中,标识特定的媒体流或TS包(PMT)。通过该字段找到需要的PMT和媒体流。

PCR:用于同步音视频的传输和播放,与PTS时间说可以互相转化。

PTS/DTS:媒体流的时间戳。在PES包中包含。

PSI:是指节目专用信息表。它由节目关联表(PAT)、条件接收表(CAT)和节目映射表(PMT)组成

TS传输流程

在TS包中可能包含很多种媒体流,那么如何TS在传输的过程中是如何找到想要的媒体流进而进行播放的呢?TS的传输流程如下:

TS数据包的数据结构:TS头+PAT/PMT/PES;因此各类型数据的寻找就需要解析TS头,在TS头中有一个PID字段,通过查找对应的PID字段进行数据的筛选;PAT的PID字段固定为0x0,也是TS解析的起点,解析ts流需要先找到PID为0x0的PAT包,PAT包中又包含了很多PMT的PID,PMT中包含了该节目的视频流PID和音频流PID,通过节目编号获取PMT编号,再通过PMT获取节目对应的媒体流PID,从TS流中找到对应PID的媒体流即可。

举个例子:PAT里面包含了河南卫视,cctv-1等,河南卫视就是一个PMT;进入河南卫视就会获取河南卫视的媒体流数据,该媒体流数据包括音频,视频,字幕等,就是获取TS中的获取河南卫视媒体流的PES包,进而播放媒体流。

TS流相较于PS流的区别就是:PS适用于固定长度的媒体流,如果某一部分数据丢失就导致 媒体流无法播放;而TS的媒体流,无论什么时候都能进行编解码播放,如果某部分数据损坏,等待下一个PAT,PMT包即可继续播放。

因此TS流在传输过程中是这样的结构:

在传输过程中固定间隔在TS数据流中插入PAT,PMT信息包,便于随时播放媒体流;该固定间隔可以自定义,可以是固定时间,可以是固定帧数等。因此可以在传输过程中改变流媒体信息(增加或者减少)。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

迷茫的蜉蝣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值