HLS协议格式

HLS协议格式

  • ES流(Elementary Stream):基本码流,不分段的音频、视频或者其他信息的连续码流
  • PES流,把基本码流ES分割成段,并加上相应头文件打包成形的打包基本码流
  • PS流(Program Stream):节目流,将具有共同时间基准的一个或者多个PES组合(复合)而成的单一数据流
  • TS流(Transport Stream):传输流,将具有共同时间基准或独立时间基准的一个或多个PES组合(复合)而成的单一数据流(用于数据传输)

TS packet格式

  • sync_bypte
    • 8 bit
    • 同步字段,拥有固定的值
    • value: 0x47(固定为0x47)
  • transport_error_indicator
    • 1 bit
    • 错误指示字段
    • value:1-> 在这个TS packet中至少有一个不正常的位
  • payload_unit_start_indicator
    • 1bit
    • 负载单元开始标志,仅对于携带PES packet和PSI data的TS packet有意义
    • PES packet
      • 1-> TS packet的有效负载将会从PES packet的第一个字节开始
      • 0-> PES packet不会从这个 TS packet开始
    • PSI data
      • //TODO
  • transport_proiority
    • 1bit
    • 传输优先级
    • 1->当前 TS packet相比其它具有相同PID的且该位为0的TS packet拥有更高的优先级
  • PID
    • 13bit
    • 表明存储在TS packet负载中的数据类型
      • 0x000 PAT(Program Association Table)表
      • 0x001 CAT(Conditional Access Table)表
        在这里插入图片描述- transport_scrambling_control
    • 2bit
    • 加密标志
    • 00-> 不加密
    • 其余用户定义
  • adaptation_field_control
    • 2bit
    • 这个字段表明TS packet header之后跟随的是adaptation field还是payload
      在这里插入图片描述- continuity_counter
    • 4bit
    • 同pid内的TS packet递增
      在这里插入图片描述#### Adaptation field
  • 调整字段
  • 在MPEG-2TS中,为了传送打包后不足188Byte(包括包头)的不完整TS,或者为了在系统层插入节目时钟参考PCR字段,需要在TS包中插入可变长字段的调整字段。调整字段则包括对较高层次的解码功能有用的相关信息,调整字段的格式基于采用若干标志符,以表示该字段的某些特定扩展是否存在。
  • adaptation_field_length
    • 8bit
    • 表示跟随在这个字段之后的adaptation_filed的字节数量
  • discontinuity_indicator
    • 1bit
    • 表明系统时钟基的不连续和continuity_counter的不连续
  • random_access_indicator
    • 1bit
    • 当前的TS数据包,以及可能具有相同PID的后续传输流数据包,都包含一些信息以提供帮助在这一点上随机访问。
  • elementary_stream_priority_indicator
    • 1bit
    • ES流(基本流,即音频or视频这些基本的数据流)的优先级标志位
    • 1->当前TS packet携带的负载相比同样PID的TS packet有更高的优先级
  • PCR_Flag
    • 1bit
    • 1->表明当前adaptation field包含一个 PCR field
      OPCR_flag
    • 1bit
    • 1->表明当前adaptation field包含一个OPCR field
  • splicing_point_flag
    • 1bit
    • 1->表明当前adaptation field 包含一个splicing point fied
  • transport_private_data_flag
    • 1bit
    • 1->当前adaptation field包含一个或更多的私有数据
  • adaptation_field_extension_flag
    • 1bit
    • 1->表明出现了adaptation 的扩展
      在这里插入图片描述
  • 关于adaptation field 中每一个扩展flag的含义我们后续再看

PES

  • 基本流数据

PAT

  • PAT表记录了节目号与其对应的PMT表所在的PID值
  • 解析过程中我们首先需要解析到PAT表,然后就能知道对应PMT表的pid值,通过这个记录可以知道哪些PID携带的是PMT表。
  • PMT
    • PMT表记录的是这个节目号对应基本流所在的pid,比如video和audio

参考文献

https://www.cnblogs.com/jiangzhaowei/p/4329187.html
https://blog.csdn.net/u013354805/article/details/51683830
https://www.cnblogs.com/renhui/p/10362640.html

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

一文解析RISC-V SiFive U54内核——中断和异常

中断 U54内核支持M模式和S模式中断。默认情况下,所有中断都在M模式下处理 。对于支持S模式的 hart,可以有选择地将中断委托给S模式。 U54中断架构如下: U54内核还支持两种类型的 RISC-V 中断:本地 和全局 。 本地中断 &#xf…

目标检测算法之Fast R-CNN和Faster R-CNN原理

一、Fast R-CNN原理 在SPPNet中,实际上特征提取和区域分类两个步骤还是分离的。只是使用ROI池化层提取了每个区域的特征,在对这些区域分类时,还是使用传统的SVM作为分类器。Fast R-CNN相比SPPNet更进一步,不再使用SVM作为分类器&a…

议程更新 | Occlum Meetup 北京站--一起来聊机密计算 TEE

首届 Occlum Meetup 还有 3 天就要和大家见面啦!北京的小伙伴们,我们来喽!为了能和大家有更充足的时间交流沟通,我们小小的调整了一下议程~最新议程请见下方。本次 Meetup 是 Occlum 开源社区首次在北京线下开展&#…

yolo车牌识别、车辆识别、行人识别、车距识别源码(包含单目双目)

视频效果 车牌识别视频车辆识别视频yolov5车辆识别视频yolov5 yoloR对比行人车辆识别视频yolo车距1完整源码http://www.hedaoapp.com/goods/goodsDetails?pid4132 系统设计 车牌自动识别是以计算机视觉处理、数字图像处理、模式识别等技术为基础,对摄像机所拍摄的…

