音视频协议
1. 多媒体信息
1.1 多媒体信息的两个主要特点:
- 信息量很大
- 标准语音:64Kbits(8KHz采样,8位编码)
- 高质量音频:3Mbps(100KHz采样,12位编码)
- 在传输多媒体数据时,对时延和时延抖动均有较高要求
1.2 处理时延抖动:

缓存的方式在一定程度上消除了时延抖动,但是增加了时延,因为推迟播放了。
1.3 需要注意的问题
- 在传送时延敏的实时数据时,不仅传输时延不能大,时延抖动也必须限制
- 传送实时数据时,少量分组的丢失是可以容忍的
- 丢失容忍是实时数据的另一个重要特点。
- 发送多媒体数据时应当加一个序号,以按序还原和播放
- 增加一个时间戳,告诉接收端分组的产生时间。比如音频要和字母顺序对应上。
1.4 必须改造现有的互联网
- 大量使用高速路由器和光缆
- 完全改造现有协议,为端到端带宽预留,把无连接协议的互联网转变为面向连接的网络
- 少量改造现有协议,使得能适配这种数据传输
2. 流式存储音频、视频
存储音频/视频不是实时产生的,而是已经录制好的,通常存储在硬盘中。
第一种方式:
第二种方式:元文件

第三种方式:媒体服务器


2.1 下载时使用何种协议
采用UDP的缺点:
- 网络情况多变,接收端很难始终按照规定的速率播放
- 很多单位的防火墙往往阻拦外部UDP分组的进入
- 使用UDP传送流媒体时,如果用户希望控制媒体的播放,暂停、快进等,还需要单独的RTP和RTSP协议
采用TCP的场景
现在,对流式存储音频/视频的播放,如YouTube都是采用TCP来传送。

采用UDP的场景:
如果是实时观看实况转播,应当首先考虑采用UDP来传送。
2.2 实时流式协议RTSP
实时流式协议RTSP(Real-Time Streaming Protocol)
- 应用层的多媒体播放控制协议,不传送数据
- 以客户服务器方式工作
- 使用户能对从互联网下载的实时数据进行控制,如暂停,快进,跳跃
- 又称为互联网录像机遥控协议
- RTSP 是有状态的协议,它记录客户机所处的状态(初始状态,播放状态)
- RTSP控制分组可在TCP上传送,也可在UDP上传送

3. 交互式音视频
3.1 实时传输协议RTP


3.1.1 RTP的层次

3.1.2 RTP分组的首部

- P:填充位flag
- X:表示RTP首部后还有扩展首部
- 参与源数:给出后面参与源标识符的数目
- M:表示这个RTP分组是否有特殊意义。比如在传送视频流时用来表示每一帧的开始
- 有效载荷类型:指出后面的RTP数据属于何种格式的应用。收到RTP分组的应用层就根据此字段指出的类型进行相应的处理。
- 序号:对每一个发送的RTP分组,其序号加1,在一次RTP会话开始时的初始序号是随机选择的。序号使接收端能发现丢失的分组。
- 时间戳:反应当前RTP分组中数据的第一个字节的采样时刻。在一次会话开始时时间戳是随机选择的,后续按偏移即可。接收端使用时间戳可以准确知道应当在什么时间还原哪个数据块,从而消除时延的抖动,还可以用来使得视频应用中声音和图像同步。
- SSRC:用来标识RTP流的来源,类似于streamID.有多个RTP流复用同一个UDP用户数据报时,使用SSRC可使得接收端的UDP能够将收到的RTP流送到各自的终点。
- CSRC:一个32位数,最多15个。用来标志来源于不同地点的RTP流。在多播环境中,可以使中间的一个站把发往同一个地点的多个RTP流混合成一个流,在目的站再根据CSRC的数值把不同的RTP流分开。
3.2 实时传输控制协议RTCP
RTCP(RTP control Protocol)是与RTP配合使用的协议,与RTP协议不可分割。
主要功能:
- 服务质量的监视和反馈
- 媒体间的同步
- 播组中成员的标识
3.2.1 RTCP分组


