当前位置: 首页 > news >正文

【入门音视频】音视频基础知识

🌈前言🌈

        这个系列在我学习过程中,对音视频知识归纳总结的笔记。因为音视频相关讲解非常稀少,所以我希望通过这个音视频系列,跟大家一起学习音视频,希望减少初学者在学习上的压力。同时希望也欢迎指出文章的不足。

        本期内容主要讲解音视频基础知识,包含了音视频是如何保存成文件,以及如何通过文件播放的,通过这个流程讲解音视频编解码,封装解封装相关的协议

📁 音视频录制和播放原理

        上图是音视频录制和播放整体的流程,通过这个流程,我们对音视频的格式和协议进行整体的了解。

📁 视频

        一个连续播放的视频文件就是有一串连续的,前后存在相关关系的图像构成的,通过图像中的内存和它们之间的相互关闭表达整个视频文件所包含的消息。

 📂 图像

        一般是指静态图像。图像是指一种在二维平面上通过排列像素(pix)来表达信息的数据组织格式。

1. 位深(度)

        色位深度可以简单理解为表示一个像素的二进制位数,决定了每个像素可以呈现的颜色数量。位深度越高,表示的颜色种类就越多。常用的位深度有 8bit 或 10bit两种。

        ● 8 bit:即用8bit / 1 Byte 表示一个像素值,取值范围是 [0,255]。

        ● 10 bit:用10个bit表示一个像素值,取值范围是[0,1023]。

        上面场景只是单个颜色分量,即灰度图像;如果是彩色图像,每个像素可能包含多个颜色分量(通道)。例如RGB格式的彩色图像,一个完整的图像被分割成蓝绿红三个基色的单色图。

        每个通道位深是8 bit,则RGB格式图像中每个像素需要24 bit (8 bit * 3)表示。

确定颜色位深后,根据图像的宽高尺寸确定图像数据体积。        

        例如1920px * 1080px的RGB图像,位深是8 bit,则数据体积 = 192 * 1080 * 3 约等于 6.22MB左右。

2. 颜色空间

        彩色图像在实际应用场景下发挥了广泛作用,如图像显示和处理等,针对不同的场景,对图像色彩的表达方式有不同的要求。针对不同场景有不同的颜色数据表达方式,即颜色空间。

        颜色空间是一种利用整数区间来表示颜色的模型,其维度可以分为一维,二维,三维等。三维空阿金应用最为广泛,常见的三维颜色空间有RGB格式,YUV格式。本文重点讲解YUV格式。

        YUV格式是一种用于表示图像或视频颜色的色彩空间,它将颜色分为三个分量:亮度(Y)和两个色度(U和V)。这种格式广泛应用于视频压缩和视频传输,因为它与人眼对亮度和色彩的感知特性更为契合。

        y:明度;u:蓝色色度与亮度的差;v:红色色度与亮度的差,图像的每个像素点由yuv三个值来确定。

3. 压缩算法

        无算压缩方法:压缩率比较低,压缩后体积较大,没有信息损失,可通过压缩信息完全恢复原始信息。

        有损压缩方法:压缩率较高,压缩后体积较小,存在信息缺失,压缩后只能近似逼近原始信息,无法完全还原原始信息。

 📂 YUV格式

        组成视频的基本单元图像称为帧,本质与普通静态图没有任何区别。视频中每秒内容所包含的视频帧的数量称为帧率,单位是fps(frame per seoncd)。在各帧图像质量相近的情况下,帧率越高的视频播放越流畅,但是体积,码率也会更高。

        在视频压缩编码中,图像颜色空间通常使用YUV颜色空间。

        YUV采样格式的有:4:4:4、4:2:2、4:2:0。

1. 4:4:4        

        每个亮度像素Y对应一个色度像素U和V,色度分量图的尺寸与亮度分量图的相同。

2. 4:2:2

        每两个亮度像素Y对应一个色度像素U和V,色度分量图的尺寸为亮度分量图的1/2。

3. 4:2:0

        每四个亮度像素Y对应一个色度像素U和V,色度分量图的尺寸为亮度分量图的1/4。

