视频流中ES,PES,PS,TS,RTP概念说明

2024-04-23 17:18
文章标签 rtp es 概念 说明 ts ps 视频流 pes

本文主要是介绍视频流中ES,PES,PS,TS,RTP概念说明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ES:又称为原始流,直接从编码器出来,可以是编码过的H264,MJPEG,音频AAC,音频G711等。ES只包含一种内容的视频,如只含视频或者只含音频。

PES: ES流经PES打包器形成,将ES流分组,打包,加入包头。PES包由包头和payload组成。PES包是PES流的基本单位。
PTS(Decoding Time Stamp)/DTS(Presentation Time Stamp):打在PES包的包头里面,用于表示时间,是音视频同步的关键。在ffmpeg中,PTS表示显示的时间,DTS表示的是解码的时间。同时,用ffmpeg处理的时候PTS必须大于或等于DTS,否则会返回-22的错误。

PS(节目流):由PS组成,而一个PS包又由若干个PES包组成,到这里,ES经过了两层的封装。PS包头包含了同步信息与时钟恢复信息。
关于PS流的具体格式以及具体分析可以参考博客:作者写的很好,我看的时候和我获取的海康的PS流有一些出入,但大体上都差不多https://blog.csdn.net/chen495810242/article/details/39207305

**TS(传输流)?*由定长的TS包包组成(188字节),而TS包是对PES包的一个重新封装(到这里,ES也经过了两层封装)。TS流较PS流的优势是信息丢失情况更好。TS包中的数据可以是视频数据,音频数据,填充数据,PSI/SI表格数据等。

**RTP(实时传输协议):**是一种针对互联网上多媒体码流的传输协议。RTP协议时长用于互联网点播,视频会议,视频监控等应用。RTP使用的包为RTP包,作用域传输层。

拓展:
RTSP+RTP主要用于IPTV,原因是传输数据使用的是UDP,网络环境比较稳定时传输效率较高,作用于应用层。
RTMP主要用于互联网音视频传输,TCP传输。RTMP作为流媒体协议,FLV作为封装格式,H.264作为视频编码格式,ACC作为音频编码格式。

点播服务普遍采用了HTTP作为流媒体协议,点播服务采用的封装格式有多种:MP4,FLV等。

**说明:**这些概念的解释都是我从网上摘取下来的,可能有不正确的地方,欢迎指正。但是可以大概的了解一下,有需要再每一个自己去百度详细了解。

这篇关于视频流中ES,PES,PS,TS,RTP概念说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/929414

相关文章

Linux join命令的使用及说明

《Linuxjoin命令的使用及说明》`join`命令用于在Linux中按字段将两个文件进行连接,类似于SQL的JOIN,它需要两个文件按用于匹配的字段排序,并且第一个文件的换行符必须是LF,`jo... 目录一. 基本语法二. 数据准备三. 指定文件的连接key四.-a输出指定文件的所有行五.-o指定输出

Java AOP面向切面编程的概念和实现方式

《JavaAOP面向切面编程的概念和实现方式》AOP是面向切面编程,通过动态代理将横切关注点(如日志、事务)与核心业务逻辑分离,提升代码复用性和可维护性,本文给大家介绍JavaAOP面向切面编程的概... 目录一、AOP 是什么?二、AOP 的核心概念与实现方式核心概念实现方式三、Spring AOP 的关

Redis中Hash从使用过程到原理说明

《Redis中Hash从使用过程到原理说明》RedisHash结构用于存储字段-值对,适合对象数据,支持HSET、HGET等命令,采用ziplist或hashtable编码,通过渐进式rehash优化... 目录一、开篇:Hash就像超市的货架二、Hash的基本使用1. 常用命令示例2. Java操作示例三

Redis中Set结构使用过程与原理说明

《Redis中Set结构使用过程与原理说明》本文解析了RedisSet数据结构,涵盖其基本操作(如添加、查找)、集合运算(交并差)、底层实现(intset与hashtable自动切换机制)、典型应用场... 目录开篇:从购物车到Redis Set一、Redis Set的基本操作1.1 编程常用命令1.2 集

Python sys模块的使用及说明

《Pythonsys模块的使用及说明》Pythonsys模块是核心工具,用于解释器交互与运行时控制,涵盖命令行参数处理、路径修改、强制退出、I/O重定向、系统信息获取等功能,适用于脚本开发与调试,需... 目录python sys 模块详解常用功能与代码示例获取命令行参数修改模块搜索路径强制退出程序标准输入

Java Instrumentation从概念到基本用法详解

《JavaInstrumentation从概念到基本用法详解》JavaInstrumentation是java.lang.instrument包提供的API,允许开发者在类被JVM加载时对其进行修改... 目录一、什么是 Java Instrumentation主要用途二、核心概念1. Java Agent

MySQL之复合查询使用及说明

《MySQL之复合查询使用及说明》文章讲解了SQL复合查询中emp、dept、salgrade三张表的使用,涵盖多表连接、自连接、子查询(单行/多行/多列)及合并查询(UNION/UNIONALL)等... 目录复合查询基本查询回顾多表查询笛卡尔积自连接子查询单行子查询多行子查询多列子查询在from子句中使

Kotlin 协程之Channel的概念和基本使用详解

《Kotlin协程之Channel的概念和基本使用详解》文章介绍协程在复杂场景中使用Channel进行数据传递与控制,涵盖创建参数、缓冲策略、操作方式及异常处理,适用于持续数据流、多协程协作等,需注... 目录前言launch / async 适合的场景Channel 的概念和基本使用概念Channel 的

redis-sentinel基础概念及部署流程

《redis-sentinel基础概念及部署流程》RedisSentinel是Redis的高可用解决方案,通过监控主从节点、自动故障转移、通知机制及配置提供,实现集群故障恢复与服务持续可用,核心组件包... 目录一. 引言二. 核心功能三. 核心组件四. 故障转移流程五. 服务部署六. sentinel部署

Redis中哨兵机制和集群的区别及说明

《Redis中哨兵机制和集群的区别及说明》Redis哨兵通过主从复制实现高可用,适用于中小规模数据;集群采用分布式分片,支持动态扩展,适合大规模数据,哨兵管理简单但扩展性弱,集群性能更强但架构复杂,根... 目录一、架构设计与节点角色1. 哨兵机制(Sentinel)2. 集群(Cluster)二、数据分片