您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
pat格式(详解TS协议(包括超强EasyIce工具介绍))
数据,视频,表示pat格式(详解TS协议(包括超强EasyIce工具介绍))
发布时间:2020-12-06加入收藏来源:互联网点击:
0.前言
阅读本文前,可以参考前面文章,能够帮助更好理解本文。
详细分析HLS框架
手把手配置HLS流媒体服务器
聊聊H264的 NALU
h264 NALU代码实战(1)
H264解码器原理之一
H.264详解之一
AAC ADTS实战(1)
AAC ADTS格式分析(1)
1.TS协议简述
使用UE工具打开ts文件,ts协议都是以0x47作为开头,代表一个ts文件开始。0x47也是debug时,经常作为是否为ts包的判断依据。ts流应用场景除了前面HLS,还有广播电视,卫星直播。一般一个ts流由很多个频道组成,每个频道由不同PID区分。
除了使用ue工具,这里还推荐一个分析ts流的工具,它是EasyICE,对于分析ts,HLS,非常好用工具,建议下载。
下载地址:https://www.easyice.cn/archives/85
1.1 EasyICE主要功能介绍
主要特性TS 文件分析UDP,RTP,HLS 实时分析,码流录制。TR 101290 监测。PCR 抖动,精度,间隔分析。GOP 统计,码率变化分析Multi language support (Chinese,English)HLS 分析唯一一款支持HLS协议的免费分析软件。通过HLS 缓冲分析模块,可以一目了然的看到播放器的缓冲状态。当你的节目出现卡顿,观察缓冲状态就可以知道是否数据到达太慢。HLS分析支持直播与点播业务。
TS切片质量报告,包含了通常人们关心的,以及Apple要求的切片需符合的技术参数,不管节目制作者还是检验人员,切片质量报告最有用不过了。当一个节目的播放效果出现问题,对于节目本身首先要关注的就是这些参数。
UDP/RTP 直播分析为数字电视行业TS OVER IP设计的直播分析功能,支持单播,广播,组播(IGMP_v2,IGMP_v3),可以检测TR101290,媒体信息,PID统计,以及PCR的精度,间隔,总抖动等内容,数据接收与检测采取异步方式,线程间共享缓冲使用无锁的设计,保证了分析结果的准确性。
TS 包列表支持TS包分类,头部字段解析,以及视频(MPEG2,H264)帧类型判断。支持查找,快速定位需要的TS包,便于分析原始数据。
TR101290不同于其他码流分析产品的TR101290,仅有事件统计,在EasyICE中,你可以根据某一错误事件定位到数据包视图的相应位置,看看那里出了问题。
图表直观的看到时间戳变化,时间戳差值变化(这个功能就非常好用),GOP帧数,GOP字节数,以及基于两PCR包间数据量计算出的码率变化。同样,点击图表中的每个采样点,可以定位到数据包视图的相应位置。另外,滚动鼠标可以缩放视图,甚至可以导出这些采样值原始数据。
其他比较快的分析速度,支持从cap,pcap格式的抓包文件导出TS流。把cap文件拖进去试试看~所有功能免费使用
解析音视频PID
视频pid与PCR的pid一样
在ts流中是间隔插入PAT和PMT,PAT和PMT是重复的,这样有助于快速搜索节目。如果不插入,可能在搜索节目,切换节目时,可能找不到对应的节目。
一般0.5s就插入一个PAT。如下图:
解析媒体信息
如下图EasyICE检测出的媒体信息。
解析视频帧
通过这个工具,还可以解析每组GOP的排布情况。这个功能也非常好用,瞬间爱上这个软件了。
更为直观的显示GOP。
码率波动图
可以实时观察码率波动的情况。
分析数据包
可以根据EasyICE提供的结果,去分析数据包,比如数据包是否连续。
2 .ts⽂件分层
ts ⽂件为传输流⽂件,视频编码主要格式为 H264/MPEG4,⾳频为 AAC/mp3。每一层都是使用header payload形式打包,类似网络5层协议。
如果把ts文件传输比作一个快递运输的过程,那么es就是真实的包裹,如一件衣服。pes就是使用打包盒子装好,并贴好时间,顺序等标签信息。ts就是贴上发货地址,寄货地址等信息,运送出去。
ts ⽂件分为三层:
(1)ts层(Transport Stream),也称为传输流层,在pes 层的基础上加⼊数据流的识别(如0x47头部信息)和传输必须的信息。ts header字段,如下表格所示:
重点关注sync_byte和continuity_counter(循环计数器,音频,视频,字幕对应每一个PID都是独立,各自计数,相互不干扰),在解封装时,确保该信息正确,才能保证这个包是有效。
从这个软件分析的结果,也可以得出,音视频,PAT,PMT的pid都是独立。
第一、Ts Header
ts 层的内容是通过 PID 值来标识的,主要内容包括:PAT 表、PMT 表、⾳频流、视频流。解析 ts 流要先找到 PAT 表,只要找到 PAT 就可以找到 PMT,然后就可以找到⾳视频流了。PAT 表和 PMT 表需要定期插⼊ ts 流,因为⽤户随时可能加⼊ ts 流,这个间隔⽐较⼩,通常每隔⼏个视频帧就要加⼊ PAT和 PMT。PAT 和 PMT 表是必须的,还可以加⼊其它表如 SDT(业务描述表)等,不过 hls 流只要有PAT 和 PMT 就可以播放了。
如何区分哪些是音频数据,哪些是视频数据?
先弄清PAT和PMT关系。
PAT表:主要的作⽤就是指明了 PMT 表的 PID 值。能找到PAT。PAT的pid默认值是0。通过PAT能够解析出当前ts流包含的节目数量以及对应节目的PMT pid。
PMT表:主要作用就是指明了音视频流的PID值。通过PMT的PID值就可以区分那个包是视频数据,那个包是音频数据。
音频流:编码好的音频数据。
视频流:编码好的视频数据。
根据上面的流程,举个例子,如一个ts流可能有很多个节目,如CCTV-1,CCTV-2,CCTV-3等,如果寻找CCTV-1,先找到ts流的PAT表,然后PAT找CCTV-1的PMT表中的pid=100,解析PMT的pid=100,然后分析出音频的pid(如为101)、视频的pid(如为102),字幕pid(如为103)等,这些都是相互独立。根据音频、视频、字幕对应的pid,找到对应的pid的ts,并根据id放入不同的队列,然后解析出具体的音频,视频数据。注意:这里还涉及到ts->pes->es的解封装过程。
第二、adaptation field
adaptation field所包含的字段如下表格,这里重点关注PCR和错误指示符。
⾃适应区的⻓度要包含传输错误指示符标识的⼀个字节。PCR是节目时钟参考,也是一种音视频同步的时钟,pcr、dts、pts 都是对同⼀个系统时钟的采样值,pcr 是递增的,因此可以将其设置为 dts 值,⾳频数据不需要 pcr(PCR的pid,一般与视频的pid是同一个值)。
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |