音视频直播核心技术介绍

直播流程

在这里插入图片描述
采集: 是视频直播开始的第一个环节,用户可以通过不同的终端采集视频,比如 iOS、Android、Mac、Windows 等。
前处理:主要就是美颜美型技术,以及还有加水印、模糊、去噪、滤镜等图像处理技术等等。
编码: 就是音视频数据的压缩,便于传输,一般有软编码和硬编码,软编码有 x264、x265、openh264等,硬编码有 iOS 的 VideoToolBox、Android 的 mediacodec,Windows 的QSV 和NVIDIA等等。
推流: 就是数据传输从主播端到服务端的过程,推流需要不同的网络协议支持,如 RTMP 等。
转码: 为了让采集端的流适配各个平台端不同协议,一般都会在服务端进行转码处理,将视频文件转成不同格式,支持 RTMP、HLS 和 FLV 等不同的协议。
分发: 应对视频应用的高并发需求,采用 CDN(Content Delivery Network,即内容分发网络) 进行内容分发加速,实现高并发等能力。
拉流与解码: 拉流即使视频数据从服务端到观众端的过程,解码就是渲染播放,让观众看到主播的视频画面。

直播卡顿

一般造成直播卡顿的原因主要有设备、视频流、网络三个方向。

方向原因
设备设备硬件配置太差、播放器问题等
视频流时间戳问题、编码参数、编码码率等
网络推流端网络太差、播放端网络太差、服务端传输压力过大等

直播延迟

延迟主要指推流端到拉流端的时间差,在音视频生产消费过程中,在不同阶段都会产生延迟,如下表所示。

分类产生原因
设备端上延迟采集、前处理、编码、解码、渲染播放都可能产生延迟
设备端与服务端之间的延迟推流端到服务端的延迟,服务端到拉流端的延迟
服务端与服务端之间的延迟服务端的数据传输、数据排队、数据的处理等延迟

阿里云技术介绍一片直播延迟的源头,如下图:
在这里插入图片描述
声网技术介绍了直播延迟的不同程度所适应的应用场景,如下图:
在这里插入图片描述

视频分辨率

分辨率是用于度量图像内数据量多少的一个参数,通常表示成ppi。一般直观表现出视频的画面细腻程度。常见的分辨率如下表。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

首屏秒开

首屏耗时,指第一次点播播放后,肉眼看到画面所等待的时间。技术上指播放器解码第一帧渲染显示画面所花的耗时。通常所说的“秒开”,指点击播放后,一秒内即可以看到播放画面。首屏打开越快,说明用户体验越好。首屏耗时原因主要有DNS 解析、缓存获取首帧内容网络延迟播放器缓存策略等。

直播花屏与绿屏

花屏与绿屏由不同原因造成的,主要如下脑图罗列。
在这里插入图片描述

视频直播的痛点

观看视频直播最大的痛点主要包括:卡顿模糊延迟内容等。

流媒体

流媒体是指将一连串的媒体数据压缩后,经过网络分段发送数据,在网络上即时传输影音以供观赏的一种技术与过程,此技术使得数据包得以像流水一样发送,因此称为流媒体。

如果不使用此技术,就必须在使用前下载整个媒体文件。流媒体的本质上是原始画面,经过视频采集设备,然后通过编码器编码压缩,生成点播文件或者直播流,经过网络的传输,在各种终端进行解压解码,然后播放器进行画面渲染,最终展示在用户眼前。

流媒体可以分为点播和直播。

直播与点播

直播是有实时性的要求,直播的数据都是存在内存中,过时的数据会被丢掉。视频直播,一定是一个**“边生产,边传输,边消费”**的过程.

如果需要持久化的视频数据,就必须对直播流进行录制,转化为视频文件保存起来,这样就可以转化为点播的内容。
点播的内容源是静态的,直播的数据源是动态的。

实现点播需要解决视频转码流媒体下载两个问题;而实现直播本质需要解决视频数据编解码视频数据网络传输两个问题。

