在MPEG-2系统中,信息复合/分离的过程称为系统复接/分接,由视频,音频的ES流和辅助数据复接生成的用于实际传输的标准信息流称为MPEG-2传送流(TS:TransportStream)。 据传输媒体的质量不同,MPEG-2中定义了两种复合信息流:传送流(TS)和节目流(PS:ProgramStream)TS流与PS流的区别在于TS流的包结构是固定长度的,而PS流的包结构是可变长度的。
PS包与TS包在结构上的这种差异,导致了它们对传输误码具有不同的抵抗能力,因而应用的环境也有所不同。TS码流由于采用了固定长度的包结构,当传输误 码破坏了某一TS包的同步信息时,接收机可在固定的位置检测它后面包中的同步信息,从而恢复同步,避免了信息丢失。而PS包由于长度是变化的,一旦某一 PS包的同步信息丢失,接收机无法确定下一包的同步位置, 就会造成失步,导致严重的信息丢失。因此,在信道环境较为恶劣,传输误码较高时,一般采用TS码流;而在信道环境较好,传输误码较低时,一般采用PS码流 如DVD等等。 由于TS码流具有较强的抵抗传输误码的能力,因此目前在传输媒体中进行传输的MPEG-2码流基本上都采用了TS码流。
简单说就是ps流(主要用在DVD上)如是中间丢了一断码流,后面的都没法播了;而TS流(DVB-T,DMB-TH等)如果断了码流,后面的随时可以再开始解码怎么看都行。 DVB-T,DVB-H,DMB-TH 主要指的是调制解调(信道编码和解码)方式为COFDM,信源编解码采用的都是MPEG-2,TS流。 目前地面波数字电视标准中只有日本的ISDB 采用MPEG-4(H.264)编解码。 清晰度方面,DVB-T,DMB-TH标准都可以达到高清标准,DVB-H主要面向手持设备,接收终端的解析度有限。
ps码流:dvd等本地文件
ts码流:rtp网络传输等
====================================================
pes,ts,ps
ts流是由很多不同种类的包所组成的,这些数据包都是188个字节大小,这188个字节包含两部分,包头和负载,包头包括同步信息,包信息等等,而负载则是传输的数据,而这些负载则可以组成PES流或者私有流等等数据流.
举例说,一个TS流包括100个包,其中PSI信息包占20个,PES数据包80个,此TS流中只有一套节目流,不含有私有流,所以从这80个PES包中 的负载连接在一起,就是2个PES流(视频,音频),如果每个PES包的负载长度为100字节,则这两个PES流一共长度为8000个字节.假设其中视频 的PES流长度为6000字节.则视频的6000字节的PES流,是由PES包组成的.PES包没有固定的长度,而是由包头部的数据给出.而PS也是类似 TS流分解的方式,逆向的由PES包封装成包,其中要添加PACKET_HEAD,SYSTEM_HEAD等信息.所以上次所做的程序,并不是 TS->PS的转换,而是从一个复杂的TS流中,过滤去一套节目,构造出一个简单的TS流的过程.
mpeg-ts,mpeg-ps的转换
mpeg2文件都是以数据包传递的,同样都是188个字节为一个包,但是作为传输流和节目流,包的组织结构还是不太一样的,作为传输流来说,其包含的包的 种类比较多(其实不是包的种类,而是包含不同用途的数据的种类比较多),比如有PID为0x0000的PAT,EIT,TDT,TOT,还有PMT,等等 不同的表或包.而节目流所包含的就比较少,只要包含PAT,PMT,以及包含音频,视频的PES包就可以了.所以在TS,PS的转换 中,TS->PS的转换比较简单,只要去掉相对没有作用的包,在修改一下PAT,PMT表就可以了.
例如现在我所做的DVB-T的MPEG2存储,就是先得到MPEG2压缩的数据包(完整的包,包含同步等等所有信息,共188个字节),其中包含音频,视 频两种数据包(两者以PID不同,相区分).那么作为PS流存储时,就要虚构出新的PAT,PMT表假如到PS流中,其中PAT,PMT中需要修改的就是 PMT中指向音频,视频流的PID值必须是要存储的音频,视频数据包的PID.这样就完成了TS->PS的转换.
简言之:先对TS进行过滤,保留要存储的节目所对应的音频,视频流,删除所有其他的包.然后虚构一个新的PAT,PMT表,其中音频,视频流的指针必须指向存储的音,视频流的PID.这样就完成了转换.
问题:1.音频,视频同步问题,这两个包应该以什么样的比例交叉传输呢?也就是多少个视频包中间发送一个音频包呢?如果这个比例控制不好,那么就容易造成音,视频不同步.
2.对于我们所虚构的PAT,PMT表应该以什么样的频率发送呢?也就是说发送多少PES包后,发送一次PSI包呢?这个问题似乎影响不大.好象还没有出现播放时的问题.
3.我现在所采用的这种做法,虽然解决了存储,然后播放的问题,但是似乎并没有实现TS->PS的转换,实现的是对TS流的过滤,即是把一个含有多套节目的TS流,转换成一个只含有一套节目的TS流,不知道这样说对不对?
4.还有一个主要问题就是对于TS流中传输PES信息的包来说,其负载信息中的数据,如何组成PES流的呢?应该是通过包头部分的控制信息来明确的,还的好好看看文档.
分享到:
相关推荐
标题中的“MFC-MPEG2TS流转PS流软件”指的是一个利用Microsoft Foundation Classes (MFC)库开发的应用程序,该程序能够将MPEG-2 Transport Stream (TS)格式的视频流转换为Program Stream (PS)格式。MPEG-2是数字视频...
标题“ts2ps_ts2ps_”和描述“Example Window application ts2ps”涉及的核心知识点是将TS(Transport Stream)格式的视频文件...了解TS和PS的区别以及如何使用转换工具,对于处理数字视频文件的用户来说是很有帮助的。
5. **PS流与组播**:虽然标签中提及PS流(Program Stream)和组播,但在TS解复用的上下文中,PS流通常是指另一种多媒体封装格式,而组播则涉及多目的地的数据传输。如果代码包含这些内容,可能涉及如何将解复用后的...
在多媒体领域,MPEG2TS(Transport Stream,传输流)和MPEG2PS(Program Stream,节目流)是两种常见的编码格式,它们主要用于存储和传输视频数据。MPEG2TS通常用于数字电视广播,而MPEG2PS则常用于DVD等存储介质。...
本教程将详细解释如何使用FFmpeg读取内存中的PS(Program Stream)/TS(Transport Stream)流,并从中分离出视频和音频。 首先,了解PS和TS流的基本概念。PS主要用于DVD存储,是一种连续的数据流,包含了一个或多个...
PS流则主要用于DVD和蓝光等存储介质,与TS相比,PS流是连续的,不包含TS包头,因此更易于存储和播放。PS流分析主要包括拆包、解析VOB(Video Object Plane)单元、分离视频、音频和字幕流,并进行相应的解码和处理。...
在MPEG-2系统中,ES流是基本流,经过MPEG-2系统处理后生成TS流和PS流。TS流和PS流是经MPEG-2系统处理后用于传输和存储的两种码流标准。 TS流参数监测 TS流参数监测是TS流传输中的一个重要环节,用于检测和调整TS...
与TS流相比,PS流没有固定的包大小,更适合于相对稳定的存储环境。 3. **Vob文件**:Vob是DVD-Video的主要媒体文件格式,存储了视频、音频和字幕信息。Vob文件实际上是PS流的封装形式,可以被解复用为单独的音视频...
二、TS 码流和 PS 流 TS 码流(Transport Stream)是一种数字视频流格式,主要用于 DVB 数据广播。PS 流(Program Stream)是一种数字视频流格式,主要用于 DVD 等存储媒体中。TS 码流具有强的错误校正功能,适合...
PS流和TS流是MPEG2系统标准中的两种不同封装方式,主要用于音频和视频数据的存储和传输。这两种流在MPEG2 ISO/IEC-13818标准第一部分“系统”中被定义,旨在提供MPEG2编码比特流的组织结构。 **PS流(Program ...
本话题将围绕“ps流解析器”这一工具,详细探讨其如何解析PS文件并将其转换为ES(Elementary Stream)文件,以及涉及到的H264编码和TS(Transport Stream)格式。 首先,我们需要理解PS文件的结构。PS格式是为了...
3. **TS流与PS流的区别**: - PS流(Program Stream)的包结构是可变长度的,而TS流的包结构是固定的。 - 固定长度的TS包在传输误码导致同步信息丢失时,接收端更容易恢复同步,因此在信道条件较差时更适用。 - ...
PS/TS流媒体文件的理解报告,介绍PS/TS的结构、与ES如何进行转换,并结合MPEG-2的复用和解复用过程进行了说明
PS/TS流媒体文件的理解报告,介绍PS/TS的结构、与ES如何进行转换,并结合MPEG-2的复用和解复用过程进行了说明
6. **包的解包与重组**:将TS包解包并重组为PS流,反之亦然,以适应不同的应用需求。 7. **可视化展示**:有些工具提供图形化的视图,以直观的方式展示数据流的关系和结构,便于理解和调试。 压缩包中的`...
标题中的“TS PS ES 码流发送工具”指的是在数字信号处理领域中常见的三种不同的视频编码格式:Transport Stream(TS)、Program Stream(PS)和Elementary Stream(ES)。这些码流是多媒体数据(如视频和音频)在...
ES流不包含任何时间信息或错误恢复数据,它们是PS流和TS流(Transport Stream)的基础构建块。 将PS流文件转换为ES流文件的过程,主要是解析PS流中的各个节目,提取出对应的ES流,并将其重新打包成独立的文件。这个...
基于ffmpeg,个人开发的支持GB28181 PS流工具,用法: 1. 将本地文件转为 GB28181PS流 ffmpeg -re -i demo.ts -vcodec copy -ar 8000 -ac 1 -acodec pcm_alaw -payload_type 96 -payload_audio 96 -pack_type 1 -f ...
MPEG-PS流的打包与解包过程对于理解数字视频和音频的处理至关重要。 1. MPEG-PS 流的基本结构: MPEG-PS流是由多个程序流组成的复合流,每个程序流包含一个或多个音视频节目。每个节目由一个系统时间码(PTS, ...
PS流是MPEG-2 Transport Stream(TS流)的一种封装形式,适用于存储和网络传输。它包含音频、视频以及其他数据包,每个包头包含了时间戳信息,便于同步处理。PS流的优势在于其抗丢包能力较强,适合在网络不稳定的...