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信息包,便于随时播放媒体流;该固定间隔可以自定义,可以是固定时间,可以是固定帧数等。因此可以在传输过程中改变流媒体信息(增加或者减少)。

 

你可能感兴趣的:(音视频,TS,流媒体,音视频)