直播与RTC

RTC的一个具体应用是直播场景中的直播连麦(或PK),也就是低延时直播。普通直播,一般采用TCP协议(RTMP),使用CDN进行内容分发,会有几秒甚至十几秒的延时,主播和观众的互动只能通过文字短消息或送礼来进行。
而直播连麦,使用UDP协议(QUIC),内容实时传输,主播和观众可以进行音视频连麦互动,实时沟通,延时一般低至几百毫秒。
因此直播和 RTC 最大的区别主要体现再协议的使用以及音视频处理技术策略等。

项目RTMPRTP/RTCP
传输协议TCPUDP
延迟程度
使用场景普通直播RTC/连麦直播

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/234671.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络基础介绍

1.网线制作 1.1 网线制作需要的工具 网线 网线钳 水晶头 测试仪 ​编辑 1.2 网线的标准 1.3 网线的做法 2.集线器&交换机&路由器的介绍 3.OSI七层模型 4.路由器的设置 4.1 常见的路由器设置地址 4.2 常见的路由器账号密码 4.3 登录路由器 设置访客网…

管理类联考——数学——真题篇——按知识分类——代数——数列

【等差数列 ⟹ \Longrightarrow ⟹ 通项公式: a n a 1 ( n − 1 ) d a m ( n − m ) d n d a 1 − d A n B a_n a_1(n-1)d a_m(n-m)dnda_1-dAnB an​a1​(n−1)dam​(n−m)dnda1​−dAnB ⟹ \Longrightarrow ⟹ A d , B a 1 − d Ad&#x…

从零开始构建高效的网校平台:在线教育系统源码的开发指南

随着科技的不断发展,在线教育在现代社会中变得愈发重要。本文将为您提供一份详尽的指南,从零开始构建高效的网校平台,覆盖在线教育系统源码的关键开发步骤。 第一步:明确需求和目标 在开始之前,明确您的网校平台的需…

软件测试工程师的职业发展方向

一、软件测试工程师大致有4个发展方向: 1 资深软件测试工程师 一般情况,软件测试工程师可分为测试工程师、高级测试工程师和资深测试工程师三个等级。 达到这个水平比较困难,这需要了解很多知识,例如C语言,JAVA语言&#xff0c…

《opencv实用探索·二十一》人脸识别

Haar级联分类器 在OpenCV中主要使用了两种特征(即两种方法)进行人脸检测,Haar特征和LBP特征。用的最多的是Haar特征人脸检测。 Haar级联分类器是一种用于目标检测的机器学习方法,它是一种基于机器学习的特征选择方法,…

【JAVA】仓库、货架、货物

