TS协议概念及传输流程

news2025/1/12 1:11:04

TS协议之PAT(节目关联表)
TS协议之PMT(节目映射表)
TS协议之PES(ES数据包)

概要

TS协议是一种媒体流封装协议,类似于MP4,FLV等,可以将编码好的视频流(H164,H265等)和音频流(AAC,MP3等)封装为TS数据流进行传输。

TS数据包规定为188字节,数据包有多种类型:

  1. PAT包:节目关联表,与PMT成对出现,包含所有的节目编号;是解析ts数据的起点。
  2. PMT包:节目映射表,与PAT成对出现,包含所有的节目元素编号,是获取媒体流的关键。
  3. PES包:就是媒体流数据包,包含了视频帧,音频帧的数据。

在TS协议中会经常见到ES这个词,ES包含在PES中,就是指需要传输的视频流(H164,H265等),音频流(AAC,MP3等)的原始流。

专业名词

ES:是指需要传输的视频流(H164,H265等),音频流(AAC,MP3等)的原始流。

PID:包含在TS头中,标识特定的媒体流或TS包(PMT)。通过该字段找到需要的PMT和媒体流。

PCR:用于同步音视频的传输和播放,与PTS时间说可以互相转化。

PTS/DTS:媒体流的时间戳。在PES包中包含。

PSI:是指节目专用信息表。它由节目关联表(PAT)、条件接收表(CAT)和节目映射表(PMT)组成

TS传输流程

在TS包中可能包含很多种媒体流,那么如何TS在传输的过程中是如何找到想要的媒体流进而进行播放的呢?TS的传输流程如下:

TS数据包的数据结构:TS头+PAT/PMT/PES;因此各类型数据的寻找就需要解析TS头,在TS头中有一个PID字段,通过查找对应的PID字段进行数据的筛选;PAT的PID字段固定为0x0,也是TS解析的起点,解析ts流需要先找到PID为0x0的PAT包,PAT包中又包含了很多PMT的PID,PMT中包含了该节目的视频流PID和音频流PID,通过节目编号获取PMT编号,再通过PMT获取节目对应的媒体流PID,从TS流中找到对应PID的媒体流即可。

举个例子:PAT里面包含了河南卫视,cctv-1等,河南卫视就是一个PMT;进入河南卫视就会获取河南卫视的媒体流数据,该媒体流数据包括音频,视频,字幕等,就是获取TS中的获取河南卫视媒体流的PES包,进而播放媒体流。

TS流相较于PS流的区别就是:PS适用于固定长度的媒体流,如果某一部分数据丢失就导致 媒体流无法播放;而TS的媒体流,无论什么时候都能进行编解码播放,如果某部分数据损坏,等待下一个PAT,PMT包即可继续播放。

因此TS流在传输过程中是这样的结构:

在传输过程中固定间隔在TS数据流中插入PAT,PMT信息包,便于随时播放媒体流;该固定间隔可以自定义,可以是固定时间,可以是固定帧数等。因此可以在传输过程中改变流媒体信息(增加或者减少)。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/847897.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大数据——推荐系统

1 推荐系统的发展 推荐系统是指面对没有需求的用户在进入产品时,要给用户推荐什么东西,现在的APP基本上都会采用推荐系统。 从一开始的1990s开始的门户网站,像Yahoo、搜狐和Hao123等等,都是基于分类目录的网页导航网站&#xff0…

【Elasticsearch】学好Elasticsearch系列-聚合查询

本文已收录至Github,推荐阅读 👉 Java随想录 先看后赞,养成习惯。 点赞收藏,人生辉煌。 文章目录 概念doc values 和 fielddatamulti-fields(多字段)类型聚合分类分桶聚合Histogram 聚合 指标聚合Percentil…

用chatGPT从左右眼图片生成点云数据

左右眼图片 需求 需要将左右眼图像利用视差生成三维点云数据 先问问chatGPT相关知识 进一步问有没有现成的软件 chatGPT提到了OpenCV,我们让chatGPT用OpenCV写一个程序来做这个事情 当然,代码里面会有一些错误,chatGPT写的代码并不会做模…

笔记本WIFI连接无网络【实测有效,不用重启电脑】

笔记本Wifi连接无网络实测有效解决方案 问题描述: 笔记本买来一段时间后,WIFI网络连接开机一段时间还正常连接,但是过一段时间显示网络连接不上,重启电脑太麻烦,选择编写重启网络脚本解决。三步解决问题。 解决方案&a…

蓝牙技术在工业物联网 (IIoT)中的应用_串口透传蓝牙模块

物联网 (IoT) 正在通过托管和可扩展的数字解决方案帮助全球各行各业提高效率。 更具体地说,工业物联网 (IIoT) 侧重于连接石油和天然气、水电以及制造业等关键行业的机器和设备。 在工厂中,连接传感器在机器上的应用被用来收集有价值的数据,用…

标题:使用 Python 的 wxPython 模块生成 PPTX 文档

