音视频相关协议和技术内容
视频编解码:
H264(AVC,MPEG-4 Part 10)
高压缩率,支持多种分辨率和帧率,用于在线流媒体、会议、数字电视
编码过程:
- 分块处理,将视频帧划分为宏块(16x16)
- 使用帧预测和帧间预测来减少冗余信息,帧前预测利用当前帧种的相邻像素,帧间预测则利用前后帧之间的相似性。
- 变换和量化,对预测残差进行离散余弦变换,然后进行量化以减少数据量
- 熵编码,使用熵编码(cabac或cavlc)进一步压缩数据
解码过程:
解码器上面执行的你操作,熵解码,反量化,逆变换,重建图像。
数据帧格式:
I帧:
独立帧,不依赖其他帧进行解码
包含完整的图像信息,用于随机访问和错误回复
p帧:
前向预测帧,基于前面的I帧,P帧进行预测编码
数据量小,依赖参考帧
B帧
双向预测帧,基于前面和后面的参考帧,进行预测编码
数据量最小,但是解码需要很多资源
数据组织方式:
数据帧时通过一系列的宏块和片组织起来的
- 宏块
- 基本编码单元,通常为16x16
- 每个宏块可以进一步划分为更小的块,用于运动估计和变换编码
- 片
- 多个连续的宏块组成的一个独立单元
- 独立解码,御用错误恢复和并行处理
- I,P,B片
- 帧结构
组成部分:
NAL单元:
H.264的网络抽象层,用于将视频数据封装成适合传输的单元
每个nal单元包含一个头部和有效载荷
头部包含单元类型和标志位
片头:
包含片的类型,参考帧信息,运动矢量范围等
宏块头:
包含宏块编码模式,运动矢量,量化参数等
宏块数据
宏块数据包含残差数据(经过变换和量化后的系数)
- 数据流格式:h.264的数据流通常以nal单元的形式组织,每个nal单元含一下部分
禁止位:防止nal单元被勿用
Nal单元类型:表示nal单元的类型(i帧,p帧,sei等)
冗余位:保留位,通常设置为固定值
有效载荷:包含实际的视频数据
- 参数集
使用参数集来存储编码的所需的全局信息
序列参数集:包含序列级别的信息,图像尺寸,帧率,色度格式等
图像参数集:包含图像级别的信息,量化参数,熵编码模式等
H265(HEVC)
编码过程:类似上一个,引入了一些改进
更大的分块结构:使用编码树单元CTU,可以是64x64像素,宏块更大,提高了压缩效率
更多的预测模式:提供了更多的帧内和帧间预测模式,提高压缩效率
高级熵编码技术:采用更高效的熵编码方法,如CABAC
解码过程:
同上
特点:
更高的压缩效率,相同图像质量,数据量比264减少百分之五十
支持超高清分辨率,4k 8k
应用于,超高清视频流媒体,蓝光光盘,高效存储等
- 编码单元 cu
- Ctu 基本编码单元,通常为64x64
- Cu是ctu的子单元,大小可变,用于编码决策,提供更高的灵活性
- 预测单元pu
- 用于帧内预测和帧间预测的单元,是cu的一部分或者整个cu
- Pu的大小和形状可以根据预测模式进行调整,提高编码效率
- 变换单元TU
- 用于变换和量化的单元,通常为4X4,8x8,16x16或者32x32
- Tu的大小可以根据残差数据的特性进行调整,以实现更高效的变换和量化
。。。。。。。。大多数和264相同。。。。。。。。。。。
- 滤波技术
- Sao 样本自适应偏移,用于补偿编码过程中误差,提高解码后的图片质量
- Alf 自适应环路滤波器,用于进一步减少编码噪声,提高图像质量
AV1
开源,免税版的视频编码格式,替代现有的编码标准---H264,H265
开源且免税,避免了使用专利编码格式所需要支付的费用
高压缩效率,相比vp9和hevc , av1 提供了更高的压缩效率
用于在线视频流媒体,webrtc 实时通信等
编码过程:
分块结构灵活,支持4x4到128x128不同大小的分块,提高了对不同内容类型的适应性
复杂的运动补偿与矢量场,提供更多运动补偿模式,减少时间冗余
高级变换和量化技术,多种变换核和自适应量化策略,提高压缩效率
解码过程:
解码器执行上述工作的逆过程,包括熵解码,反量化,逆变换和重建图像
AAC
高级音频编码格式,由mpeg组织开发,是mp3格式的继承者,被认为是最好的有损音频编码格式之一。
高音质,相同比特率下,aac比mp3音质更好
被许多设备和平台支持,ios android 流媒体服务。
用于音乐流媒体服务,数字广播,多媒体应用
编码过程:
- 时域到频域的转换,使用mdct将音频信号从时域转换到频域,以便处理不同频率成分
- 心理声学模型,根据人耳听觉特性,去除不易察觉的信息,从而减少数据量
- 比特率控制与量化,根据目标比特率,多频域系数进行量化处理,并用噪声声整形技术以优化音质。
- 熵编码与打包传输流生成
G711
窄带语言编码标准,用于电话系统中的语音传输,有两种变体,μ-law 和 a-law 用于不同地区的电话系统。
简单且低延迟,适合实时通信
固定比特率,每秒64kbps的数据速率,使其适用于传统电话网络中的语音传输
应用场景,传统pstn 电话系统,volp电话服务等
编码过程:
将模拟语音信号转换为数字信号,然后通过μ-law或a-law算法进行非线性压扩,减少动态范围并提高信噪比,每个采样点用8位表示,因此固定比特率为64kbps
解码过程:
将数字信号通过μ-law或者a-law算法还原为线性pcm格式,在经过数模转换输出模拟语音信号
视频传输协议和网络传输技术:
SIP
应用层协议,用于创建,修改和终止多媒体绘画
工作原理
- 注册,用户设备向sip服务器注册,以便其他用户可以找到它
- 会话建立,通过发送invite请求来发绘画,包含绘画描述信息(sdp)
- 会话管理,在绘画期间,可以发送update或reinvite请求来修改会话参数
LlVOIP
通过互联网传输语音数据,实现语音通信
工作原理:
- 信令协议,使用sip或h323等协议进行呼叫建立和管理
- 编解码器,使用G711 G729等编码器对语言信号进行编解码压缩
- 传输协议,通常使用rtp/udp进行实时语音数据传输
RTSP
网络应用协议,用于控制音视频流的传输,类似于http但专门向用于多媒体数据的传输控制
工作原理:
客户端发送describe请求获取媒体描述信息
客户发送setup请求建立,流媒体分传输通道
客户端发送play请求开始开始播放媒体流,pause请求暂停播放,treardown请求结束后播放并释放资源。
RTP
网络协议,用于互联网上传输实时音频和视频,提供了时间戳,序列号等机制,确保数据包按顺序到达并能同步播放;
工作原理:
Rtp头部包含时间戳和序列号,用于同步和冲排序接收到的数据包,通常与rtcp一起用,rtcp提供质量反馈和统计信息,帮助调整传输参数
UDP
无连接,不可靠传输层协议,提供简单快速的数据报文服务。
工作原理:
数据报文直接从源地址发送到目标地址,不需要建立链接,没有确定机制,丢包补充发
实时通信viop,流媒体服务,dns查询
TCP
面向连接的可靠传输层协议,提供可靠的数据流服务
工作原理:
三次握手建立链接,数据分段并编号,接收方确认收到的数据段,丢包重发,保证数据完整性。
四次挥手断开连接。
文件传输FTP,web浏览http/https
HTTP
无状态的应用层协议,用于分布式超文本信息系统
工作原理:
客户端向服务器发送http请求(get/post等)
服务器处理请求并返回响应(状态码+内容)
每次请求相应都是独立的
Web浏览器方位网站,restful api接口
相关文章:
音视频相关协议和技术内容
视频编解码: H264(AVC,MPEG-4 Part 10) 高压缩率,支持多种分辨率和帧率,用于在线流媒体、会议、数字电视 编码过程: 分块处理,将视频帧划分为宏块(16x16)使用帧预测和…...
在Vmware15(虚拟机免费) 中安装纯净win10详细过程
一、软件备选 1. VMware15.5.1 网盘下载地址 链接: https://pan.baidu.com/s/1y6GLJ2MG-1tomWblt3otsg?pwdim8e 提取码: im8e 2. windows镜像下载 去官网下载ios包 链接:https://www.microsoft.com/zh-cn/software-download/windows10 二、在VMware15.5.1下安装w…...
[Spark]深入解密Spark SQL源码:Catalyst框架如何优雅地解析你的SQL
本文内容组织形式 总结具体例子执行语句解析层优化层物理计划层执行层 猜你喜欢PS 总结 先写个总结,接下来会分别产出各个部分的源码解析,Spark SQL主要分为以下五个执行部分。 具体例子 接下来举个具体的例子来说明 执行语句 SELECT name, age FR…...
基于Flask的漏洞挖掘知识库系统设计与实现
基于Flask的漏洞挖掘知识库系统设计与实现 一、系统架构设计 1.1 整体架构 本系统采用经典的三层Web架构,通过Mermaid图展示的组件交互流程清晰呈现了以下核心模块: 前端展示层:基于Bootstrap5构建响应式界面业务逻辑层:Flask…...
ECharts散点图-散点图8,附视频讲解与代码下载
引言: ECharts散点图是一种常见的数据可视化图表类型,它通过在二维坐标系或其它坐标系中绘制散乱的点来展示数据之间的关系。本文将详细介绍如何使用ECharts库实现一个散点图,包括图表效果预览、视频讲解及代码下载,让你轻松掌握…...
四大wordpress模板站
WP汉主题 WP汉主题是一个专注于提供高质量WordPress中文主题的平台。它为中文用户提供了丰富的WordPress主题选择,包括但不限于企业网站模板、外贸建站模板等。WP汉主题致力于帮助用户轻松搭建专业的中文网站,无论是企业官网还是个人博客,都…...
DeepSeek在数据仓库的10大应用场景
一、智能数据集成与清洗 多源数据整合:DeepSeek能够从多种数据源中提取、转换和加载数据,实现跨系统数据的高效整合。 数据清洗与标准化:通过智能算法自动识别并纠正数据中的错误、不一致性和缺失值,提升数据质量。 二、数据仓…...
【Kubernetes基础--持久化存储原理】--查阅笔记5
目录 持久化存储机制PV 详解PV 关键配置参数PV 生命周期的各个阶段 PVC 详解PVC 关键配置参数PV 和 PVC 的生命周期 StorageClass 详解StorageClass 关键配置参数设置默认的 StorageClass 持久化存储机制 k8s 对于有状态的容器应用或对数据需要持久化的应用,不仅需…...
Langchain-构建向量数据库和检索器
向量数据库安装 pip install langchain-chroma 文档》向量存储》向量数据库。 和0416 提示词工程相同。 初始化 import osfrom langchain_chroma import Chroma from langchain_community.chat_message_histories import ChatMessageHistory from langchain_core.documents im…...
首席人工智能官(Chief Artificial Intelligence Officer,CAIO)的详细解析
以下是**首席人工智能官(Chief Artificial Intelligence Officer,CAIO)**的详细解析: 1. 职责与核心职能 制定AI战略 制定公司AI技术的长期战略,明确AI在业务中的应用场景和优先级,推动AI与核心业务的深度…...
2025华中杯数学建模B题完整分析论文(共42页)(含模型、数据、可运行代码)
2025华中杯大学生数学建模B题完整分析论文 目录 一、问题重述 二、问题分析 三、模型假设 四、 模型建立与求解 4.1问题1 4.1.1问题1解析 4.1.2问题1模型建立 4.1.3问题1样例代码(仅供参考) 4.1.4问题1求解结果(仅供参考&am…...
游戏引擎学习第231天
设定当天的主题 我们现在到了一个很少出现在直播中的阶段,但今天是那种需要解释计算机科学基础概念的日子。因此,今天我们将讨论这个内容,今天的重点是“大O表示法”(Order Notation),我将用黑板来解释这些…...
最快打包WPF 应用程序
在 Visual Studio 中右键项目选择“发布”,目标选“文件夹”,模式选“自包含”,生成含 .exe 的文件夹,压缩后可直接发给别人或解压运行,无需安装任何东西。 最简单直接的新手做法: 用 Visual Studio 的“…...
【模块化拆解与多视角信息6】自我评价:人设构建的黄金50字——从无效堆砌到精准狙击的认知升级
写在最前 作为一个中古程序猿,我有很多自己想做的事情,比如埋头苦干手搓一个低代码数据库设计平台(目前只针对写java的朋友),比如很喜欢帮身边的朋友看看简历,讲讲面试技巧,毕竟工作这么多年,也做到过高管,有很多面人经历,意见还算有用,大家基本都能拿到想要的offe…...
Linux网络编程实战:从字节序到UDP协议栈的深度解析与开发指南
网路通信的三大要素:协议,端口和IP 知识点1【字节序】 多字节在主机中的存放数据 把多字节看成一个整体存储的顺序。 为什么我们在文件中没有这个概念呢? 因为文件是字节流(流指针),流是以一个字节为操…...
【实战篇】导入dbc文件
目录 1 前言1.1 dbc文件简介1.2 dbc文件格式规范1.2.1 基础定义部分1.2.2 网络节点定义(BU_)1.2.3 报文定义(BO_)1.2.4 信号定义(SG_)1.2.5 扩展属性与注释1.2.6 数值表(VAL_)1.2.7 环境变量(EV_)1.2.8 DBC文件的典型结构示例2 步骤2.1 打开“输入文件”窗口2.2 点击…...
合成数据在自动驾驶中的实践:工作流、关键技术与评估体系全解析
目录 合成数据在自动驾驶中的实践:工作流、关键技术与评估体系全解析 一、为什么自动驾驶离不开合成数据? 二、自动驾驶合成数据的核心使用场景 三、典型合成数据工作流(架构图建议制作成PPT) 四、评估体系:合成数…...
赋能能源 | 智慧数据,构建更高效智能的储能管理系统
行业背景 随着新能源产业的快速发展,大规模储能系统在电力调峰、调频及可再生能源消纳等领域的重要性日益凸显。 储能电站作为核心基础设施,其能量管理系统(EMS)需要处理海量实时数据,包括电池状态、功率变化、环境监…...
【音视频】音视频FLV合成实战
FFmpeg合成流程 示例本程序会⽣成⼀个合成的⾳频和视频流,并将它们编码和封装输出到输出⽂件,输出格式是根据⽂件扩展名⾃动猜测的。 示例的流程图如下所示。 ffmpeg 的 Mux 主要分为 三步操作: avformat_write_header : 写⽂件…...
猪行为视频数据集
猪行为数据集包含 23 天(超过 6 周)的日间猪行为视频,这些视频由近乎架空的摄像机拍摄。视频已配准颜色和深度信息。数据以每秒 6 帧的速度捕获,并以 1800 帧(5 分钟)为一批次进行存储。大多数帧显示 8 头猪。 这里可以看到颜色和深度图像的示例: 喂食器位于图片底部中…...
【网络技术_域名解析DNS】一、DNS 基础剖析及其原理
一、DNS 在互联网架构中的基石地位 当我们在浏览器地址栏输入www.baidu.com按下回车键的瞬间,一场跨越全球的 “数字寻址游戏” 便悄然启动。DNS(Domain Name System)作为互联网的核心基础设施,承担着将人类易读的域名转换为机…...
Java学习小册:Java并发容器与原子类
在Java并发编程中,并发容器和原子类是管理共享数据的重要工具。它们提供了线程安全的数据结构和原子操作,确保在多线程环境下数据的一致性和操作的正确性。本文将深入探讨Java中的并发容器和原子类,包括它们的基本概念、使用方法、关键类及其…...
摄影跟拍预定|基于java+vue的摄影跟拍预定管理系统(源码+数据库+文档)
摄影跟拍预定管理系统 目录 基于SprinBootvue的摄影跟拍预定管理系统 一、前言 二、系统设计 三、系统功能设计 1系统功能模块 2管理员功能模块 3摄影师功能模块 4用户功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获…...
【HFP】深入解析蓝牙 HFP 协议中呼叫转移、呼叫建立及保持呼叫状态的机制
目录 一、核心指令概述 1.1 ATCMER:呼叫状态更新的 “总开关” 1.2 ATBIA:指示器的 “精准控制器” 1.3 指令对比 1.4 指令关系图示 二、CIEV 结果码:状态传递的 “信使” 2.1 工作机制 2.2 三类核心指示器 三、状态转移流程详解 3…...
从零开始学A2A三: A2A 能力发现与任务管理
A2A 能力发现与任务管理 学习目标 掌握智能体能力发现机制 理解 Agent Card 的结构和用途掌握能力注册和发现的流程学会管理智能体的生命周期 掌握 A2A 任务管理流程 学习任务创建和分发机制理解任务状态管理和监控掌握多智能体协作模式 理解与 MCP 的区别 对比两种架构的能…...
学习笔记十六——Rust Monad从头学
🧠 零基础也能懂的 Rust Monad:逐步拆解 三大定律通俗讲解 实战技巧 📣 第一部分:Monad 是什么? Monad 是一种“包值 链操作 保持结构”的代码模式,用来处理带上下文的值,并方便连续处理。 …...
Linux:显示 -bash-4.2$ 问题(CentOS 7)
文章目录 一、原因二、错误示例三、解决办法 一、原因 在 CentOS 7 系统中,如果你看到命令行提示符显示为 -bash-4.2$,一般是 Bash shell 正在运行,并且它没有找到用户的个人配置文件,或者这些文件有问题而未能成功加载。这个提示…...
linux共享内存通信
基础共享内存通信示例 以下示例展示生产者-消费者模型,使用共享内存传递数据: 生产者程序(producer.c) #include <sys/ipc.h> #include <sys/shm.h> #include <stdio.h> #include <string.h>#define S…...
视频监控EasyCVR视频汇聚平台接入海康监控摄像头如何配置http监听功能?
一、方案概述 本方案主要通过EasyCVR视频管理平台,实现报警信息的高效传输与实时监控。海康监控设备能通过HTTP协议将报警信息发送至指定的目的IP或域名,而EasyCVR平台则可以接收并处理这些报警信息,同时提供丰富的监控与管理功能࿰…...
代码随想录算法训练营第二十天
LeetCode题目: 39. 组合总和40. 组合总和 II131. 分割回文串2176. 统计数组中相等且可以被整除的数对(每日一题) 其他: 今日总结 往期打卡 39. 组合总和 跳转: 39. 组合总和 学习: 代码随想录公开讲解 问题: 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 targ…...