YUV排列格式

1. packet:打包格式,先存储一个yuv,在存储下一个yuv。

2. planar:平面格式,先存储y平面,再存储u平面,在存储v平面。

3. semi-planar:先存储y平面,在存储uv平面。

📂 H.264协议

        应用较为广范的视频编码格式。通过之前我们了解如何计算图像大小,视频就是有一连串的图像组成的,因此如果不对视频进行压缩,那么视频文件就会很大,因此需要对音视频进行编解码。

📂 IBP帧  

I帧(帧内编码图像帧):表示关键帧,不需要其他的画面而生成,解码靠自己就能重构完整的图像。

P帧(前向预测编码图像帧):表示跟前一个关键帧或P帧的差别,P帧是参考帧,利用与前一帧不同点压缩本帧数据,利用空间和时间上的相关性。

B帧(双向预测编码图像帧):本帧与前后帧(I帧、P帧)的差别,B帧压缩率更高,但解码耗费CPU。

GOP(图像序列):两个I帧之间一个图像序列,一个GOP中包含一个I帧。

📂 解码时间戳和显示时间戳

● DTS(解码时间戳):这个时间戳的意义在于告诉播放器该在什么时候解码这一帧的数据。

● PTS(显示时间戳):这个时间戳用来告诉播放器该在什么时候显示这一帧的数据。

音视频同步方式:

        Audio Master:同步视频到音频。

        Video Master:同步音频到视频。

        External Clock Master:同步音频和视频到外部时钟。

📂 视频主要概念补充

视频码率:kb/s,是指视频文件在单位时间内使用的数据流量,也叫码流率。码率越大,说明单位时间内取样率越大,数据流精度就越高。

视频帧率:fps,通常说一个视频的25帧,指的就是这个视频帧率,即1秒中会显示25帧。帧率越高,给人的视觉就越流畅。

视频分辨率:分辨率就是我们常说的640x480分辨率、1920x1080分辨率,分辨率影响视频图像的大小。

📁 音频

        在音频中,有两个概念比较重要,一个是采集到的原始音频数据PCM,和压缩后的音频数据AAC。

 📂 PCM格式

        为了将模拟信号(声音)数字化,需要进行 采样,量化,编码三个过程。

        根据Nyguist采样定律,要从采样中完全恢复原始信号波形,采样频率必须至少是信号中最高频率的两倍。 前面提到人耳能听到的频率范围是[20H~20kHz],所以采样频率一般为44.1Khz,这样就能保证声音到达20Khz也能被数字化,从而使得经过数字化处理之后,人耳听到的声音质量不会被降低。

        采样是在离散的时间点上进行的,采样值本身在计算机中也是离散的;采样值的精度取决于它的的多少位表示,即量化。

 📂 AAC协议

        高级音频编码,是一种声音数据的文件压缩格式,分为ADIF和ADTS两种文件格式。

        ADIF:高级数据交换格式,特征是可以确定找到的这个音频的开始,不需要进行音频数据流中间开始的解码,即解码必须在明确定义的开始处进行,常用在磁盘文件中。

        ADTS: 音频数据传输流,特征是有一个同步字的比特流,解码可以再流的任何位置开始。流媒体更常使用的。

 📂 音频主要概念补充

采样频率:每秒钟采样点的个数,常用的采样频率有:

        22000(22kHz): 无线广播。 44100(44.1kHz):CD音质。 48000(48kHz): 数字电视,DVD。 96000(96kHz): 蓝光,高清DVD。 192000(192kHz): 蓝光,高清DVD。

采样精度(采样位深):每个样本点的大小,常用大小为 8bit,24bit。

通道数:单声道,双声道,四声道,5.1声道。

比特率:每秒传输的bit数,单位为:bps(Bit Per Second) 间接衡量声音质量的一个标准。

码率: 压缩后的音频数据的比特率。码率越大,压缩效率越低,音质越好,压缩后数据越大。 码率 = 音频文件大小/时长。

:每次编码的采样单元数,比如MP3通常是1152个采样点作为一个编码单元,AAC通常是1024个采样点作为一个编码单元。