导语:本文介绍了如何使用 wxPython 模块和 python-pptx 模块来编写一个程序,用于生成包含首页、内容页和感谢页的 PPTX 文档。 介绍 PPTX 文档是一种常用的演示文稿格式,用于展示和分享信息。在本文中,我们将使用 Python 的 wxP…

前后端分离式项目架构流程复盘之宿舍管理系统

文章目录 🐒个人主页🏅JavaEE系列专栏📖前言:【🎇前端】先创建Vue-cli项目(版本2.6.10,仅包含babel),请选择此项目并创建 【整理简化项目模板】【🎀创建路由】…

kubesphere 部署 ingress 并使用 80 端口

文章目录 创建集群网关创建应用路由访问域名使用 80 端口 创建集群网关 官方文档:集群网关 点击左上角的平台管理并选择集群管理 点击导航面板中集群设置下的网关设置,选择集群网关选项卡,并点击启用网关 选择 NodePort 模式,配…

如何在风控引擎中快速增加策略

风控策略是由规则和模型组成的、用以实现风险控制目标的集合。模型与规则相辅相成,相互补充,在不同的业务阶段彼此的侧重点不同。新业务上线期,数据量不足,策略以规则为主;当业务运行一段时候后,数据有了一…

【逗老师的PMP学习笔记】7、项目的成本管理

目录 一、规划成本管理二、估算成本1、【关键工具】数据分析-考虑质量成本 三、制定预算1、【关键输出】成本基准2、【关键输出】资金需求 四、控制成本1、【定义】成本类型2、【关键工具】挣值分析 一、规划成本管理 成本管理计划是项目管理计划的组成部分,描述将如…

springboot+jpa+mysql电子数码商城含后台管理源码

#开发技术 #前端 bootstarp框架 html页面 #后端技术 SpringBoot SpringMvc jpa #开发工具 eclipse或者idea jdk1.8 mysql5点几版本 maven环境 maven3.5 前端地址::http://localhost:8080/mall 后台地址&#x…

知识图谱推荐系统研究综述

基于协同过滤的推荐是当前应用最为广泛的推荐方法,但也存在着新用户或新项目的冷启动以及数据稀疏等问题。针对上述两种方法出现的问题,研究者进一步提出了混合推荐系统。混合推荐系统结合上述两种方法的优点,可以有效缓解其中的不足,增加推荐的准确性。但是,混合推荐系统…

原型模式(C++)

定义 使用原型实例指定创建对象的种类,然后通过拷贝这些原型来创建新的对象。 应用场景 在软件系统中,经常面临着“某些结构复杂的对象”的创建工作;由于需求的变化,这些对象经常面临着剧烈的变化,但是它们却拥有比较稳定一致的…

并发编程2:如何进行对象共享?

目录 1、对象的可见性:Volatile 变量 2、发布和逸出 3、线程封闭:ThreadLocal 4、对象的不变性 5、安全发布 5.1 - 安全发布常用的模式 5.2 - 可变对象 5.3 - 安全地共享对象 同步在用于实现原子性或者确定 “临界区(Critical Section)” 的同时…

大公司搞网络部署,关键在哪步?

下午好,我是老杨。 很久没有聊网络部署,今天就说这事儿。 要进行网络部署,涉及的技术点/知识有哪些? 最基本的,你需要掌握vlan划分、路由选择、出口nat处理;你可能还需要懂得链路聚合、mstp、vrrp、ospf…

恒运资本:沪指震荡微涨,医药、酿酒板块反弹,传媒板块活跃

8日早盘,沪指早盘弱势震动下探,临近午盘翻红;深成指、创业板指均止跌回升;两市半日成交超5000亿元,北向资金净卖出超40亿元。 截至午间收盘,沪指微涨0.01%报3269.29点,深成指跌0.06%&#xff0c…

案例分享:NetApp SSD 硬盘重启后全部故障

近日连续处理了几个NetApp FAS存储系统SSD磁盘重启后,全部故障的案例。这里是case的总结和分享,以后有遇到的可以参考处理。 案例1:客户一套FAS8020,带一个DS2246盘柜,内置24个800G X447A的磁盘,机房掉电后…

2023网络安全常用工具汇总(附学习资料+工具安装包)

几十年来,攻击方、白帽和安全从业者的工具不断演进,成为网络安全长河中最具技术特色的灯塔,并在一定程度上左右着网络安全产业发展和演进的方向,成为不可或缺的关键要素之一。 话不多说,网络安全10款常用工具如下 1、…

SQL力扣练习(十)

目录 1.体育馆的人流量(501) 示例 1 解法一(row_number()) 解法二(自定义变量) 解法三 2.好友申请(602) 示例 解法一(union all) 解法二 3.销售员&…

hive修改表或者删除表时卡死问题的解决(2023-08-08)

背景:前阶段在做hive表的改表名时,总是超时,表是内部表,数据量特别大,无论你是修改表名还是删除表都是卡死的状态,怎么破? 终于:尝试出来一个新的方法 将内部表转化成外部表&#…