音视频通信
文章目录
- 一、音视频通信流程
- 二、流媒体协议
- 1、RTSP
- 2、RTMP
- 3、HLS
- 4、WebRTC
一、音视频通信流程
音视频通信完整流程有如下几个环节:采集、编码、前后处理、传输、解码、缓冲、渲染等。

每一个细分环节,还有更细分的技术模块。比如,前后处理环节有美颜、滤镜、回声消除、噪声抑制等,采集有麦克风阵列等,编解码有H.263,H.264、H.265等。
二、流媒体协议
1、RTSP
RTSP(Real-Time Streaming Protocol),实时流式协议。
- RTSP一般不用作直播场景,RTSP一般用作摄像头、监控等硬件设备的实时视频流观看与推送上。
- 现在的浏览器都不支持RTSP的播放。
2、RTMP
RTMP(Real Time Messaging Protocol),实时消息传输协议。是一个古老的协议。RMTP最初由Macromedia开发,后被Adobe收购,至今仍被使用。由于RTMP播放视频需要依赖Flash插件。而Flash插件多年来一直受安全问题困扰,正在被迅速淘汰。因此,目前RTMP主要用于提取stream。也就是当设置解编码器将视频发送到托管平台时,视频将使用RTMP协议发送到 CDN,随后使用另一种协议(通常是HLS)传递给播放器。
- RTMP协议是既可以推流、也可以拉流的协议。一般只用作直播源推流、推流到直播CDN等场景。
- RTMP地址是
rtmp://开头的,且推流地址与播放地址是一样的。 - RTMP协议的延迟是比较低的,大概在
1-3秒左右。 - RTMP协议需要特定的流媒体服务软件,如SRS、加入了RTMP插件的Nginx等。
3、HLS
HLS(HTTP Live Streaming)。由 Apple 开发,旨在能够从 iPhone 中删除 flash,如今已成为使用最广泛的协议。桌面浏览器、智能电视、Android、iOS 均支持 HLS。HTML5 视频播放器也原生的支持HLS,但不支持 HDS 和 RTMP。这样就可以触达更多的用户。HLS 支持码率自适应,并且支持最新的 H.265 解编码器,同样大小的文件,H.265 编码的视频质量是 H.264 的二倍。
- HLS协议一般只用作拉流观看。
- 它工作原理很简单,就是通过HTTP协议下载静态文件。HLS协议的文件由两部分组成,一是多个只有几秒长度的
.ts碎片视频文件,另一个是记录这些视频文件地址的.m3u8索引文件,且这些静态文件都是直接写入磁盘的。 - 由于HLS协议实际上是通过HTTP协议请求文件的,且HLS相关文件是直接写入磁盘的,所以并不需要特殊的流媒体服务软件,使用Nginx等HTTP服务就可以了。
- HLS协议可以用于点播和直播观看,其适配多种播放场景,一般加入插件就可以播放了,如网页加入HLS的js插件就可以播放了,苹果设备是原生支持HLS协议的。
- HLS协议的直播流也可以适配很多播放场景,但是由于需要生成静态文件,直播延迟很大,大概在
5-30秒左右,使用直播CDN的话,由于边缘节点同步等问题,直播延迟甚至可能会达到1分钟左右。
4、WebRTC
WebRTC(Web Real-Time Communications), Web实时通信。
- WebRTC是基于UDP的,建立通信后,会不断以流式发送数据,所以延迟会比RTMP还要低。
- WebRTC协议支持推流和拉流,地址一般是以
webrtc://开头的,且推流和拉流地址一般也是一样的。 - WebRTC虽然是点对点的协议,但是应用在直播场景的话,是需要搭建WebRTC服务器作为流媒体服务的。
相关文章:
音视频通信
文章目录 一、音视频通信流程二、流媒体协议1、RTSP2、RTMP3、HLS4、WebRTC 一、音视频通信流程 音视频通信完整流程有如下几个环节:采集、编码、前后处理、传输、解码、缓冲、渲染等。 每一个细分环节,还有更细分的技术模块。比如,前后处…...
docker 搭建gitlab 恢复和备份
最近一直在折腾gitlab 代码管理系统 采用docker搭建 镜像网址 https://hub.docker.com/ 技术交流 http://idea.coderyj.com/ 1.因为我要恢复的版本是12.0.9的所有我就下载了docker-ce的12.0.9的镜像 1.下载镜像 docker pull gitlab/gitlab-ce:12.0.9-ce.02.安装 docker run …...
尚硅谷2023版Promise教程从入门到实战(讲师:任安萍)
一、前言:为什么会出现Promise? Promise的重要性我认为没有必要多讲,概括起来说就是五个字:必!须!得!掌!握!。 而且还要掌握透彻,在实际的使用中,有非常多…...
【SpringBoot】分组校验和自定义校验
分组检验 参数校验时,我们希望不同的方法参数校验规则不同,这时就需要分组校验。 public class Category {NotNull(groups Update.class)private Integer id;//主键IDNotEmptyprivate String categoryName;//分类名称// NotEmpty(groups {Add.class,…...
19、BLIP-2
简介 github 通过利用预训练的视觉模型和语言模型来提升多模态效果和降低训练成本,预训练的视觉模型能够提供高质量的视觉表征,预训练的语言模型则提供了强大的语言生成能力。 实现过程 为了弥合模态差距,提出了一个分两个阶段预训练的 Qu…...
【微服务核心】MyBatis Plus
文章目录 1. 简介2. 入门使用3. 核心功能3.1 CRUD 接口3.1.1 Mapper CRUD 接口3.1.2 Service CRUD 接口 3.2 条件构造器3.3 分页插件3.4 Mybatis-Plus 注解 4. 拓展4.1 逻辑删除4.2 MybatisX快速开发插件 5. 插件5.1 [分页插件](#page)5.2 乐观锁插件 1. 简介 MyBatis Plus&am…...
什么是Alibaba Cloud Linux?完全兼容CentOS,详细介绍
Alibaba Cloud Linux是基于龙蜥社区OpenAnolis龙蜥操作系统Anolis OS的阿里云发行版,针对阿里云服务器ECS做了大量深度优化,Alibaba Cloud Linux由阿里云官方免费提供长期支持和维护LTS,Alibaba Cloud Linux完全兼容CentOS/RHEL生态和操作方式…...
Spark---RDD算子(单值类型Value)
文章目录 1.RDD算子介绍2.转换算子2.1 Value类型2.1.1 map2.1.2 mapPartitions2.1.3 mapPartitionsWithIndex2.1.4 flatMap2.1.5 glom2.1.6 groupBy2.1.7 filter2.1.8 sample2.1.9 distinct2.1.10 coalesce2.1.11 repartition2.1.12 sortBy 1.RDD算子介绍 RDD算子是用于对RDD进…...
数据库中的MVCC--多版本并发控制
一、前言 1、定义:MVCC(Multi-Version Concurrency Control),多版本并发控制,主要为了提高数据库 的并发性能。是MySQL的InnoDB存储引擎实现隔离级别的一种具体方式。用于实现提交读和可重 复读这两种隔离级别。 2…...
wps将姓名处理格式为:姓**
1.打开wps,在要处理数据右侧一个单元格 输入公式:LEFT(A1,1)&"**",然后回车 2.按住ctrl和处理好的数据的右下角小方框,往下拖动即可生成格式为:姓** 格式的数据 3.复制生成的数据,右键选择 “…...
2023年我的编程之旅:技术演进与自我成长的纪录
2023年我的编程之旅:技术演进与自我成长的纪录 转眼间,2023年已经悄然走到了尾声。这一年,对我来说既是挑战也是机遇的一年。我的编程之旅如同坐上了一辆高速前进的列车,从新技术的学习探索到项目实战的沉浸经历,再到…...
好用免费的WAF---如何安装雷池社区版
什么是雷池 雷池(SafeLine)是长亭科技耗时近 10 年倾情打造的 WAF,核心检测能力由智能语义分析算法驱动。 Slogan: 不让黑客越雷池半步。 什么是 WAF WAF 是 Web Application Firewall 的缩写,也被称为 Web 应用防火墙。 …...
看似 bug 又非 bug 的一个 bug
最近的一个项目中,对于 CSS 的一些属性一些选择符可以大胆使用,然后很意外得撞上一个 iOS 中 Safari 的一个解析问题。 <Component style{{height: "calc(100vh - 46px)"}}>一个组件</Component> 这样的一段代码很简单ÿ…...
mysql常见问题
批量导入SQL 数据库结构 数据时,如果数据是批量插入的话会报错:2006 - MySQL server has gone away。 解决办法:找到你的 mysql 目录下的 my.ini 配置文件,加入以下代码 max_allowed_packet500M wait_timeout288000 interactiv…...
QT上位机开发(串口界面设计)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 如果上位机要和嵌入式设备进行打交道的话,那么串口可能就是我们遇到的第一个硬件设备。串口的物理接线很简单,基本上就是收…...
k8s之pod
1、pod:k8s中最小的资源管理组件,最小化运行容器化应用的资源管理对象 (1)pod是一个抽象的概念,可以理解为一个或者多个容器化应用的集合 (2)一个pod中运行一个容器是最常用的方式 ÿ…...
第二百四十三回 再分享一个Json工具
文章目录 1. 概念介绍2. 分析与比较2.1 分析问题2.2 比较差异 3. 使用方法4. 内容总结 我们在上一章回中介绍了"分享三个使用TextField的细节"相关的内容,本章回中将再 分享一个Json插件.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我…...
electron自定义菜单
创建menu.js const { app, Menu } require("electron"); const createMenu () > {const menu [{label: "菜单",submenu: [{label: "新增",click: () > {},}, ],},{label: "关于",submenu: [{label: "新增",click:…...
变量和函数提升(js的问题)
• js解释执行 • 变量和函数提升 变量声明提前,函数声明提前 • 变量声明提前:值停留在本地 • 函数声明提前:整个函数体提前 如果是var赋值声明的函数,变量提前,函数体停留在本地 1、变量提…...
Excel 插件:ASAP Utilities Crack
ASAP Utilities是一款功能强大的 Excel 插件,填补了 Excel 的空白。在过去的 20 年里,我们的加载项已经发展成为世界上最受欢迎的 Microsoft Excel 加载项之一。 ASAP Utilities 中的功能数量(300 多个)可能看起来有点令人眼花缭乱…...
AI超清画质增强镜像使用技巧:避免移动端适配的3个坑
AI超清画质增强镜像使用技巧:避免移动端适配的3个坑 1. 理解镜像的核心能力与限制 在移动端使用AI超清画质增强镜像前,必须清楚了解它能做什么、不能做什么。这个基于OpenCV EDSR模型的镜像,本质上是一个专注图像重建的轻量级服务。 1.1 核…...
无需复杂配置!TensorFlow-v2.9镜像带你快速体验GPU加速训练
无需复杂配置!TensorFlow-v2.9镜像带你快速体验GPU加速训练 1. TensorFlow-v2.9镜像简介 TensorFlow是由Google Brain团队开发的开源机器学习框架,广泛应用于深度学习研究和生产环境。TensorFlow-v2.9镜像基于TensorFlow 2.9版本构建,提供了…...
探秘AI应用架构师的企业数据价值挖掘宝藏
探秘AI应用架构师的企业数据价值挖掘宝藏 一、引言 (Introduction) 钩子 (The Hook) 在当今数字化浪潮席卷的时代,企业犹如置身数据的汪洋大海之中。据统计,全球每天产生的数据量高达数十亿TB。想象一下,企业每天收集的海量客户信息、业务交易…...
3大维度重构投资决策:用TradingAgents-CN打造智能交易系统
3大维度重构投资决策:用TradingAgents-CN打造智能交易系统 【免费下载链接】TradingAgents-CN 基于多智能体LLM的中文金融交易框架 - TradingAgents中文增强版 项目地址: https://gitcode.com/GitHub_Trending/tr/TradingAgents-CN 在数字化投资时代…...
Apifox 实战:从实体类到请求参数的自动化转换技巧
1. 为什么需要实体类到请求参数的自动化转换 每次对接新接口时最头疼的事情是什么?对我来说就是手动编写那一大堆请求参数。上周接手一个用户管理模块,光是用户信息更新接口就有23个字段,如果每个字段都要手动填写参数名、类型、说明…...
WarcraftHelper魔兽争霸插件:5分钟解决老游戏兼容性问题,让经典重获新生
WarcraftHelper魔兽争霸插件:5分钟解决老游戏兼容性问题,让经典重获新生 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为…...
如何安全解密微信聊天记录:WechatDecrypt本地解密工具全攻略
如何安全解密微信聊天记录:WechatDecrypt本地解密工具全攻略 【免费下载链接】WechatDecrypt 微信消息解密工具 项目地址: https://gitcode.com/gh_mirrors/we/WechatDecrypt 你是否曾因更换手机而丢失珍贵的聊天记录?是否在工作中需要提取重要的…...
YOLO-Master 的MoE方案分解
之前,进行论文精度。今天看下具体代码 文章目录1. OptimizedMOEImproved加载模块过程2. 路由模块 EfficientSpatialRouter3. 专家 SimpleExpert实例条件自适应MoE 剪枝 (MoEPruner)聚类加权 NMS (CW-NMS)1. OptimizedMOEImproved 同构专家:通常使用相同…...
3个步骤解锁QQ音乐加密文件:QMCDecode让音乐重获自由
3个步骤解锁QQ音乐加密文件:QMCDecode让音乐重获自由 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目录,默认转…...
开箱即用版Sambert语音合成:多情感AI配音部署与使用
开箱即用版Sambert语音合成:多情感AI配音部署与使用 1. 引言:多情感语音合成的价值与挑战 在智能客服、有声读物、虚拟主播等应用场景中,富有情感表现力的语音合成技术正变得越来越重要。传统语音合成系统往往只能生成单调机械的语音&#…...