3.3 H.323

3.3.1 H.323的体系架构

3.3.2 H.323指明的四种构件


3.4 会话发起协议SIP

3.4.1 SIP系统的构件

3.4.2 SIP过程

3.4.2.1 SIP登记器


3.5 会话描述协议SDP

相关文章:
音视频协议
1. 多媒体信息 1.1 多媒体信息的两个主要特点: 信息量很大 标准语音:64Kbits(8KHz采样,8位编码)高质量音频:3Mbps(100KHz采样,12位编码) 在传输多媒体数据时,对时延和时延抖动均有较高要求 1.2 处理时延…...
第一财经对话东土科技 | 探索工业科技新边界
当前以ChatGPT、Sora等为代表的生成式人工智能快速发展,越来越多面向垂直场景的行业大模型涌现出来,并成为推动制造业智能化改造与数字化转型、加快推进新型工业化,进而培育发展新质生产力的新引擎。 在垂类场景的应用落地,是AI发…...
Maven 与企业项目的集成
1. Maven 在企业级项目中的作用 Maven 是 Java 生态中最流行的构建和依赖管理工具,广泛用于企业级项目的构建、依赖管理、测试、打包、部署和 CI/CD 集成。对于大型企业项目,Maven 提供了一整套标准化的构建流程,并支持 多模块(M…...
激活函数篇 01 —— 激活函数在神经网络的作用
欢迎来到我的主页:【Echo-Nie】 本篇文章收录于专栏【机器学习】 以下是激活函数系列的相关的所有内容: 激活函数篇 01 —— 一文搞懂激活函数在神经网络中的作用 逻辑回归:Sigmoid函数在分类问题中的应用 1 激活函数的作用 1.1 引入非线性 激活函数…...
22.2、Apache安全分析与增强
目录 Apache Web安全分析与增强 - Apache Web概述Apache Web安全分析与增强 - Apache Web安全威胁Apache Web安全机制Apache Web安全增强 Apache Web安全分析与增强 - Apache Web概述 阿帕奇是一个用于搭建WEB服务器的应用程序,它是开源的,它的配置文件…...
Day.23
leetcode 413.等差数列划分 问题:如果一个数列 至少有三个元素 ,并且任意两个相邻元素之差相同,则称该数列为等差数列。给你一个整数数组 nums ,返回数组 nums 中所有为等差数组的 子数组 个数。 子数组 是数组中的一个连续序列…...
CentOS虚机在线扩容系统盘数据盘
最近在制作Openstack下的镜像,用户需要CentOS6以及CentOS7的虚机镜像,遇到了些关于系统盘以及数据盘在线扩容的问题,故此整理一下。 传统我们想对磁盘在线热扩容,必然会想到LVM逻辑卷。如果没有LVM逻辑卷的情况下,…...
动手写ORM框架 - GeeORM第一天 database/sql 基础
文章目录 1 初识 SQLite2 database/sql 标准库3 实现一个简单的 log 库4 核心结构 Session本文是7天用Go从零实现ORM框架GeeORM的第一篇。介绍了 SQLite 的基础操作(连接数据库,创建表、增删记录等)。使用 Go 语言标准库 database/sql 连接并操作 SQLite 数据库,并简单封装…...
绘制中国平安股价的交互式 K 线图
在本文中,探索如何使用 Python 的强大库进行股市数据分析与可视化。我们将以中国平安(股票代码:sh601318)为例,展示如何获取其股票数据,并绘制一张交互式 K 线图。 K 线图是股市分析中不可或缺的工具,它能够直观地显示股票的波动情况,包括开盘价、收盘价、最高价和最低…...
[渗透测试]热门搜索引擎推荐— — shodan篇
[渗透测试]热门搜索引擎推荐— — shodan篇 免责声明:本文仅用于分享渗透测试工具,大家使用时,一定需要遵守相关法律法规。 除了shodan,还有很多其他热门的,比如:fofa、奇安信的鹰图、钟馗之眼等࿰…...
JavaScript 在 VSCode 中的优势与应用
JavaScript 在 VSCode 中的优势与应用 引言 随着前端技术的发展,JavaScript 已经成为了网页开发中最流行的编程语言之一。Visual Studio Code(简称 VSCode)作为一款轻量级、可扩展的代码编辑器,因其强大的功能和良好的用户体验,深受广大开发者的喜爱。本文将探讨 JavaSc…...
深度学习之StyleGAN算法解析
StyleGAN 算法解析及详细介绍 1. StyleGAN 算法由来 StyleGAN(Style-Based Generative Adversarial Network)是 NVIDIA 于 2018 年 提出的 高质量图像生成算法,由 Tero Karras 等人在论文 《A Style-Based Generator Architecture for Generative Adversarial Networks》 …...
数据结构之排序
排序 参考链接: https://zq99299.github.io/dsalg-tutorial/dsalg-java-hsp/07/09.html#%E7%AE%80%E5%8D%95%E4%BB%8B%E7%BB%8D 基数排序 计数排序 https://www.hello-algo.com/chapter_sorting/counting_sort/...
Vue.js 与第三方插件的集成
Vue.js 与第三方插件的集成 今天我们来聊聊如何在 Vue 项目中集成第三方插件。随着项目功能不断增多,我们常常需要引入各种第三方库和插件,比如国际化、图表、日期处理等,来提升开发效率和用户体验。下面就跟大家分享一下集成第三方插件的常…...
基于Docker搭建ES集群,并设置冷热数据节点
1.背景 存在三台服务器分别是 192.168.2.91(master节点、data-content节点、data-hot节点)、192.168.2.92(data-cold节点、ingest节点)、192.168.2.93(master节点、data-content节点、data-hot节点) 冷热数据分离搭建教程 2.搭建91节点 热数据节点 (1࿰…...
MyBatis常见知识点
#{} 和 ${} 的区别是什么? 答: ${}是 Properties 文件中的变量占位符,它可以用于标签属性值和 sql 内部,属于原样文本替换,可以替换任意内容,比如${driver}会被原样替换为com.mysql.jdbc. Driver。 一个…...
Redis --- 使用GEO实现经纬度距离计算
什么是GEO? Spring Boot 项目中可以通过 Spring Data Redis 来使用 Redis GEO 功能,主要通过 RedisTemplate 和 GeoOperations 接口来操作地理位置数据。 Service public class GeoService {Autowiredprivate RedisTemplate<String, Object> red…...
【0403】Postgres内核 检查(procArray )给定 db 是否有其他 backend process 正在运行
文章目录 1. 给定 db 是否有其他 backend 正在运行1.1 获取 allPgXact[] 索引1.1.1 MyProc 中 databaseId 初始化实现1.2 allProcs[] 中各 databaseId 判断1. 给定 db 是否有其他 backend 正在运行 CREATE DATABASE 语句创建用户指定 数据库名(database-name)时候, 会通过 …...
[数据结构] Set的使用与注意事项
目录 Set的说明 常见方法说明 注意事项 TreeSet使用案例 Set的说明 Set与Map主要的不同有两点: Set是继承自Collection的接口类,Set中只存储了Key. 常见方法说明 方法解释boolean add(E e)添加元素,但重复元素不会被添加成功void clear()清空集合boolean contains(Object…...
amis组件crud使用踩坑
crud注意 过滤条件参数同步地址栏 默认 CRUD 会将过滤条件参数同步至浏览器地址栏中,比如搜索条件、当前页数,这也做的目的是刷新页面的时候还能进入之前的分页。 但也会导致地址栏中的参数数据合并到顶层的数据链中,例如:自动…...
GinCdn内容分发系统V1.0.9更新内容
GinCdn内容分发系统GinCdn是一款基于Go语言Gin框架自研的轻量高效内容分发系统,专为中小型企业/个人搭建CDN打造,采用主控边缘节点分布式架构,实现智能调度、高效缓存、精准监控的一体化解决方案。无需复杂命令行,小白也能轻松上手…...
3个技巧让Blender对齐效率提升10倍:QuickSnap插件全攻略
3个技巧让Blender对齐效率提升10倍:QuickSnap插件全攻略 【免费下载链接】quicksnap Blender addon to quickly snap objects/vertices/points to object origins/vertices/points 项目地址: https://gitcode.com/gh_mirrors/qu/quicksnap 在三维建模的日常工…...
Origin绘图进阶:如何在现有图形上叠加散点图与等高线(附MATLAB对比)
Origin数据可视化进阶:多层图表叠加与等高线绘制实战 科研图表的美观性与信息密度往往决定了研究成果的呈现效果。作为一款专业的数据分析与可视化工具,Origin在复杂图表叠加方面展现出独特优势,尤其适合需要同时展示散点分布与等高线趋势的科…...
海淀AI,集体开弓:少年极客、中年创客与ICU归来者
田晏林 发自 凹非寺量子位 | 公众号 QbitAI春分之后的北京海淀,暖意至,万物生。人工智能产业的发展更是如火如荼。过去五天里,位于“宇宙中心”五道口的AI原点社区,30多场派对狂欢不停。这是在第三届中关村论坛“人工智能主题日”…...
字符串拆分合并
贪心算法,最长限制。 import reclass TextFilter:def __init__(self):# 字符映射规则self.char_map = {# 省略号 → 停顿…: ,, ...: ,,: ,,# 破折号 → 停顿——: ,, —: ,,# 书名号 → 直接删除《: , 》: , 〈: , 〉: ,# 其他特殊符号 → 删除*: , /: , #: ,}# 需要保留的…...
HunyuanVideo-Foley创意音效作品展:突破传统声音设计的边界
HunyuanVideo-Foley创意音效作品展:突破传统声音设计的边界 1. 当AI遇见声音艺术 声音设计领域正在经历一场革命。传统Foley音效制作需要大量物理道具和录音设备,而AI技术的引入让声音创作突破了物理限制。HunyuanVideo-Foley作为新一代AI音效生成工具…...
电视盒子视频播放难题如何破解?TVBoxOSC带来流畅观影体验
电视盒子视频播放难题如何破解?TVBoxOSC带来流畅观影体验 【免费下载链接】TVBoxOSC TVBoxOSC - 一个基于第三方项目的代码库,用于电视盒子的控制和管理。 项目地址: https://gitcode.com/GitHub_Trending/tv/TVBoxOSC 客厅里的电视盒子本应是家庭…...
别再买错千元投影! 哈趣Q1Pro藏看越级体验
当下的智能投影市场正经历着深度的“去伪存真”变革,行业洗牌加速的同时,也让消费者的选购变得愈发谨慎。洛图科技数据显示,2025年国内智能投影市场整体销量下滑,其中低端投影成为调整重灾区,0-499元价位段销量同比大跌…...
Mysql 02:集合函数(聚合函数)查询全解——COUNT/SUM/AVG/MAX/MIN 实战指南
在 MySQL 中,集合函数(也叫聚合函数) 是对一组数据进行统计计算的核心工具,常用于数据汇总、报表生成、分组统计等场景。本文将围绕图片中的 5 大核心集合函数,从语法、用法、代码示例三个维度,带你彻底掌握…...
MatterGen:深度学习驱动的无机材料设计新范式
MatterGen:深度学习驱动的无机材料设计新范式 【免费下载链接】mattergen Official implementation of MatterGen -- a generative model for inorganic materials design across the periodic table that can be fine-tuned to steer the generation towards a wid…...
