PES:

1.1 PES介绍:

PES--Packetized  Elementary Streams  (分组的ES),ES形成的分组称为PES分组,是用来传递ES的一种数据结构。PES流是ES流经过PES打包器处理后形成的数据流,在这个过程中完成了将ES流分组、打包、加入包头信息等操作(对ES流的第一次打包)。PES流的基本单位是PES包。PES包由包头和payload组成。

1.2. PES句法句法示意图:

2. 分析PES包:

2.1 PES包数据:

2.2 包头:

TS包头只有4个字节(47 48 14 10),除掉第一个字节0x47,剩下就3个,重新分组如下:

2.3 TS包:

1) 00 00 01:包起始码前缀。默认规定。占24位,3个字节。(47 48 14 1000 00 01 C0 01 88 80 80 05 21 00 01 96 07 FF FD 85 00 33 22)

2) C0:1100 0000:流ID,占8位(47 48 14 10 00 00 01 C0 01 88 80 80 05 21 00 01 96 07 FF FD 85 00 33 22)

3)01 88:0000 0001 1000 1000 PES包长度,也就是一帧数据的总长度(也就是这帧长度是392字节)。(47 48 14 10 00 00 01 C0 01 88 80 80 05 21 00 01 96 07 FF FD 85 00 33 22)

4)80:1000 0000(47 48 14 10 00 00 01 C0 01 88 80 80 05 21 00 01 96 07 FF FD 85 00 33 22)

5)80:1000 0000(47 48 14 10 00 00 01 C0 01 88 8080 05 21 00 01 96 07 FF FD 85 00 33 22)

6)05:0000 0101(47 48 14 10 00 00 01 C0 01 88 80 80 05 21 00 01 96 07 FF FD 85 00 33 22)

 

7)21 00 01 96 07:5个字节总共40位(47 48 14 10 00 00 01 C0 01 88 80 80 05 21 00 01 96 07 FF FD 85 00 33 22)

 

PES,包头分析完。剩下的数据就全是帧数据的一部分数据了。

8)FF FD 85 00 33 22:(47 48 14 10 00 00 01 C0 01 88 80 80 05 21 00 01 96 07 FF FD 85 00 33 22)这些数据符号MP3格式。

3. PES第二个数据包:

3.1 PES包数据:

3.2 包头:

S包头只有4个字节(47 08 14 11),除掉第一个字节0x47,剩下就3个,重新分组如下:

0    0    0  0100000010100    00    01    0001

3.3 TS数据:

去除包头都是MP3数据的有效荷载。

4. PES语法解析:

————————————————
版权声明:本文为CSDN博主「ChenYuanshen」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u013354805/article/details/51591229

PES介绍(转载)的更多相关文章

  1. VPN理论简单介绍(转载)

    标签:VPN理论简单介绍 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://lvnian.blog.51cto.com/715528 ...

  2. Linux各目录及每个目录的详细介绍(转载)

    [常见目录说明] 目录 /bin 存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里. /etc 存放系统管理和配置文件 /home 存放所有用户文件的根目录,是用户主目录的基点 ...

  3. python正则表达式re模块详细介绍--转载

    本模块提供了和Perl里的正则表达式类似的功能,不关是正则表达式本身还是被搜索的字符串,都可以是Unicode字符,这点不用担心,python会处理地和Ascii字符一样漂亮. 正则表达式使用反斜杆( ...

  4. linux下各文件夹的结构说明及用途介绍(转载)

    详细介绍文档 转载文章路径 /bin:二进制可执行命令. /dev:设备特殊文件. /etc:系统管理和配置文件. /etc/rc.d:启动的配 置文件和脚本. /home:用户主目录的基点,比如用户 ...

  5. [python爬虫] Selenium常见元素定位方法和操作的学习介绍(转载)

    转载地址:[python爬虫] Selenium常见元素定位方法和操作的学习介绍 一. 定位元素方法 官网地址:http://selenium-python.readthedocs.org/locat ...

  6. Kubernetes1-K8s的简单介绍(转载)

    一.简介 1.什么是Kubernetes 简称K8s,用8代替8个字符"ubernerte"而成的速写,K8s是一个开源的容器编排平台,它是一个跨主机集群的开源容器调度平台,用于管 ...

  7. VMware vCenter 6.0 安装及群集配置介绍(转载)

    转载自http://blog.51cto.com/wzlinux/2094598 一.介绍 VMware vCenter Server 提供了一个可伸缩.可扩展的平台,为虚拟化管理奠定了基础.可集中管 ...

  8. G++ 参数介绍(转载)

    g++参数介绍 From: http://www.cnblogs.com/lidan/archive/2011/05/25/2239517.html gcc and g++分别是gnu的c & ...

  9. JavaSript模块规范 - AMD规范与CMD规范介绍 (转载lovenyf.blog.chinaunix.net)

    JavaSript模块化   在了解AMD,CMD规范前,还是需要先来简单地了解下什么是模块化,模块化开发?       模块化是指在解决某一个复杂问题或者一系列的杂糅问题时,依照一种分类的思维把问题 ...

随机推荐

  1. Python 操作 sqlite

    代码示例 #导入sqlite3库 import sqlite3 #连接数据库 conn = sqlite3.connect("customers.db") #创建表,主键id自增 ...

  2. cf 500 D. New Year Santa Network

    直接按边分,2个点在边的一边,1个在另一边,组合出来就是这个边对答案的贡献,权值换了就再重新算个数而已. #include <bits/stdc++.h> #define LL long ...

  3. python 4个人中有一人做了好事,一直有三个人说了真话,根据下面的对话判断是谁做的好事

    题目:4个人中有一人做了好事,一直有三个人说了真话,根据下面的对话判断是谁做的好事. A:不是我 B:是C C:是D D:C胡说 for inum in ['A','B','C','D']: prin ...

  4. Vulkan 之 Layers

    Layers 暴露给api层,不像传统图形API集成在驱动里面,开发者根据自己的需要进行开启,最终目的还是为了提高性能. The Loader he loader is the central arb ...

  5. 【转】在C#中?,?:和??

    符号:?名称:可空类型修饰符.引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空.例如:string str=null; 是正确的,int i=null; 编译器就会报错.为了使值类型 ...

  6. 实验吧-密码学-变异凯撒(ascii码规律运算)

    密文是:afZ_r9VYfScOeO_UL^RWUc 刚开始很迷,不知道往什么方向,到最后才发现,原来和ASCII有关. 将flag{的ASCII码和密文的ASCII码对比: 97 102 90 95 ...

  7. vue学习(十二)vue全家桶 Vue-router&Vuex

    一 vue-router的安装 二 vue-router的基本使用 三 命名路由 四 动态路由的匹配和路由组件的复用 一 vue-router的安装 NPM npm install vue-route ...

  8. Mysql安装维护笔记一

    1.Centos7安装mysql rpm安装PHP7相应的yum源 $wget 'https://dev.mysql.com/get/mysql57-community-release-el7-11. ...

  9. HDFS 中文件操作的错误集锦

    问题1  Java ApI执行追加写入时:无法写入 问题描述: ①当前数据节点无法写入,②追加文件需要再次请求. 问题2  命令行执行追加写入时:无法写入 问题描述: 当前数据节点无法写入 问题3   ...

  10. MFC 根据字符宽度居中

    Gdiplus::Font font(_T("微软雅黑"), (Gdiplus::REAL)130); Gdiplus::RectF orgin(0.0f, 100.0f, nWi ...