一文读懂TS流与TS over IP技术
TS流
TS流(Transport Stream,传输流)是一种标准数字封装格式,用于传输和储存视音频信号以及频道和节目信息。常用于数字电视广播系统,通过地面、卫星等可靠性较低的传输媒介进行传播,与面向较为可靠介质如DVD的MPEG2-PS(Program Stream)有所不同。
TS流的主要特点:
1、支持在不稳定的传输环境中进行可靠传输;
2、每个TS流片段都可以独立解码,提高传输的容错性;
3、采用固定长度的数据包结构,便于处理和错误检测;
4、支持多节目复用,可在一个TS流中同时传输多个节目。
TS流的封装结构
TS流的封装分为三层结构,分别是ES层、PES层和TS层
1、ES层(Elementary Stream,基本流)
ES层是音视频数据的原始形式,通常为经过压缩编码后的音视频数据流,如H.264视频流或AAC音频流。ES层只包含编码后的数据,没有附加任何传输或时序信息。
2、PES层(Packetized Elementary Stream,打包基本流)
PES层是在ES层数据基础上加上时间戳等对数据帧的说明信息形成的。PES层的机构包括包头和数据域两部分:
包头包含了PTS(Presentation Time Stamp,显示时间戳)、DTS(Decoding Time Stamp,解码时间戳)等时序信息
数据域则包含了编码后的音视频数据,PES包的长度可变,通常为几千字节。
3、TS层(Transport Steam,传输流)
TS层是在PES层上加入了数据流识别和传输的必要信息,将多个PES流复用成一个统一的传输流。TS包是TS流的基本传输单位,每个TS包固定为188字节,由包头和包数据两部分组成,包头还可以包括扩展的自适应区。
TS包的详细结构
TS包是TS流的基本传输单元,其结构设计非常严谨,固定为188字节(或204字节,包括循环冗余校验),主要由三个部分组成
1、包头(Header):固定为4个字节,包含以下关键信息:
同步字节(Sync Byte):固定值为0x47(二进制01000111),用于标识TS包的开始;
传输错误指示(Transport Error Indicator):1位标志,指示该包是否存在不可纠正的错误;
有效载荷单元起始指示(Payload Unit Start Indicator):1位标志,指示该包是否为PES包的开始;
传输优先级(Transport Priority):1位标志,指示该包的优先级;
PID(Packet Identifier):13位字段,唯一标识该TS包所携带的数据类型;
传输加扰控制(Transport Scrambling Control):2位字段,指示数据是否被加扰;
适配字段控制(Adaptation Field Control):2位字段,指示是否存在适配字段及其类型;
连续计数器(Continuity Counter):4位字段,用于检测包的连续性和丢失。
2、适配字段(Adaptation Field,可选)
当适配字段控制字段位“10”或“11”时存在,包含以下信息:适配字段长度、不连续指示、随机访问指示、节目时钟参考(PCR,Program Clock Reference)、节目数据块开始指示、分段率、填充字节等。、
3、有效载荷(Payload)
有效载荷部分包含实际的数据,如PES包数据、PSI表或其他系统信息。有效载荷的长度为188字节减去包头和适配字段的长度。
TS over IP
TS over IP(Transport Stream over Internet Protocol)是将TS流数据包封装到IP数据包中,使其能够在IP网络中传输的技术方案。
TS over IP的主要特点:
1、将传统的广播电视传输技术与现代IP网络技术相结合;
2、支持在标准IP网络基础设施上传输TS流;
3、能够利用IP网络的组播、单播等特性实现灵活的内容分发;
4、支持在广域网和局域网中进行长距离的传输。
TS over IP的封装格式
TS over IP的封装过程涉及多个网络协议层,形成了一个完整的协议栈。其封装格式一般是将TS包封装在UDP数据包中,然后将UDP数据包封装在IP数据包中进行传输,具体如下:
TS层:保持不变,仍然是标准的MPEG-2 TS流格式,包含188字节的TS包,由TS header、adaptation field和payload三个部分组成。TS header包含同步字节、传输错误指示符等信息;adaptation field主要用于不足188字节时的数据填充,长短不一;payload是PES数据。
RTP层(可选):在需要实时传输和控制的场景中,TS包可以被封装到RTP(实时传输协议)数据包中。RTP提供了时间戳、序列号等信息,有助于接收端进行同步和抖动缓冲处理。
UDP层:TS包或RTP封装后的TS包被放置在UDP(用户数据报协议)的数据部分,TS包和UDP包头一起构成UDP数据包,UDP包头为8个字节,包含源端口号、目的端口号、长度和校验和等字段。UDP提供了无连接、不可靠的传输的服务,适用实时性要求高的流媒体传输。
IP层:IP数据包格式主要由首部和数据负载两部分组成,UDP数据包被封装在IP包的数据负载部分,IP包的首部长度一般为20-60字节,包含版本号、首部长度、优先级与服务类型、总长度、标识符等字段。IP层负责在网络中路由和传输数据。
以太网层(可选):在以太网环境中,IP数据包被进一步封装到以太网帧中,以便在物理网络介质上传输。
注:由于以太网中数据帧的最长长度为1500字节,去掉UDP/IP头开销后,可用的最大数据传输量为1472字节,而TS包长度为188字节,因此一个最大传输单元最多只能封装7个TS包。
TS流与TS over IP的区别
一、封装结构与数据包格式
TS流和TS over IP在封装结构和数据包格式上区别主要体现在以下四个方面:
1、基本单位和长度:TS流的基本传输单元是TS包,固定长度为188字节;TS over IP的基本传输单元是IP数据包,通常包含7个TS包,总长度约为1500字节(包括IP和UDP头)。
2、层次结构:TS流采用三层封装结构(ES层、PES层、TS层),直接在物理层或数据链路层传输;TS over IP在TS层之上增加了RTP/UDP/IP等多层协议封装,形成更复杂的层次结构。
3、包头信息:TS流的包头仅包含与TS流相关的信息,如PID、连续计数器等;TS over IP的包头,除了含TS包头外,还包含UDP头、IP头,可能还有RTP头等多层包头信息。
4、同步机制:TS流主要依靠TS包中的同步字节(0x47)和PCR进行同步;TS over IP除了TS流本身的同步机制外,还依赖RTP时间戳、序列号以及IP网络的同步协议。
二、传输协议与网络层
TS流和TS over IP在传输协议与网络层的区别主要体现在以下四个方面:
1、传输协议栈:TS流通常直接在物理层或者数据链路层传输,如通过同轴电缆、卫星链路等;TS over IP基于完整的TCP/IP协议栈,包括网络层(IP)、传输层(UDP/TCP)和应用层(RTP/RTSP等)。
2、传输模式:TS流主要采用广播或单播模式,在有线电视网络中通常是点对多点的传播;TS over IP支持单播、组播和广播等多种传输模式,灵活性更高。
3、连续特性:TS流通常是无连接的传输,发送端持续发送TS流,不关心接收端状态;TS over IP可以是无连接(UDP)或面向连接(TCP),取决于具体应用场景。
4、网络适应性:TS流设计用于相对稳定的传输环境,对传输错误较为敏感;TS over IP能够适应IP网络的动态变化,通过各种网络协议(如FEC、ARQ等)提高传输可靠性。
三、同步与时钟机制
TS流和TS over IP在同步与时钟机制的区别主要体现在以下四个方面:
1、时钟参考:TS流主要依靠TS包中的PCR(节目时钟参考)字段实现同步,PCR是从发送端的系统时钟中提取的;TS over IP除了PCR外,还可以利用RTP时间戳、NTP(网络时间协议)和IEEE 1588精密时钟同步协议实现更精准的同步。
2、同步精度:TS流在同一广播域内可以实现高精度同步,但跨不同网络域时同步难度较大;TS over IP通过网络同步协议可以实现跨广域网的同步,但精度可能受网络延迟和抖动影响。
3、抖动处理:TS流通常在稳定的传输介质上传输,抖动较小,处理相对简单;TS over IP需要复杂的抖动缓冲机制来处理IP网络中的数据包延迟变化。
4、时钟恢复:TS流接收端通过解析PCR值恢复出发送端的系统时钟;TS over IP除了PCR外,还可以利用RTP时间戳和网络时间协议辅助时钟恢复。
四、错误处理与可靠性
TS流和TS over IP在错误处理与可靠性的区别主要体现在以下四个方面:
1、错误检测:TS流通过TS包头中的传输错误指示位和PCR的连续性检测错误;TS over IP除了TS流本身的错误检测外,还可以利用IP校验和、UDP校验和等多层错误检测机制。
2、错误纠正:TS流通常不具备纠错能力,依赖底层传输介质的可靠性;TS over IP可以采用多种纠错机制,如前向纠错(FEC)、自动重传请求(ARQ)等。
3、数据包丢失处理:TS流数据包丢失可能导致接收端无法正确解码,特别是关键的PSI表丢失;TS over IP可以通过FEC冗余数据恢复丢失的数据包,或通过ARQ请求重传丢失的数据包。
4、错误恢复:TS一旦发生不可恢复的错误,可能需要重新同步整个流;TS over IP可以在不中断整个流的情况下恢复局部错误,特别是使用RTP传输时。
五、应用场景与灵活性
TS流和TS over IP在应用场景与灵活性的区别主要体现在以下四个方面:
1、主要应用领域:TS流主要应用于传统数字电视广播,包括卫星电视、有线电视和地面广播电视;TS over IP主要应用于IPTV、网络视频监控、实时流媒体传输和基于IP的数字电视广播。
2、网络适应性:TS 流适合在相对稳定、带宽固定的传输介质上传输;TS over IP能够适应各种IP网络环境、包括广域网、局域网和无线网络。
3、传输距离:TS流传输距离受限于物理介质,通常适用于段距离和中距离传输;TS over IP可以通过IP网络进行长距离传输,甚至全球范围的传输。
4、业务灵活性:TS流通常用于固定的广播业务,灵活性较低;TS over IP支持多种业务类型,包括直播、点播、时移电视等,灵活性更高。
IP流(IP Stream)和TS over IP的区别
IP流是通过IP协议(UDP、TCP)封装的数据流,数据内容可多样(视频、音频、文件等),依赖TCP/IP网络架构(如互联网、局域网),主要应用场景如互联网视频直播、视频会议、网络点播(VOD)、监控摄像头的网络数据传输,需要依赖IP地址进行端到端的传输,支持灵活的网络路由,可适应丢包、延迟等网络波动。
IP流和TS over IP主要由以下区别:
1、概念范畴不同:IP流通过IP协议传输各种数据流,是一个较为宽泛的概念;而TS over IP是一种具体的技术方案,将TS流封装在IP数据包中,通过IP网络进行传输的方式。
2、数据封装方式不同:IP流的数据封装方式取决于具体的应用和协议,可能使用RTP、UDP、TCP等多种协议进行封装;TS over IP则是将固定长度为188字节的TS 数据包,按照一定的规则封装成IP 数据包,通常每7个TS数据包封装成一个IP包。
3、应用场景不同:IP流适用于各种基于IP网络的多媒体传输场景,如视频会议、网络直播、视频点播等,TS over IP主要应用于数字电视广播、IPTV等领域,它使得传统的TS流能够利用IP网络的优势进行传输和分发,实现广播、直播和点播等功能。