交错模式:数字音频信号存储的方式。数据以连续帧的方式存放,即首先记录帧1的左声道样本和右声道样本,再开始帧2的记录...

非交错模式:首先记录的是一个周期内所有帧的左声道样本,在记录所有右声道的样本。

📁 封装格式

        就是将已经编码压缩好的视频流、音频流及字幕按照一定的方案放到一个文件中,便于播放软件播放。

        H264+AAC封装为FLV或MP4是最为流行的模式。

📁 总结

        以上,就是本期内容,主要讲解了视频图像的YUV格式和H264编码,以及音频的PCM格式和AAC编码。

        如果感觉本期内容对你有帮助,欢迎点赞,关注,收藏Thanks♪(・ω・)ノ

相关文章:

【入门音视频】音视频基础知识

🌈前言🌈 这个系列在我学习过程中,对音视频知识归纳总结的笔记。因为音视频相关讲解非常稀少,所以我希望通过这个音视频系列,跟大家一起学习音视频,希望减少初学者在学习上的压力。同时希望也欢迎指出文章的…...

w~视觉~合集13

我自己的原文哦~ https://blog.51cto.com/whaosoft/13384038 #xxx w视觉合集13~17没了.... #ViTAR 作者提出了一种新颖的架构:任意分辨率的视觉 Transformer (ViTAR)。ViTAR中的自适应标记合并功能使模型能够自适应地处理可变分辨率图像…...

DeepSeek+Kimi 一键生成100种PPT

一 简介 PPT在工作中经常用到,无论是给老板汇报,还是同事、朋友之间的分享,或是去见投资人:) ,都离不开它,然而写PPT经常让人感觉不胜其烦,无论是逻辑的展开、还是页面的布局、字体、配图,都像个…...

【Qt之QQuickWidget】QML嵌入QWidget中

由于我项目开始使用Widgets,换公司后直接使用QML开发,没有了解过如何实现widget到qml过渡,恰逢面试时遇到一家公司希望从widget迁移到qml开发,询问相关实现,一时语塞,很尴尬,粗略研究并总结下。 对qwidget嵌…...

Apache Flink CDC (Change Data Capture) mysql Kafka

比如使用 Flink CDC , 监听mysql bin-log日志实现数据的实时同步, 发送到kafka springboot整合flink cdc监听数据库数据 阿里开源的神仙工具,完美实现数据同步!#程序员阿里开源的这个神器很好很强大。阿里开源的这个神器全面超越Canal,果然在…...

Week1_250217~250223_OI日志(待完善)