从零开始,简单几步教会你shopify店铺设计

在弄完shopify的基础配置之后,我们就开始可以设计一下我们的店铺。人都是视觉动物,很难不被好看的东西吸引,所以把店面弄得漂漂亮亮的就是我们赢得顾客信赖的第一步。接下来龙哥会详细地解析一下,shopify的店铺设计与配置要怎么展…

Elasticsearch 核心技术(八):常用 DSL 查询(全文搜索、精确匹配、布尔查询)

❤️ 博客主页:水滴技术 🚀 支持水滴:点赞👍 收藏⭐ 留言💬 🌸 订阅专栏:大数据核心技术从入门到精通 文章目录一、全文搜索1.1 查询所有(match_all)1.2 全文检索&…

CS-Stdio Display Builder

Display Builder 1) 操作界面编辑器和Runtime 2)在EPICS edd/dm, medm, edm, ...想法上构建 3)与CS-Studio BOY兼容性非常好 4)大约2015年在CS-Stdio/Eclipse中开始,现在在CS-Studio/Phoebus中 5) 从209年以Web Runtime获取。…

logstash+elasticsearch+Kibana(ELK)日志收集

文章目录一.安装elasticsearch二. 安装kibana三.配置logstash四.springboot整合logstash五.spring整合Elastic Search不要一股脑执行以下语句,请观察修改要修改的地方 注意给logstash,elasticsearch,kibana释放端口,云服务器提供商和系统的端口 一.安装elasticsearch # 安装e…

【Linux】共享内存

1.共享内存的概念共享内存区是最快的IPC形式。一旦这样的内存映射到共享它的进程的地址空间,这些进程间数据传递不再涉及到内核,换句话说是进程不再通过执行进入内核的系统调用来传递彼此的数据。通信的前提是让两个进程看到同一份资源,信息的…

Multisim14.3安装包下载及安装教程

[软件大小]: 888 MB [安装环境]: Win11/Win 10 [软件安装包下载]:https://pan.quark.cn/s/1c0217caf24a Multisim是美国国家仪器(NI)有限公司推出的以Windows为基础的仿真工具,适用于板级的模拟/数字电路板的设计工作 安装步骤 1.选中下载好…

自主AI能力加速企业智能化转型 | 爱分析报告

报告编委 黄勇 爱分析合伙人&首席分析师 孟晨静 爱分析分析师 外部专家(按姓氏拼音排序) 杜晨阳 力维智联 五维实验室主任 王哲 九章云极DataCanvas 雅图BU总经理 特别鸣谢(按拼音排序) 目录 1. 报告综述 2. 金融…

Java 3个常用工作流引擎

一:Java工作流框架是一种用于设计、执行和管理工作流程的技术。以下是几个常见的Java工作流框架: Activiti:Activiti是一款流行的开源Java工作流引擎,它基于BPMN 2.0标准,支持复杂的工作流程设计和管理。Activiti具有高…

Centos7 XFS(dm-0):Internal error XFS_WANT_CORRUPTED_GOTO

在k8s的道路上我们都是小白,每天启动虚机都会遇到各种各样的问题,这不 部署的k8s虚机启动发现操作系统启动异常,提示如下报错信息 XFS(dm-0):Internal error XFS_WANT_CORRUPTED_GOTO at line 1700 of file fs/xfs/l…

【周末闲谈】文心一言,模仿还是超越?

个人主页:【😊个人主页】 系列专栏:【❤️周末闲谈】 周末闲谈 ✨第一周 二进制VS三进制 文章目录周末闲谈前言一、背景环境二、文心一言?(_)?三、文心一言的优势?😗😗😗四、文心一…

ADC选型关注的参数

目前,用来量化ADC动态性能的六个技术指标分别为SINAD(信号与噪声失真比),ENOB(有效位数),SNR(信噪比),THD(总谐波失真),TH…

ChatGPT原理解析

文章目录Transformer模型结构构成组件整体流程GPT预训练微调模型GPT2GPT3局限性GPT4相关论文Transformer Transformer,这是一种仅依赖于注意力机制而不使用循环或卷积的简单模型,它简单而有效,并且在性能方面表现出色。 在时序模型中&#…

GPT-4 介绍

1 简介 本文根据openAI的2023年3月的《GPT-4 Technical Report 》翻译总结的。 原文地址:https://arxiv.org/pdf/2303.08774.pdf 原文确实没有GPT-4 具体的模型结构,openAI向盈利组织、非公开方向发展了。也没透露硬件、训练成本、训练数据、训练方法等…

原生获取DOM节点

目录 一、通过document顶层方法获取 1、获取html标签 2、获取head标签 3、获取body标签 二、getElementBy系列获取 1、ID获取 2、类名获取 3、name属性获取 4、标签名获取 三、query系列获取 1、通过query选择器获取一个元素 2、通过querry选择器获取一组元素 四、通过…

特斯拉的操作系统是用什么语言编写的?

总目录链接>> AutoSAR入门和实战系列总目录 文章目录特斯拉车辆操作系统特斯拉GitHub中使用的语言Ruby和GoPythonSwift 和 Objective CQt我们知道操作系统至少需要一些非常低级的代码,这些代码在系统首次启动时运行,必须使用接近硬件的语言编写。…

如何使用python删除一个文件?好用到上头.....

人生苦短,我用python 若想利用python删除windows里的文件, 这里需要使用os模块 那接下来就看看利用os模块是如何删除文件的吧~ 具体实现方法如下! 更多学习资料:点击此处跳转文末名片获取 os.remove(path) 删除文件 path. 如果path是一…