音视频学习(二十五):ts
TS(MPEG-TS,MPEG Transport Stream) 是一种广泛应用于流媒体传输和存储的容器格式。它最早由 MPEG(Moving Picture Experts Group)组织制定,用于视频和音频的压缩编码。在 HLS(HTTP Live Streaming) 等流媒体协议中,常用 TS 格式来封装视频片段(通常为 .ts
文件),用于网络传输和客户端播放。
概述
TS(Transport Stream)是一种为广播和流媒体应用设计的容器格式,具有高容错性和灵活性,能够承载视频、音频、字幕等多种数据流。它常用于卫星电视、广播电视、视频流传输等场景。
- 文件扩展名:
.ts
。 - 基本组成:TS 文件将视频和音频编码流(如 H.264、AAC)分割成固定大小的小数据包(通常为 188 字节)。每个数据包包含一个或多个编码流的包头和数据负载。
TS文件结构
一个标准的 MPEG-TS 文件(.ts
)主要由 TS 数据包(Transport Stream Packet)组成,每个数据包的大小固定为 188 字节。每个数据包都包含一个 包头 和一个 负载(payload)。
TS 数据包(Transport Stream Packet)结构
每个 TS 数据包的结构如下:
字段 | 长度 | 描述 |
---|---|---|
同步字节 | 1字节 | 固定值 0x47 ,用于标识数据包的开始。 |
错误标志 | 1字节 | 指示是否发生了错误。 |
PID(Packet ID) | 13位 | 表示该数据包的流标识符,决定了该数据包属于哪个流。 |
优先级标志 | 2位 | 用于优先级控制,通常设置为 00 。 |
有效负载指示符 | 1位 | 表示该包是否包含有效的数据。 |
继续传输标志 | 1位 | 如果设置为1,表示后续包仍是同一数据流的一部分。 |
包计数 | 1字节 | 每个数据包的序列号。 |
负载 | 184字节 | 实际存储的视频或音频数据。 |
-
同步字节(Sync Byte):每个 TS 数据包的首字节固定为
0x47
,这用于包的同步,确保数据包的正确起始。如果接收到一个包的同步字节不是0x47
,则表示包可能已损坏。 -
错误标志(Error Indicator):指示数据包是否损坏。如果包标志为
1
,则表示该数据包存在错误,需要丢弃。 -
PID(Packet Identifier):该字段是 13 位长,用于标识该数据包所属于的流类型。每个流都有一个唯一的 PID。例如,视频流、音频流、字幕流等都使用不同的 PID 标识。PID 也有特殊含义:
- 0x1FFF:表示一个无效的 PID,通常用于空数据包。
- 0x0000:用于 PAT(Program Association Table)。
- 0x0001:用于 PMT(Program Map Table)。
-
负载单元开始指示符(Payload Unit Start Indicator):当数据包包含一个新的数据单元时,该指示符为
1
。通常,这意味着数据包的负载部分是一个完整的数据单元的开始(如一个视频帧的开始,或者音频数据的开始)。 -
自适应字段控制(Adaptation Field Control):指示数据包是否包含 自适应字段。如果该值为
01
,则表示没有自适应字段;如果为10
或11
,则表示包含自适应字段。自适应字段包含如时间戳、插入控制字节等信息,用于补充流媒体内容。 -
负载(Payload):负载部分承载了实际的数据内容。根据数据包的 PID,负载部分可能包含视频数据、音频数据、字幕数据,或者一些控制数据。例如,视频数据通常是 H.264 编码后的数据,音频数据则可能是 AAC 编码的数据。
包头
-
TS 数据包的包头包含了同步字节和其他控制信息,包头的结构如下:
字段 长度 描述 同步字节 (Sync Byte) 1字节 固定值 0x47
,标识数据包开始。错误标志 (Error Indicator) 1位 如果包发生错误,标识设置为 1
。PID(Packet Identifier) 13位 用于标识流类型,指向具体的音视频流。 优先级标志 (Priority Flag) 1位 设置为 1
表示优先级较高。有效负载标志 (Payload Unit Start Indicator) 1位 如果为 1
,表示该数据包是负载的开始。自适应字段控制 (Adaptation Field Control) 2位 标识数据包是否有自适应字段。 包计数(Continuity Counter) 1字节 包的连续性计数。
负载
负载部分的内容根据数据包的类型而不同,可能是视频数据、音频数据或其他类型的控制信息。
- 视频数据:如果该数据包是视频流的一部分,负载将包含如 H.264 编码的视频帧数据。
- 音频数据:如果该数据包是音频流的一部分,负载将包含如 AAC 编码的音频帧数据。
- 字幕数据:如果该数据包是字幕流的一部分,负载将包含字幕数据。
TS 文件中的适应性字段(Adaptation Field)
适应性字段是可选的字段,通常用于补充流信息,如时间戳、插入字节等。适应性字段可以包含:
- 时间戳:用于同步音频和视频流。
- 插入字节:用于数据包的对齐。
- 自适应字段的长度:指示该字段的长度。
适应性字段的出现与否由 自适应字段控制(Adaptation Field Control) 字段决定。如果数据包需要包含这些信息,它将占据包头后的 1 到 184 字节之间的位置。
工作原理
在 HLS 流媒体协议中,TS 文件用于将视频流和音频流分成若干小片段,每个片段大多为 10 秒钟左右。每个 .ts
文件通常由多个 TS 数据包组成,并通过网络传输给客户端进行播放。
编码流的分割
在 HLS 中,视频(如 H.264)和音频(如 AAC)编码后被分割成一个个 TS 数据包。每个 TS 包包含该视频片段的一部分或整个音频流的部分内容。因为 TS 数据包是固定大小的,因此视频流和音频流会被切割成多个包进行传输。
数据传输
每个 TS 文件会包含一个 .m3u8
播放列表文件,客户端根据该播放列表按顺序请求 TS 文件中的数据段。每个 TS 文件通过 HTTP 或其他协议传输给客户端,客户端逐个解析并播放这些数据段。
错误恢复与容错
由于 TS 格式具有良好的容错能力,如果某个 TS 数据包出现损坏,播放器可以通过丢弃该数据包来继续播放后续内容。TS 格式的容错能力主要体现在:
- 每个 TS 数据包的大小固定,可以较容易地实现错误检测和修复。
- 各个流(视频、音频等)通常是独立的,因此如果一个流的数据包损坏,其他流通常不会受到影响。
TS文件的封装与编码
视频与音频封装
在 TS 文件中,视频流和音频流的数据是独立的,它们通过不同的 PID(Packet Identifier)标识。每个 TS 数据包可以包含以下类型的流:
- 视频流:如 H.264 编码的视频流,通常具有特定的 PID。
- 音频流:如 AAC 编码的音频流,具有另一个独立的 PID。
- 字幕流:例如,嵌入的字幕也可以作为一个独立的流进行传输。
HLS 流的 TS 切片
在 HLS 流中,视频源文件会被分割成多个小的 .ts
文件(通常每个文件持续约 10 秒钟)。每个 .ts
文件包含了一个视频段的编码数据,客户端通过 .m3u8
播放列表文件来顺序请求这些 .ts
文件。
TS 文件与 HLS 流的关系
在 HLS 中,每个视频流(如直播视频或点播视频)都被切分成多个小的 TS 文件,每个 TS 文件包含了一个视频片段。播放器使用 .m3u8
播放列表文件中的链接,按顺序加载这些 TS 文件进行播放。
- 每个 TS 文件通常包含一个视频段(如 10 秒钟的 H.264 编码视频片段)和音频段(如 10 秒钟的 AAC 编码音频)。
- 每个
.m3u8
播放列表文件会列出这些 TS 文件的路径,播放器根据网络状况逐个请求这些文件。 - HLS 支持多码率流(例如,低码率、中码率和高码率流),每个流使用不同的 TS 文件和
.m3u8
播放列表。
TS文件的特点
优点
- 容错性强:由于 TS 包内置的错误检测和修复机制,使得 TS 格式在流媒体传输中具有较强的容错能力,即使网络状况不稳定,也能保证流媒体播放的稳定性。
- 实时性好:TS 格式特别适合实时流媒体的传输,能够在直播等场景中提供较低的延迟。
- 灵活性:TS 文件不仅可以包含视频和音频流,还可以支持字幕、元数据等多种数据流,非常适合多种媒体格式的封装。
缺点
- 文件大小和传输效率:TS 文件通过固定大小的数据包传输,可能会导致一定的网络带宽浪费,尤其是对于低比特率流(例如低清晰度视频)的传输。
- 延迟:由于每个 TS 文件都需要一定的传输时间和播放时间,所以它的延迟通常比其他实时协议(如 RTMP)要高,尤其是在使用 HLS 进行直播时。
TS 文件与其他容器格式的对比
与 MP4 格式:
- MP4 是基于文件的格式,更适合离线存储和播放,不适合流媒体传输。
- TS 格式则是针对流媒体传输而设计,支持边下载边播放,并具有较好的错误恢复能力。
与 FLV 和 RTMP:
- TS 和 FLV 都支持流媒体播放,但 TS 在错误恢复方面表现更好。
- RTMP 通常用于低延迟的直播流,而 TS 更适用于具有容错要求的场景,如通过 HTTP 进行的直播流。
总结
TS 文件(Transport Stream) 是 HLS 流媒体协议中常用的封装格式,它通过将视频、音频和其他数据流切分为固定大小的数据包(188 字节)进行传输,具有高容错性和适应流媒体传输的能力。
相关文章:
音视频学习(二十五):ts
TS(MPEG-TS,MPEG Transport Stream) 是一种广泛应用于流媒体传输和存储的容器格式。它最早由 MPEG(Moving Picture Experts Group)组织制定,用于视频和音频的压缩编码。在 HLS(HTTP Live Stream…...
MVVM、MVC、MVP 的区别
MVVM(Model-View-ViewModel)、MVC(Model-View-Controller)和MVP(Model-View-Presenter)是三种常见的软件架构模式,它们在客户端应用开发中被广泛使用。每种模式都有其特定的设计理念和应用场景&…...
低延迟!实时处理!中软高科AI边缘服务器,解决边缘计算多样化需求!
根据相关统计,随着物联网的发展和5G技术的普及,到2025年,全球物联网设备连接数将达到1000亿,海量的计算数据使得传输到云端再处理的云计算方式显得更捉襟见肘。拥有低延迟、实时处理、可扩展性和更高安全性的边缘计算应运而生&…...
CSS|14 z-index
z-index z-index表示谁压盖着谁,数值大的会压盖住数值小的。只有定位的元素才有z-index值,只有设置了固定定位、相对定位、绝对定位了的元素,才会拥有z-indexz-index的值是没有单位的,值是一个正整数,默认的z-index值…...
Elasticsearch:使用 Open Crawler 和 semantic text 进行语义搜索
作者:来自 Elastic Jeff Vestal 了解如何使用开放爬虫与 semantic text 字段结合来轻松抓取网站并使其可进行语义搜索。 Elastic Open Crawler 演练 我们在这里要做什么? Elastic Open Crawler 是 Elastic 托管爬虫的后继者。 Semantic text 是 Elasti…...
【潜意识Java】深度解析黑马项目《苍穹外卖》与蓝桥杯算法的结合问题
目录 为什么要结合项目与算法? 1. 蓝桥杯与《苍穹外卖》项目的结合 实例:基于蓝桥杯算法思想的订单配送路径规划 问题描述: 代码实现:使用动态规划解决旅行商问题 代码解析: 为什么这个题目与蓝桥杯相关&#x…...
powershell基础(1)
powershell基础(1) 1. 安装PowerShell 首先,确保你的计算机上已经安装了PowerShell。对于Windows 10及更高版本,PowerShell通常是默认安装的。你也可以从微软官网下载并安装最新版本的PowerShell Core。 2. 打开PowerShell 在Windows搜索栏中输入“P…...
国标GB28181协议平台Liveweb:搭建建筑工地无线视频联网监控系统方案
随着科技高速发展,视频信号经过数字压缩,通过互联网宽带或者移动4G网络传递,可实现远程视频监控功能。将这一功能运用于施工现场安全管理,势必会大大提高管理效率,提升监管层次。而这些,通过Liveweb监控系统…...
踩准智能汽车+机器人两大风口,速腾聚创AI+机器人应用双线爆发
日前,RoboSense速腾聚创交出了一份亮眼的Q3财报。受到多重利好消息影响,其股价也应势连续大涨。截止12月9日发稿前,速腾聚创股价近一个月内累计涨幅已超88%。 财务数据方面,速腾聚创在今年前三季度实现总收入约11.3亿元࿰…...
本地maven项目打包部署到maven远程私库
目的:在自己的maven项目中,要把当前maven项目部署到maven私库,供其他人引入依赖使用。 首先要确保你当前能访问到你的私库,能拉私库的maven依赖即可。 maven部署命令: mvn deploy:deploy-file -Dmaven.test.skiptrue -…...
青少年编程与数学 02-004 Go语言Web编程 14课题、数据操作
青少年编程与数学 02-004 Go语言Web编程 14课题、数据操作 一、数据操作二、CRUD说明: 三、数据验证为什么需要数据验证?Go Web应用中的数据验证示例步骤 1: 定义订单结构体步骤 2: 实现验证逻辑步骤 3: 在HTTP处理函数中使用验证 四、数据格式化什么是数…...
Java 中 ConcurrentHashMap 和 HashMap 能存 null 吗?深挖原理和使用场景
前言 当你使用 HashMap 或 ConcurrentHashMap 时,可能会冒出一个经典问题:它们能存储 null 键或 null 值吗? 初学者可能觉得无所谓,试一下不就知道了,但在真实项目中,这个问题可能导致严重的 bug。今天我们…...
【JavaWeb后端学习笔记】Spring Task实现定时任务处理
Spring Task是Spring框架提供的任务调度工具,可以按照约定的时间自动执行某个代码逻辑。 主要的应用场景有:纪念日提醒,处理订单未支付,还款提醒等。 1、corn表达式 使用Spring Task首先需要了解corn表达式,通过cor…...
【CSS in Depth 2 精译_087】14.4:CSS 中的浮动特效以及在文字环绕中的应用 + 14.5:本章小结
当前内容所在位置(可进入专栏查看其他译好的章节内容) 第四部分 视觉增强技术 ✔️【第 14 章 蒙版、形状与剪切】 ✔️ 14.1 滤镜 14.1.1 滤镜的类型14.1.2 背景滤镜 14.2 蒙版 14.2.1 带渐变效果的蒙版特效14.2.2 基于亮度来定义蒙版14.2.3 其他蒙版属…...
探索 Python编程 调试案例:计算小程序中修复偶数的bug
在 学习Python 编程的过程里,会遇到各种各样的bug。而修复bug调试代码就像是一场充满挑战的侦探游戏。每一个隐藏的 bug 都是谜题,等待开发者去揭开真相,让程序可以顺利运行。今天,让我们通过一个实际案例,深入探索 Py…...
探索 CI/CD 工具的力量
CI/CD 工具是什么? CI/CD 工具是开发者的“生产力加速器”。它通过自动化代码构建、测试、部署等流程,消除了繁琐的手动操作,确保开发和运维的无缝衔接。借助这些工具,开发者不仅能够更快地发布产品,还能更早发现问题…...
MySQL和Oracle的区别
MySQL和Oracle的区别 MySQL是轻量型数据库,并且免费,没有服务恢复数据。 Oracle是重量型数据库,收费,Oracle公司对Oracle数据库有任何服务。 1.对事务的提交 MySQL默认是自动提交,而Oracle默认不自动提交࿰…...
亚马逊云科技 re:Invent 2024重磅发布!Amazon Bedrock Data Automation 预览版震撼登场
AWS re:Invent 2024 已圆满落幕! 在本次大会中,隆重推出了一项全新功能: Amazon Bedrock Data Automation(预览版)震撼登场! New Amazon Bedrock capabilities enhance data processing and retrieval | …...
SQL语句练习
阅读《SQL必知必会》(第五版)然后结合往常表做的练习记录 这里使用的数据库时sqlite3,使用的工具时navicat 表资源链接https://wenku.baidu.com/view/349fb3639b6648d7c1c74652.html 表录入后如上图所示。后面如果有多张表之间的操作,在引入…...
保姆级教程Docker部署RabbitMQ镜像
目录 1、创建挂载目录 2、运行RabbitMQ容器 3、Compose运行RabbitMQ容器 4、开启界面插件 5、查看RabbitMQ运行状态 6、常见问题处理 1、创建挂载目录 # 创建宿主机rabbitMQ挂载目录 sudo mkdir -p /data/docker/rabbitmq/log# 修改log目录权限 sudo chmod 777 /data/do…...
P6打卡—Pytorch实现人脸识别
🍨 本文为🔗365天深度学习训练营中的学习记录博客🍖 原作者:K同学啊 1.检查GPU import torch import torch.nn as nn import matplotlib.pyplot as plt import torchvisiondevicetorch.device("cuda" if torch.cuda.is_…...
clickhouse-介绍、安装、数据类型、sql
1、介绍 ClickHouse是俄罗斯的Yandex于2016年开源的列式存储数据库(DBMS),使用C语言编写,主要用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报告。 OLAP(On-Line A…...
基于单片机的智能婴儿床监护系统多功能婴儿床摇篮系统
功能介绍 以STM32单片机为控制核心蓝牙传输控制可以进行哭闹检测、尿床检测、音乐播放、语音提醒、哭闹时可以进行摇床有不同的模式自动模式和睡眠模式 实物可做,其他功能也可以 电路图 PCB 源代码 u8 Temperature_High; //室内温度高阈值 u8 Temperature_…...
微服务??
1、微服务架构的定义是什么? 微服务架构是一种将应用程序拆分为多个小型、独立服务的架构风格,每个服务专注于完成特定功能,通过轻量级通信协议(如HTTP/REST、gRPC)进行协作。 2、微服务和单体架构有哪些主要区别&am…...
14-zookeeper环境搭建
0、环境 java:1.8zookeeper:3.5.6 1、下载 zookeeper下载点击这里。 2、安装 下载完成后解压,放到你想放的目录里。先看一下zookeeper的目录结构,如下图: 进入conf目录,复制zoo_sample.cfg࿰…...
计算机网络 八股青春版
什么是HTTP?HTTP和HTTPS的区别 HTTP HTTP是超文本运输协议,是一种无状态(每次请求都是独立的)的应用层协议。用于在客户端和服务器之间传输超文本数据(如HTML文件)。默认端口是80数据以明文形式传输&#…...
快速解决oracle 11g中exp无法导出空表的问题
在一些生产系统中,有些时候我们为了进行oracle数据库部分数据的备份和迁移,会使用exp进行数据的导出。但在实际导出的时候,我们发现导出的时候,发现很多空表未进行导出。今天我们给出一个快速解决该问题的办法。 一、问题复现 我…...
Unity 6 Preview(预览版)新增功能
原文链接:Unity - 手册:Unity 6 预览版中的新增功能 目录 原文链接:Unity - 手册:Unity 6 预览版中的新增功能 编辑器和工作流程 UI 工具包 实体 图形 URP HDRP (HDRP) 多人游戏 游戏对象的 Netc…...
Halcon单相机+机器人=眼在手上#标定心得
首先,这个标定板肯定是放在我们要作业的工作台上的 目的 **1,得到标定物(工作台)与机器人底座之间的pose转换关系。2,得到相机与机器人末端tool的的转换关系。 两个不确定的定量 1,标定板与机器人底座b…...
Django 模板分割及多语言支持案例【需求文档】-->【实现方案】
Django 模板分割及多语言支持案例 这个案例旨在提供一个清晰的示范,展示如何将复杂的页面分解为多个可复用的模板组件,使代码更加模块化和易于管理。希望这篇案例文章对你有所帮助。 概述 在 Django 项目开发中,使用模板分割和多语言支持能…...
【hackmyvm】Diophante 靶场
1. 基本信息^toc 这里写目录标题 1. 基本信息^toc2. 信息收集2.1. 端口扫描2.2. 目录扫描2.3. knock 3. WordPress利用3.1. wpscan扫描3.2. smtp上传后门 4. 提权4.1. 提权leonard用户4.2. LD劫持提权root 靶机链接 https://hackmyvm.eu/machines/machine.php?vmDiophante 作者…...
基于MATLAB的图像增强
🍑个人主页:Jupiter. 🚀 所属专栏:传知代码 欢迎大家点赞收藏评论😊 目录 一、背景及意义介绍背景图像采集过程中的局限性 意义 二、概述三、代码结构及说明(一)整体结构(二…...
P10425 [蓝桥杯 2024 省 B] R 格式
题目描述: 小蓝最近在研究一种浮点数的表示方法:R 格式。对于一个大于 00 的浮点数 d,可以用 R 格式的整数来表示。给定一个转换参数 n,将浮点数转换为 R 格式整数的做法是: 将浮点数乘以 2^n。四舍五入到最接近的整…...
《软件工程文档攻略:解锁软件开发的“秘籍”》
《软件工程文档攻略:解锁软件开发的“秘籍”》 一、引言(一)简述软件工程文档的重要地位 二、软件文档的分类及作用(一)按形式分类1. 工作表格2. 文档或文件 (二)按产生和使用范围分类1. 开发文…...
Python从0到100(七十八):神经网络--从0开始搭建全连接网络和CNN网络
前言: 零基础学Python:Python从0到100最新最全教程。 想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Pyth…...
sqlilabs靶场二十一关二十五关攻略
第二十一关 第一步 可以发现cookie是经过64位加密的 我们试试在这里注入 选择给他编码 发现可以成功注入 爆出表名 爆出字段 爆出数据 第二十二关 跟二十一关一模一样 闭合换成" 第二十三关 第二十三关重新回到get请求,会发现输入单引号报错,…...
时间管理系统|Java|SSM|JSP|
【技术栈】 1⃣️:架构: B/S、MVC 2⃣️:系统环境:Windowsh/Mac 3⃣️:开发环境:IDEA、JDK1.8、Maven、Mysql5.7 4⃣️:技术栈:Java、Mysql、SSM、Mybatis-Plus、JSP、jquery,html 5⃣️数据库可…...
长轮询DeferredResult原理
DeferredResult常用来实现客户端长轮询,可以将异步处理的结果在特定时间内(如果设置了超时时间)返回给客户端。 Slf4j RestController RequestMapping("/demo") public class DemoDeferredResult {GetMapping("/deferredResu…...
TouchGFX移植(5)增加触屏驱动
一)增加驱动代码gt9xxx.c和ctiic.c到工程中的BSP目录下: 二)更改触摸文件STM32TouchController.cpp 1)在STM32TouchController.cpp文件中增加: #include “gt9xxx.h” 2)增加gt9xxx_init(); void STM32TouchControlle…...
(九)腾讯cloudstudio(ubuntu)+akiaaa大神 Stable Diffusion整合包 AI绘画教程
一、说明 在网上转了一圈,发现确实akiaaa大神的整合包不错,看看这界面就比我前面的流弊多了,后面我们就要把这个界面一步一步干出来 二、环境准备 这里和前面的一样 (七)腾讯cloudstudioStable-Diffusion-webui AI绘…...
设计模式-访问者设计模式
介绍 访问者模式(Visitor),表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变个元素的类的前提下定义作用于这些元素的新操作。 问题:在一个机构里面有两种员工,1.Teacher 2.Engineer 员…...
深度学习实战车辆目标跟踪【bytetrack/deepsort】
本文采用YOLOv8作为核心算法框架,结合PyQt5构建用户界面,使用Python3进行开发。YOLOv8以其高效的实时检测能力,在多个目标检测任务中展现出卓越性能。本研究针对车辆目标数据集进行训练和优化,该数据集包含丰富的车辆目标图像样本…...
lammps中EDGE、INF、NULL等常量的含义
在lammps命令中,有几个比较常见的量:EDGE、INF、NULL,不少初学者不知道什么意思,本文详细介绍一下这几个量的含义及用法。 1. EDGE EDGE表示当前box的边界,常用到需要设置坐标的命令中,如region、fix wall/reflect。 EDGE仅表示当前box边界的坐标值,当box尺寸发生变化后…...
Mono里建立调试C#脚本运行环境
前面已经介绍了怎么样来执行一个嵌入式的脚本框架, 这个框架是mono编写的一个简单的例子。 如果不清楚,可以参考前文: https://blog.csdn.net/caimouse/article/details/144632391?spm=1001.2014.3001.5501 本文主要来介绍一下,我们的C#脚本是长得怎么样的,它大体如下…...
241221面经
1,JVM 的实现中堆、栈和方法区的区别是什么? 堆(Heap) 功能 堆是 JVM 内存中最大的一块,主要用于存储对象实例。无论是通过new关键字创建的对象,还是数组,都在堆上分配内存。它是被所有线程共享…...
【论文复刻】新型基础设施建设是否促进了绿色技术创新的“量质齐升”—来自国家智慧城市试点的证据(C刊《中国人口·资源与环境》
一、数据来源:住建部、国家知识产权局、中国城市统计年鉴,内含原始数据、处理代码和基准回归 二、数据范围: DID 为了延长政策效应估计的时间区间,将住建部公布的首批国家智慧城市作为处理组,非试点城市作为对照组。将…...
libreoffice表格python宏教程 一
一、安装python宏扩展 LibreOffice自带了一个宏编辑器,但是只能用basic语言,无法用Python。 所以,我们必须在单独的编辑器中编写Python代码。 需要安装apso扩展,此扩展可以创建删除管理python宏文件,同时还能设置偏好…...
C/C++语言基础--C++STL库之仿函数、函数对象、bind、function简介
本专栏目的 更新C/C的基础语法,包括C的一些新特性 前言 STL无疑是C史上一个重要的发明,未来我将更新STL有关的知识点,入门绝对够了(看目录就知道了👀)这是第二篇,讲仿函数C语言后面也会继续更新知识点,如…...
前端导出PDF的组件及方法
前端导出PDF的组件及方法 在Web应用程序中,导出PDF文件是一项常见的需求。无论是为了打印、分享还是存档,能够将网页内容转换为PDF格式都非常有用。幸运的是,前端开发者有多种方法和组件可以实现这一功能。在本文中,我们将详细介…...
大数据-256 离线数仓 - Atlas 数据仓库元数据管理 正式安装 启动服务访问 Hive血缘关系导入
点一下关注吧!!!非常感谢!!持续更新!!! Java篇开始了! 目前开始更新 MyBatis,一起深入浅出! 目前已经更新到了: Hadoop࿰…...