W1_250217~250223_OI日志 250217大致安排题目 250218大致安排题目 250219大致安排 250217 大致安排 上午讲了树上启发式合并,中午和下午补了上午的题,额外做了一道。 题目 U41492 树上数颜色 (老师自己出的,实在是太典中点了&…...

线性模型 - 学习总结

本文对前面博文中所学的机器学习的知识进行总结,以便整体上加深对机器学习的理解。 一、机器学习三要素:模型、学习准则、优化算法 机器学习是从有限的观测数据中学习(或“猜测”)出具有一般性的规律,并 可以将总结出来的规律推广应用到未观…...

IP----访问服务器流程

1.访问服务器流程 1.分层 1.更利于标准化 2.降低层次之间的关联性---每一层都只完成自身层次所执行的功能--每一层都在下层的基础上提供增值服务 1.应用层 抽象语言---编码---提供人机交互的接口 2.表示层 编码--二进制,压缩解压缩、格式转换 3.会话层 建立…...

Visual Studio 中 C/C++ 函数不安全警告(C4996)终极解决方案:分场景实战指南

问题描述 在 Visual Studio 中编写 C/C 代码时,使用 scanf、strcpy、fopen 等传统函数会触发以下警告: C4996: xxx: This function or variable may be unsafe. Consider using xxx_s instead. 根本原因: 这些函数缺乏缓冲区溢出检查&#…...

DeepSeek写俄罗斯方块手机小游戏

DeepSeek写俄罗斯方块手机小游戏 提问 根据提的要求,让DeepSeek整理的需求,进行提问,内容如下: 请生成一个包含以下功能的可运行移动端俄罗斯方块H5文件: 核心功能要求 原生JavaScript实现,适配手机屏幕 …...

小程序高度问题背景scss

不同的机型&#xff0c;他的比例啥的都会不一样&#xff0c;同样的rpx也会有不同的效果。所以这里选择了取消高度。 <view class"box-border" :style"{padding-top: ${navHeight}px,}"><!-- 已登录 --><view v-if"userStore.userInfo&…...

浅析 DeepSeek 开源的 FlashMLA 项目

浅析 DeepSeek 开源的 FlashMLA 项目 DeepSeek 开源周 Day 1&#xff08;2025 年 2 月 24 日&#xff09;放出的开源项目——FlashMLA&#xff0c;是一款针对 Hopper 架构 GPU 高效多层级注意力 (Multi-Level Attention, MLA) 解码内核&#xff0c;专门为处理变长序列问题而设…...

【Blender】二、建模篇--08,小狐狸角色建模

这堂课呢 我们来完成本套课程建模片的最后一个模型 小狐狸 这堂课呢 主要想让大家一起走一遍角色建模的一个基本流程 让你以后遇到类似的模型时候有一个基本的建模思路 那我们现在就开始吧 2 00:00:16,830 --> 00:00:24,390 我们还是在我们之前建模马拉松的那个文件里面继…...

【Gin-Web】Bluebell社区项目梳理6:限流策略-漏桶与令牌桶

本文目录 一、限流二、漏桶三、令牌桶算法四、Gin框架中实现令牌桶限流 一、限流 限流又称为流量控制&#xff0c;也就是流控&#xff0c;通常是指限制到达系统的并发请求数。 限流虽然会影响部分用户的使用体验&#xff0c;但是能一定程度上保证系统的稳定性&#xff0c;不至…...

MySQL 数据库基础

1. MySQL 数据库基础 在这一部分&#xff0c;我们将学习 MySQL 的基本概念和常见的数据库操作&#xff0c;帮助你掌握如何创建数据库、表&#xff0c;并进行数据的增、删、改操作。同时&#xff0c;我们还会探讨一些常见的错误示例及其原因&#xff0c;帮助你避免常见的陷阱。…...

如何查看java的字节码文件?javap?能用IDEA吗?

编译指令&#xff1a; javac YourProject.java 查看字节码文件的指令&#xff1a; javap -c -l YourProject.class 不添加-c指令就不会显示字节码文件&#xff1a; 不添加 -l 就不会显示源代码和字节码文件的对应关系&#xff1a; 添加-l之后多出来这些&#xff1a; IDEA不太…...

实战技巧:如何快速提高网站收录的权威性?

快速提高网站收录的权威性是一个系统性的工作&#xff0c;涉及内容质量、网站结构、外部链接、用户体验等多个方面。以下是一些实战技巧&#xff0c;可以帮助你快速提升网站收录的权威性&#xff1a; 一、提升内容质量 原创性&#xff1a; 确保网站内容具备高质量与原创性&a…...

详解传输层协议TCP/UDP

传输层 传输层是OSI模型的第四层&#xff0c;主要负责端到端的数据传输&#xff0c;确保数据可靠、有> 序地从源设备传送到目标设备。其主要功能包括&#xff1a; 端到端通信&#xff1a;在源和目标设备之间建立连接&#xff0c;确保数据准确传输。数据分段与重组&#xff1…...

案例|某开关站室外轮式巡检机器人解决方案

随着电网规模的扩大和复杂性的增加&#xff0c;传统的GIS开关设备巡视工作面临着巨大的挑战。人工巡视不仅劳动强度大、效率低&#xff0c;而且难以保证巡视的准确性和全面性。此外&#xff0c;GIS设备通常位于复杂的环境中&#xff0c;如高海拔、高湿度、强电磁干扰等&#xf…...

穿越虚拟与现实:解密Linux进程的地址空间

在 Linux 操作系统中&#xff0c;每个进程都有独立的虚拟地址空间。虚拟地址空间是操作系统为每个进程提供的抽象内存模型&#xff0c;它使得每个进程都觉得自己拥有独立的内存&#xff0c;而不需要关心物理内存的具体布局。本文将深入探讨 Linux 进程的虚拟地址空间及其管理机…...

什么是MySql的主从复制(主从同步)?

主页还有其他面试题总结&#xff0c;有需要的可以去看一下&#xff0c;喜欢的就留个三连再走吧~ 1.什么是MySql的主从复制原理&#xff1f; 主从复制的核心就是二进制binlog&#xff08;DDL&#xff08;数据定义语言&#xff09;语句和DML&#xff08;数据操纵语言&#xff09…...

C++面向对象编程技术研究

一、引言 面向对象编程&#xff08;OOP&#xff09;是一种程序设计方法&#xff0c;它将现实世界中的实体抽象为“对象”&#xff0c;并通过类和对象来实现程序的设计。OOP的核心思想包括封装、继承和多态&#xff0c;这些特性使得程序更加模块化、易于扩展和维护。C作为一种支…...

MySQL 连表查询:原理、语法与优化

目录 引言 什么是连表查询&#xff1f; 连表查询的类型 1. 内连接&#xff08;INNER JOIN&#xff09; 2. 左连接&#xff08;LEFT JOIN&#xff09; 3. 右连接&#xff08;RIGHT JOIN&#xff09; 4. 全连接&#xff08;FULL JOIN&#xff09; 5. 交叉连接&#xff08;…...

力扣2382. 删除操作后的最大子段和

力扣2382. 删除操作后的最大子段和 题目 题目解析及思路 题目要求找到每次删除一个元素的最大字段和 因为删除不好做&#xff0c;可以转删除为添加&#xff0c;用并查集维护当前子段和 两部分合并(两个并查集)&#xff0c;三部分求和(两个并查集和一个元素) 代码 class S…...

PMP--题库--一模--纯问题

文章目录 单选题 &#xff08;每题1分&#xff0c;共170道题&#xff09;1、 [单选] 根据项目的特点&#xff0c;项目经理建议选择一种敏捷方法&#xff0c;该方法限制团队成员在任何给定时间执行的任务数。此方法还允许团队提高工作过程中问题和瓶颈的可见性。项目经理建议采用…...

C++核心指导原则: 错误处理

C Core Guidelines 整理目录 哲学部分接口(Interface)部分函数部分类和类层次结构部分枚举部分资源管理部分性能部分错误处理 E: Error handling E.1: Develop an error-handling strategy early in a design 翻译: 在设计早期制定一个错误处理策略。原因: 为确保代码的健壮…...

豆包、扣子等产品如何与CSDN合作?

要实现CSDN开发者社区与豆包、扣子等产品的深度合作&#xff0c;构建创作者Agent生态体系&#xff0c;可通过以下结构化方案实现技术、生态与商业价值的闭环&#xff08;含具体实施路径与数据指标&#xff09;&#xff1a; 一、战略合作框架搭建 开放平台互通 建立三方API网关&…...

C#开发——ConcurrentDictionary集合

ConcurrentDictionary<TKey, TValue> 是 C# 中一个专为多线程场景设计的线程安全字典集合&#xff0c;位于 System.Collections.Concurrent 命名空间中。它允许多个线程同时对字典进行读写操作&#xff0c;而无需额外的同步措施。 一、集合特征 此集合有如下特征…...

CSS `transform` 属性详解:打造视觉效果与动画的利器

CSS transform 属性详解&#xff1a;打造视觉效果与动画的利器 引言一、transform 属性简介二、平移&#xff08;Translation&#xff09;三、旋转&#xff08;Rotation&#xff09;四、缩放&#xff08;Scale&#xff09;五、倾斜&#xff08;Skew&#xff09;六、组合变换&am…...

Python 进阶特性深度解析:从语法糖到内存管理的统一视角

生成式(推导式)的用法与内存效率分析 Python 的推导式不仅仅是语法糖,它们在内存管理和性能方面有着深刻的影响。理解推导式的工作原理,有助于我们写出更高效的代码。 推导式的内存模型分析 列表推导式在 CPython 解释器中的实现实际上比等价的 for 循环更为高效: # 列…...

eclipse配置Spring

1、从eclipse下载Spring工具 进入 help – install new software… &#xff0c;如下图&#xff1a; 点击 add &#xff0c;按以下方式输入&#xff1a; Name : Spring Location : http://dist.springsource.com/release/TOOLS/update/e4.10/ 之后点击 add &#xff0c;等待…...

属性绑定

双大括号不能在html属性中使用&#xff0c;想要响应式地绑定一个属性&#xff0c;应用v-bind指令 <script > export default{data(){return{dynamicId:"appid",dynamicClass:"appclass"}} } </script><template><div v-bind:id"…...

深入讲解微信小程序 <canvas> 标签的 type=“2d“属性

在微信小程序开发中&#xff0c;<canvas> 组件是一个非常强大的工具&#xff0c;允许开发者创建动态图形和动画。然而&#xff0c;正确设置 <canvas> 的 type 属性是确保其正常工作的关键之一。本文将深入探讨 type"2d" 属性的重要性、使用场景及其在实际…...

基于PSO-LSTM长短期记忆神经网络的多分类预测【MATLAB】

一、研究背景与意义 在时间序列分类、信号识别、故障诊断等领域&#xff0c;多分类预测任务对模型的时序特征捕捉能力提出了极高要求。传统LSTM网络虽能有效建模长程依赖关系&#xff0c;但其性能高度依赖超参数的选择&#xff0c;例如隐含层神经元数量、学习率、迭代次数等。…...

Linux----线程

一、基础概念对比 特性进程 (Process)线程 (Thread)资源分配资源分配的基本单位&#xff08;独立地址空间&#xff09;共享进程资源调度单位操作系统调度单位CPU调度的最小单位创建开销高&#xff08;需复制父进程资源&#xff09;低&#xff08;共享进程资源&#xff09;通信…...

自注意力机制和CNN的区别

CNN&#xff1a;一种只能在固定感受野范围内进行关注的自注意力机制。​CNN是自注意力的简化版本。自注意力&#xff1a;具有可学习感受野的CNN。自注意力是CNN的复杂形态&#xff0c;是更灵活的CNN&#xff0c;经过某些设计就可以变为CNN。 越灵活、越大的模型&#xff0c;需要…...

【qt链接mysql】

首先根据自己qtcreater 下载mysql安装包 将mysql安装目录下的如下目录中的xxx\MySQL\MySQL Server 5.7\lib\libmysql.dll 拷贝到QT目录C:\Qt\5.7\mingw53_32\bin 下&#xff08;当前这个也是我电脑上的Qt路径&#xff0c;请找到你Qt对应的bin路径&#xff09; 直接在文win11上…...

Parameter 与 Param 有什么区别

Parameter 与 Param Parameter 与 Param 意思相同&#xff0c;在大多数情况下可以互换使用&#xff0c;它们在用法和语境有一些细微的区别 1、Parameter Parameter 是一个完整的单词&#xff0c;是正式术语&#xff0c;广泛用于数学、统计学、计算机科学、工程等领域 在数学…...

【前端】【功能函数】treeMapEach,对每个节点进行自定义转换的实用函数

一、功能说明 这是一个递归遍历树形结构数据&#xff0c;并对每个节点进行自定义转换的实用函数。它会对原始树中的每个节点执行 conversion 函数&#xff0c;最终生成一个包含转换后结果的新树结构。 二、核心作用 树形结构遍历&#xff1a;深度优先递归遍历所有子节点数据…...

C#初级教程(5)——解锁 C# 变量的更多奥秘:从基础到进阶的深度指南

一、变量类型转换&#xff1a;隐式与显式的门道 &#xff08;一&#xff09;隐式转换&#xff1a;编译器的 “贴心小助手” 隐式转换是编译器自动进行的类型转换&#xff0c;无需开发者手动干预。这种转换通常发生在将取值范围小的数据类型赋值给取值范围大的数据类型时&#…...

初步学习java 动态代理

前言 在学习 动态代理知识之前&#xff0c;可以先了解 反射 反射的复习-CSDN博客 场景 我们知道&#xff0c;一些大明星开演出会&#xff0c;要收门票&#xff0c;准备场景啥的。但很显然 明星&#xff0c;他们主要还是 唱歌&#xff0c;跳舞&#xff0c;和粉丝互动。那么 其…...

QT 基础知识点

1.基础窗口类QMainWindow qDialog Qwidget 随项目一起创建的窗口基类有三个可选QMainWindow qDialog Qwidget 1.1 Qwidget 是所有窗口的基类&#xff0c;只要是他的子类&#xff0c;或子类的子类&#xff0c;都具有他的属性。 右键项目 Add New -> Qt qt设计师界面类&am…...

unity学习53:UI的子容器:面板panel

目录 1 UI的最底层容器&#xff1a;canvas 1.1 UI的最底层容器&#xff1a;canvas 1.2 UI的合理结构 2 UI的子容器&#xff1a;面板panel 2.1 创建panel 2.2 面板的本质&#xff1a; image &#xff0c;就是一个透明的图片&#xff0c;1个空容器 3 面板的属性 4 面板的…...

Qt如何将数据传入labview,Qt又如何从labview中读取数据?

Qt如何将数据传入labview,Qt又如何从labview中读取数据? Qt如何将数据传入labviewQt如何从labview中读取数据 Qt如何将数据传入labview Qt如何从labview中读取数据...

JWT使用教程

目录 JWT (JSON Web Token)1. JWT简介(1) 什么是JWT(2) JWT有什么用(3) JWT认证方式 2. JWT的组成部分3. 签名的目的4. JWT与Token的区别5 JWT的优势6 JJWT签发与验证token(1) 引入依赖(2) 创建 Token(3) 解析Token(4) 设置过期时间(5) 自定义claims 7. JWT自定义工具类 JWT (J…...

数据结构——静态顺序表,动态顺序表

线性表&#xff08;linear list&#xff09;是n个具有相同特性的数据元素的有限序列。 线性表是⼀种在实际中⼴泛使 ⽤的 数据结构&#xff0c;常⻅的线性表&#xff1a;顺序表、链表、栈、队列、字符串... 线性表在逻辑上是线性结构&#xff0c;也就说是连续的⼀条直线。但是在…...

前端Sass面试题及参考答案

目录 什么是 Sass? Sass 和 CSS 的主要区别是什么? Sass 中如何处理列表? Sass 中如何处理映射(map)? Sass 中如何使用函数? Sass 中如何使用内置函数? Sass 中如何设置默认值? Sass 中的 @function 和 @mixin 有什么区别? Sass 中如何实现模块化? Sass 中…...

ubuntu20.04音频aplay调试

1、使用指定声卡&#xff0c;aplay 播放命令 aplay -D plughw:1,0 test2.wav2、 录音 arecord -Dhw:1,0 -d 10 -f cd -r 44100 -c 2 -t wav test.wav3、各个参数含义 -D 指定声卡编号 plughw:0,0 //0,0代表card0,device0&#xff0c;可以通过arecord -l获取 -f 录音格式 S16_LE…...

比特信噪比与信噪比SNR的换算公式

在无线通信系统中&#xff0c;比特信噪比与信噪比&#xff08;SNR&#xff0c;通常指符号信噪比Es/N0&#xff09;的换算&#xff1a; 核心公式 E b N 0 SNR R ⋅ log ⁡ 2 M \boxed{ \frac{E_b}{N_0} \frac{\text{SNR}}{R \cdot \log_2 M} } N0​Eb​​R⋅log2​MSNR​​ 或…...

RTSP场景下RTP协议详解及音视频打包全流程

RTSP场景下RTP协议详解及音视频打包全流程 一、RTSP与RTP的关系 RTSP&#xff1a;负责媒体会话控制&#xff08;DESCRIBE、SETUP、PLAY、PAUSE&#xff09;&#xff0c;通过SDP协商传输参数&#xff08;端口、编码格式、封装模式&#xff09;。RTP&#xff1a;实际传输音视频数…...