• 各种数据流


    一 、ES流:

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

    二、PES流:

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

    原始流分成很多PES分组,保持串行顺序,一个PES分组只包含一个原始流的编码数据。PES分组长度很大,最大可为64K字节。
    PES分组分为“分组首部(header)”和“有效负载(payload)”。“有效负载”指跟随在首部字节之后的字节。首部的前4个字节构成分组的起始码,标识了该分组所属原始流的类型和ID号。

    三、TS流:

    也叫传输流,是由固定长度为188字节的包组成,含有独立时基的一个或多个节目,适用于误码较多的环境。

    TS分组也就是传输流数据形成的数据包。每个TS分组长度为188字节,包括“分组首部”和“有效负载,前4个字节是分组首部,包含了这个分组的一些信息。有些情况下需要更多的信息时,需在后面添加“调整字段(adaption field)”。

     

    http://blog.163.com/niuxiangshan@126/blog/static/170596595201402722959646/

     

    四、gs流

    由于DVB—S在带宽利用率以及调制编码方面的不足,在第二代数字卫星广播标准(the second generation of digital video broadcasting.satellite, DVB・S2) 中,

    采用了更先进的调制编码方式,在兼容TS流的基础上,引入一种全新的码流,即通用流 (general stream,GS)。在相同的条件下,DVB.S2比DVB.S节省了约30%的带宽 。

     

    概念:

    协议数据单元(protocol data unit,PDU)

    通用流封装(general stream en. capsulation,GSE)

     

    根据基带帧:

    MATYPE的首个字节(MATYPE.1)的TS/GS域,指示了传输流格式是Ts流或GS流,

    SIS/MIS域指示了输入流是单输人还是多输入。SIS/MIS值为“l”,表示单输入流,

    MATYPE的第2个字节(MATYPE.2)等于输入流标示符(inputstream identi.tier,IsI),不为“0”;

    SIS/MIS值为“0”,表示多输入流,MATYPE.2为预留字节,值一般为“Ox00”。
    UPL域表示用户包长度,单位是比特。UPL值为“0000。。。”,表示输入流是连续流,UPL值为“188X8。”,表示用户包是MPEG传输流包,包长为188字节。

     

    IP数据的GS流的基带帧头部有以下特征:
    (1)MATYPE.1的TS/GS值为二进制“01”;
    (2)MATYPE一1的SIS/MIS值为“1”时,MATYPE-2字节不为“0”;SIS/MIS值为“0”时,MATYPE一2字节为“0x00”;
    (3)UPL值为“0x0000”;
    (4)DFL值被8整除,因为DFL域的第1个字节为高位字节,所以DFL域的第2个字节即低位字节也被8整除:
    (5)CRC.8不对基带帧头部前9个字节进行错误校验。

    若基带帧为GS流提取GSE header如下

     

    (1)s域表明是起始分段,e域为结束分段

    (2)lt为label_type类型:

    值为“00”,label域为6字节,用于寻址,相当于以太网中的MAC地址;
    LT值为“11”,表示同一个基带帧中先前的GSE包已经使用过的label可以再用,该GSE包头不再有label域,
    也就是说,对于按顺序传输的具有相同label的GSE包,GSE包头的label域不需要重复出现。需要注意的
    是,基带帧第1个GSE包的LT值不能为“11”,即基带帧的第1个GSE包不能为PDU中间分段所在的GSE包。

    (3)gse_length: 该gse包大小

    (4)total_length: 该pdu整段总长,第一分段出现

    (5)protocol_type : 协议类型, 第一分段出现

    (6)frag_id:用来指示该pdu段属于哪一个pdu

    (7)CRC:pdu_end段出现用来进行crc校验

     

     

  • 相关阅读:
    MP3 Lame 转换 参数 设置(转)
    数据库SQL优化大总结之 百万级数据库优化方案(转)
    IndexedDB:浏览器里内置的数据库(转)
    【译】微型ORM:PetaPoco【不完整的翻译】(转)
    'NoneType' object has no attribute '__getitem__'
    关于python的整形(int)自动转长整形(long)的问题
    1-redis使用笔记
    Flask deployment on gunicorn with flask script
    Celery从入门到放弃
    SELECT中的CAST
  • 原文地址:https://www.cnblogs.com/chencesc/p/5725469.html
Copyright © 2020-2023  润新知