当前只有添加、查询,没有删除和修改部分: import java.util.LinkedList;class Goods {String id;String name;int price;public Goods(String id, String name, int price) {this.id id;this.name name;this.price price;}Overridepublic String toS…

【matlab】绘制竖状双组渐变柱状图

【matlab】绘制竖状双组渐变柱状图

QT 前端技术 QSS(1)

伪装态是指当鼠标悬停在按钮上的时候,按钮的字体背景颜色等会发生改变。 这句话意思在this里面找到QTextEdit控件#后面表示指定的控件名称就是从所有QTextEdit中选出叫做lbsize的QTextEdit并对其进行后面的操作。 如果将QTextEdit#lbsize删除的话就是将this中全部的…

ansibe的脚本---playbook剧本

playbook剧本组成部分: 1、task 任务: 主要是包含要在目标主机上的操作,使用模块定义操作。每个任务都是模块的调用。 2、variables变量:存储和传递数据。变量可自定义,可以在playbook中定义为全局变量,可…

亚信安慧AntDB数据库——助力5G计费核心替换,全面自主可控

数字经济时代,5G以更快、更丰富、更智能的连接方式服务于各行各业。AntDB数据库,源于亚信科技,自2008年起成功落地全国24个省份的中国移动、中国电信、中国联通和中国广电等运营商项目,为数字化服务和信息化基础建设提供支持。 在…

Linux Mint 21.3 代号为“Virginia”开启下载

Linux Mint 团队今天放出了 Linux Mint 21.3 Beta ISO 镜像,正式版计划在今年圣诞节发布。 支持 在实验性支持 Wayland 之外,Cinnamon 6.0 版 Linux Mint 21.3 Beta 镜像还带来了其它改进,Nemo 文件夹管理器右键菜单支持下载相关操作。 Cin…

【python】进阶--->并发编程之协程

一、协程 是另外一种实现多任务的方式,只不过比线程占用更小的执行单元(需要的资源).因为它自带cpu上下文,就可以在合适的时机,从一个协程切换到另一个协程. (任务数量多于cpu时)系统在很短的时间内,将cpu轮流分配给不同的任务执行,造成了多任务同时运行的错觉.而每个任务在运行…

1.CentOS7网络配置

CentOS7网络配置 查看网络配置信息 ip addr 或者 ifconfig 修改网卡配置信息 vim /etc/sysconfig/network-scripts/ifcfg-ens192 设备类型:TYPEEthernet地址分配模式:BOOTPROTOstatic网卡名称:NAMEens192是否启动:ONBOOTye…

暴雨AI服务器:推动大模型算力底座发展

语言大模型作为人工智能领域的重要分支,其强大的自然语言处理能力和模仿人类的对话决策能力,正逐渐成为人们的关注焦点。近日,据央视新闻报道,工业和信息化部赛迪研究院数据显示,今年我国语言大模型市场规模实现较快提…

最新鸿蒙HarmonyOS 使用Progress、Toggle开发一个接单界面

Progress 进度条组件,用于显示内容加载或操作处理等进度。 接口 Progress(options: {value: number, total?: number, type?: ProgressType}) Toggle组件提供勾选框样式、状态按钮样式及开关样式。 接口 Toggle(options: { type: ToggleType, isOn?: boolean …

oracle vm virtualBox虚拟机网卡设置

一、桥接模式 1、桥接模式自动分配IP 通过dns自动分配Ip方式、重启服务器可能会出现IP变动的情况。 选中虚拟机--设置--网络,链接方式选择“桥接网卡”,界面名称选择“需要桥接的网卡名称” 不清楚的可以在宿主机网络设置查看(需要桥接哪…

【每日一题】【12.20】2828.判别首字母缩略词

🔥博客主页: A_SHOWY🎥系列专栏:力扣刷题总结录 数据结构 云计算 数字图像处理 力扣每日一题_ 1.题目链接 2828. 判别首字母缩略词https://leetcode.cn/problems/check-if-a-string-is-an-acronym-of-words/ 2.题目描述 今天…

MySQL——表的增删查改

目录 一.Create(创建) 1.单行数据 全列插入 2.多行数据 指定列插入 3.插入否则更新 4. 替换 二.Retrieve(读取) 1. select 列 查询 2.where 条件 3.结果排序 4.筛选分页结果 三.Update (修改)…

Python实现多元线性回归模型信用卡客户价值预测项目源码+数据+项目设计报告

多元线性回归——信用卡客户价值预测 一、背景 这里以信用卡客户的客户价值为例来解释客户价值预测的具体含义: 客户价值预测就是指预测客户在未来一段时间内能带来多少利润,其利润可能来自信用卡的年费、取现手续费、分期手续费、境外交易手续费等。分…

三、万语始于HelloWorld,万物基于点灯之瑞萨RX23E-A 3线RTD PT100测温

一、概述/目的 二、RX23E-APT100三线制 2.1 资料来源 2.2 接线图 2.3 工程配置AFE24ΔΣADCPGA 2.4 代码 2.5 IIR数字滤波器 三、方案对比 三、万语始于HelloWorld,万物基于点灯之瑞萨RX23E-A 3线RTD PT100测温 一、概述/目的 介绍工业过程控制…