TS协议概念及传输流程

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.rhkb.cn/news/81164.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

性能测试的结果如何解读和分析?

性能测试的结果如何解读和分析? 性能测试的结果需要进行细致的解读和分析,以便找出系统的瓶颈和问题,并提出改进建议。以下是一些常见的性能测试结果指标和解读方法: 1. 响应时间:响应时间是指系统处理请求所需的时间…

【5G NR】逻辑信道、传输信道和物理信道的映射关系

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。 博客…

【ztree应用】基于jquery实现带检索功能的ztree文件夹折叠效果(附源码下载)

文章目录 写在前面涉及知识效果展示1、搭建dom2、引入ztree和jquery3、实现搜索功能及调用4、源码分享1)百度网盘2)123云盘3)邮箱留言 总结 写在前面 前些日子,领导要求做一个关于数据库管理的工具,主要想支持一些批量…

Java个人博客系统--基于Springboot的设计与实现

目录 一、项目概述 应用技术 接口实现: 数据库定义: 数据库建表: 博客表数据库相关操作: 添加项⽬公共模块 加密MD5 页面展示:http://121.41.168.121:8080/blog_login.html 项目源码:https://gitee…

Android监听电量变化广播(动态广播代码)

activity_main.xml中 <?xml version"1.0" encoding"utf-8"?><LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent&quo…

Ajax入门

文章目录 axios体验axios-查询参数常用请求方法数据提交 axios错误处理 axios体验 引入axios库 使用axios语法 axios({url: 目标资源地址 }).then((result)>{// 对服务器返回的数据做后续处理 })完整实例 <!DOCTYPE html> <html lang"en"><head&g…

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

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

Redis 加入服务列表自启动

1、下载reids windows版本&#xff0c;选择zip格式下载 2、解压zip&#xff0c;并进入路径&#xff1b; 3、命令提示符&#xff08;cmd&#xff09; 进入解压后的路径后&#xff0c;输入指令&#xff1a;redis-server --service-install redis.windows.conf&#xff1b; 4、如…

Vue Router 的query和params的区别?

区别一&#xff1a; &#xff08;1&#xff09;query相当于get请求&#xff0c;页面跳转的时候可以在地址栏看到请求参数 &#xff08;2&#xff09;params相当于post请求&#xff0c;参数不会在地址栏中显示&#xff0c;所以用params传值相对安全 &#xff08;简记&#xff1…

适配器模式(C++)

定义 将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 应用场景 在软件系统中&#xff0c;由于应用环境的变化&#xff0c;常常需要将“一些现存的对象 ”放在新的环境中应用&#xff0c;但是新环境要求…

最长公共子序列

dp思路&#xff1a;dp[i][j]代表第一个字符串前i个字符和第二个字符串前j个字符的最长公共子序列的长度 其中对于某一个状态dp[j][j]存在四种情况&#xff1a; 1、s[i],t[j]都包括在最长公共子序列中&#xff0c;则有转移&#xff1a; 2、s[i],t[j]都不包含在最长公共子序列中&…

20.5 HTML 媒体

1. video视频标签 video视频标签: 是HTML中用于在网页上嵌入视频的元素.常用的视频标签属性: - src属性: 指定视频文件的URL地址. - controls属性: 用于显示视频播放控件(如播放按钮, 进度条等), 使用户能够控制视频的播放. - width和height: 指定视频的宽度和高度. - autopla…

计算机组成与设计01:计算机的抽象与技术

目录 1 概述 1.1 计算机体系结构体中的8个伟大思想 1.2 计算机层次结构 1.2.1 概述 1.2.2 指令集体系结构 1.3 实例&#xff1a;从程序到电子信号 1.3.1 从高级语言到汇编语言 1.3.2 从汇编语言到机器语言 1.3.3 生成可执行文件并执行 1.3.4 计算机基本执行结构 1.3…

图书管理借阅系统【Java简易版】Java三大特征封装,继承,多态的综合运用

前言 前几篇文章讲到了Java的基本语法规则&#xff0c;今天我们就用前面学到的数组&#xff0c;类和对象&#xff0c;封装&#xff0c;继承&#xff0c;多态&#xff0c;抽象类&#xff0c;接口等做一个图书管理借阅系统。 文章目录 &#x1f947;1.分析图书管理系统要实现的功…

二、 MySQL 内部技术架构

二、 MySQL 内部技术架构 047 Mysql内部支持缓存查询吗&#xff1f; 当MySQL接收到客户端的查询SQL之后&#xff0c;仅仅只需要对其进行相应的权限验证之后&#xff0c;就会通过Query Cache来查找结果&#xff0c;甚至都不需要经过Optimizer模块进行执行计划的分析优化&…

STM32 F103C8T6学习笔记1:开发环境与原理图的熟悉

作为一名大学生&#xff0c;学习单片机有一段时间了&#xff0c;也接触过嵌入式ARM的开发&#xff0c;但从未使用以及接触过STM32C8T6大开发使用&#xff0c;于是从今日开始&#xff0c;将学习使用它~ 本文介绍STM32C8T6最小系统开发环境搭建注意问题&#xff0c;STM32C8T6单片…

【笔记】移动光猫改桥接

1. 登录后台 移动光猫的超管和密码&#xff08;百度的&#xff09; 账号&#xff1a;CMCCAdmin 密码&#xff1a;aDm8H%MdA 浏览器访问 192.168.1.1 并登录 2. 选择连接 点击“网络”&#xff0c;在“连接名称”下拉框选择 INTENET_R_VID 字样的连接&#xff0c;并截图备…

通用指令(汇编)

一、数据处理指令1&#xff09;数学运算数据运算指令的格式数据搬移指令立即数伪指令加法指令带进位的加法指令减法指令带借位的减法指令逆向减法指令乘法指令数据运算指令的扩展 2&#xff09;逻辑运算按位与指令按位或指令按位异或指令左移指令右移指令位清零指令 3&#xff…

Kernel Exception导致手机重启案例分析

和你一起终身学习&#xff0c;这里是程序员Android 经典好文推荐&#xff0c;通过阅读本文&#xff0c;您将收获以下知识点: 一、高温触发 Kernel Exception 重启问题二、解决方案三、提高电池温度方案 一、 高温触发 Kernel Exception 重启问题 手机 电池温度 默认60度以上高温…

【css】css位置布局position

position 属性规定应用于元素的定位方法的类型。元素其实是通过使用top、bottom、left 和 right 属性来定位的。但是&#xff0c;需要首先设置了 position 属性&#xff0c;否则这些属性将不起作用。根据不同的 position 值&#xff0c;它们的设置特点不同。 其有五个不同的位…