• ES流、PES流和TS流介绍


    流媒体系统结构

    在这里插入图片描述
    整个传输过程为:音视频数据分别通过图像声音编码器打包成ES(elemental stream 基本数据流),在通过PES打包器打包成PES(packet elemental stream分组的基本数据流),之后通过PS复用器将节目流打包成PS流,通过TS复用器将传输流打包成TS流。

    概念

    1、TS流:传输流,主要用于相对有错的环境下的传输与存储,如DVB

    2、PS流:节目流,主要用于相对无错的环境下的传输与存储,如DVD

    3、ES流:也叫基本码流,包含视频、音频或数据的连续码流

    4、PES流:也叫打包的基本码流,是将基本的码流ES流根据需要分成长度不等的数据包,并加上包头就形成了打包的基本码流PES流。

    5、封装 : 就是捆绑打包,将画面视频文件和音轨文件打包在一起,并按照一定规则建立排序和索引,便于播放器或播放软件来索引播放,包括AVI / PS(Program Stream)/ TS(Transport Stream)/ MKV(Matroska)等。

    TS流

    TS流(Transport Stream),也叫传输流,是由固定长度为188字节的包组成,含有独立时基的一个或多个program, 一个program又可以包含多个视频、音频、和文字信息的ES流;每个ES流会有不同的PID标示,而又为了可以分析这些ES流,TS有一些固定的PID用来间隔发送program和ES流信息的表格—PAT和PMT表。

    在MPEG-2系统中,由视频、音频的ES流和辅助数据复接生成的用于实际传输的标准信息流称为MPEG-2传送流。

    组成传输流的是一系列连续的数据包,简称TS包。TS包的长度固定,一般是188字节。如果在这种TS包的尾部加入16字节的RS纠错码,则包长为204字节。

    传输流这种机制可将多路节目复用成一个流,并且,同一节目还可以包含多个视频和音频流。每一个TS包都有一个包标识PID,同一基础流对应的TS包,PID的值相同。TS流就是通过对各个基础流分配不同的PID号来唯一的标识各个不同的基础流、信息表和其它数据。每一个TS包最多只能包含一路基础流的内容。

    组成节目的视频流和音频流经过基础流编码器之后,形成基本流,每一路视频流或音频流对应一路基本流。基本流经过打包,形成PES包流。每一个PES包都有流标识、用于视、音频解码和播放同步的时戳。PES包和其它的数据、控制信息经过复用器,形成TS包。

    在这里插入图片描述
    在这里插入图片描述
    为了实现众多编码器与解码器之间的时钟同步,防止解码器的缓冲发生上溢或下溢,在系统流中加入了一个精确的系统级时间参考值,在TS流中,这个值被称为节目参考时钟PCR。在解码器端,当检测到本地系统时钟和PCR所表征的时钟不一致时,解码器将调整本地系统时钟。

  • 相关阅读:
    es6 函数的使用
    《网络协议》07. 其他协议
    深入理解服务发现:从基础到实践
    Linux应用-ElasticSearch安装
    LODOP.ADD_PRINT_TEXT 参数解释说明
    【前端实例代码】使用 HTML&& CSS实现指纹扫描仪特效动画效果 |前端开发 网页制作 基础入门教程 网页开发中常见的样式与特效,收藏起来肯定用的上~
    css实现鼠标多样化
    Python遥感图像处理应用篇(十九):GDAL +numpy批量对遥感图像外围背景值进行处理
    尚硅谷以太坊区块链学习之NFT智能合约(6)
    Linux命令
  • 原文地址:https://blog.csdn.net/johnWcheung/article/details/125627184