传输流 (TS) 是 IPTV、DVB/ATSC 和 OTT 数字电视网络中流行的媒体数据流格式。为了生成和回放传输流,使用了 PTS、DTS、PCR 时间戳。时间戳验证可确保视频、音频和其他媒体数据之间的流不同步。本文重点介绍 TS 生成过程,详细描述时间戳和时间戳验证方法,并包括使用辅助传输流分析工具的说明和屏幕截图。
I 复用,或生成 TS
该过程可以描述如下。
1. 一系列压缩视频帧、音频样本、隐藏式字幕和图文电视页面被封装到 PES(分组基本流)数据包中。
-
PES 数据包的长度可变,具体取决于封装数据的单元大小。
-
每个PES数据包至少有一个时间戳、PTS(呈现时间戳)和可能的DTS(解码时间戳)。
-
PTS指示应回放相应基本流(ES)(例如视频帧、音频样本、图文电视页面或隐藏字幕)的时间点。
-
DTS(解码时间戳)指示视频帧应该被解码的时间点。
-
如果 DTS 的值与 PTS 不同,则指定 DTS。
2. 每个 PES 又被分段为固定大小(188 字节)的 TS(传输流)数据包。
-
如果PTS和DTS是时间值,则必须有一个包含这些值的连续时间尺度(时钟)。这样的时间尺度由PCR(程序时钟参考)时间戳形成。它们在 TS 数据包标头中指定。
3. 开销数据也被添加到流中,包括PSI/SI(节目特定信息/系统信息)表、SCTE-35以及作为TS的一部分传输的其他数据。因此,传输流是 TS 数据包的序列(图 1)。
图 1 – 传输流的结构
多路复用器、DVB/ATSC 调制器和 OTT 打包器使用 PTS 来同步视频、音频和其他类型的 ES。PCR 标记用于同步发送器和接收器端之间的时钟。
错误或不准确的时间戳将导致同步丢失、延迟以及广播和播放问题。
因此,时间戳验证对于提供高质量体验至关重要。本文重点详细分析时间戳验证方法。