自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(285)
  • 资源 (1)
  • 收藏
  • 关注

原创 音视频质量评判标准

4.0-5.0为“优”,评值标准是听得非常清楚,延时小,交流顺畅;3.5-4.0为“良”,音质稍差,听得清,延时小,有点杂音;3.0-3.5为“中”,音质较可,能听清,有一定时延,可以交流;通过图中表格可以看到,如果端到端延迟在200ms以内,说明整个通话是优质的,通话效果就像大家在同一个房间里聊天一样;300ms以内,大多数人很满意,400ms以内,有小部分人可以感觉到延迟,但互动基本不受影响;从以上可以看到,在保证传输的实时性时,由于带宽是一定的,可能会牺牲一定的服务质量。

2024-07-08 14:51:40 285

原创 centos安装x264

【代码】centos安装x264。

2024-07-05 10:47:59 191

原创 WebSequenceDiagrams绘制时序图的工具

使用google账号登陆。

2024-06-07 14:54:14 150

转载 艾瑞咨询-2022年中国实时音视频行业研究报告

https://pdf.dfcfw.com/pdf/H3_AP202208251577625435_1.pdf

2024-06-07 14:34:30 25

原创 ffmpeg常用命令

f dshow -i audio=“Microphone (Realtek High Definition Audio)”: 指定音频输入设备,可以吧Microphone (Realtek High Definition Audio)换为其他音频设备的名称。-f avfoundation -i “:0”: 指定音频输入为默认设备,可以改为其他音频设备的index。代表在屏幕左上角添加水印 720_4M_250 红色字体。代表关键帧之间间隔是250帧。

2024-05-29 15:04:34 510

原创 Centos安装Python3、更新pip3源

【代码】Centos安装Python3、更新pip3源。

2024-05-28 17:12:47 252

原创 CNAME记录

当一个DNS解析服务器在查询各类记录时遇到一则CNAME记录时,它会立即重启查询,查询所映射到域名的对应记录。一条DNAME记录会将某个域名的整个解析子树映射到另一域名,而CNAME只映射设定的域名,不映射子域名。如同CNAME一样,在DNS查询过程中,会查找所映射到的新域名的地址。为某个域名设置DNAME记录和为该域名的所有子域名设置CNAME记录的效果是一样的。此类伪记录由DNS服务器维护,类似于CNAME记录,但在(某些)客户端解析时等同于A记录。,而后者则有一个指向IP地址的A记录。

2024-05-14 18:49:04 857

原创 jitter和rtt

抖动(Jitter)是指数据包传输时间的变化量,它衡量的是网络延迟的不稳定性。在理想的网络条件下,所有的数据包都会以相同的时间间隔到达目的地。然而,在现实的网络中,由于路由器处理时间的变化、网络拥塞、不同的数据路径等因素,数据包到达的时间间隔可能会有所不同,这种时间间隔的变化就是抖动。

2024-04-24 16:17:30 614

原创 ERROR: npm v10.2.5 is known not to run on Node.js v12.22.12. This version of npm supports the follo

注意,在centos上nodejs不要升级至18版本以上,16版本的应该就够了,不然会报以下错误。,执行了系统提示的npm升级命令(万恶之源!1、安装nodejs的版本管理工具nvm。结果就是npm命令都执行不了了。3、升级nodejs。

2023-12-27 15:48:27 5006

原创 centos更换yum源

【代码】centos更换yum源。

2023-11-21 15:10:22 1233

原创 流媒体中relay和forword的区别

在流媒体中,"目标客户端"指的是接收和播放流媒体的最终用户设备或应用程序。这可以是一个电脑上的流媒体播放器、移动设备上的流媒体应用、智能电视在流媒体中,"目标客户端"指的是接收和播放流媒体的最终用户设备或应用程序。例如,当你在电脑上观看流媒体视频时,你的电脑就是目标客户端。Relay(中继):在中继传输中,流媒体服务器充当中介,将媒体流从源服务器接收并重新发送到目标客户端。在流媒体中,"relay"(中继)和 "forward"(转发)是两种常见的传输方式,用于将流媒体从一个源传递到目标接收器。

2023-11-09 18:48:14 886

原创 为什么gop越大延迟越高

由于预测帧(P帧和B帧)可以利用关键帧(I帧)的信息进行编码,较大的GOP可以更好地利用帧间的冗余性,从而减小视频文件的大小。同时,在播放端,需要等待足够多的帧才能开始播放视频,这也会增加播放的延迟(B帧需要参考它后面的P帧,不过直播中一般不开启B帧)。虽然较大的GOP可以提高视频的压缩效率,但在直播等实时应用中,需要权衡延迟和视频质量之间的关系,选择适当的GOP大小。cdn边缘节点或者流媒体服务器的cache最少要缓存一个gop,以实现端上的秒开效果,如果gop设置的太大,那么下行播放的延迟也会越大。

2023-11-06 17:40:18 992

原创 #EXT-X-DISCONTINUITY

标签的具体行为和处理方式可能因播放器实现和媒体流的特定情况而有所不同。因此,对于特定的 HLS 播放器和媒体流,建议查阅相关文档或规范以获取更详细的信息。标签作为一个独立的行出现,用于指示媒体片段之间的不连续性。播放器在遇到该标签时,会在播放过程中处理不连续性,例如重新初始化媒体解码器或清空缓冲区。标签用于标识媒体片段之间的不连续性。当媒体流中发生某种变化,例如分辨率、编码格式、音频通道配置或其他关键参数的更改时,可以使用。当切片的预设时长和gop的时长不匹配时,最终的切片也会出现这样的问题。

2023-11-01 14:47:40 964

转载 JavaScript和Node.js之间的区别是什么?

JavaScript的第一个版本在1995年推出,它是由Netscape的Brendan Eich开发的(当时称为LiveScript)。正如前面所讨论的,JavaScript是一种高级编程语言,具有通常编程语言所具有的所有功能。JavaScript是一种面向对象的编程语言,既可以在客户端使用,也可以在服务器端使用,开发人员不仅用它来创建网页,还可以用于游戏开发和移动应用开发。

2023-10-27 10:13:03 228

原创 npm start启动的是什么

具体来说,当在项目目录下执行 npm start 命令时,npm 将会在该项目的根目录下查找 package.json 文件,并查找其中的 "scripts" 对象中是否包含了名为 "start" 的属性。开发者可以在 package.json 文件中定义自己的脚本命令,例如 "dev"、"test" 等等,以实现不同的功能。npm start 命令是在一个 Node.js 项目中执行的一个自定义命令,用于启动该项目。在大多数情况下,"start" 属性的值是一个用于启动应用程序的命令。

2023-10-26 10:45:40 2023

原创 ffprobe -show_packets和-show_frames之间的区别

我们只查看视频的packets结果如下:可以看到,视频流的pts和dts并不同步,说明有B帧,dts递增,pts因为有B帧的原因所以非递增。所以,当使用show_packets分析视频流时,其实分析的是帧 frame,这里无论I帧,P帧还是B帧都还没有被解码。

2023-07-31 15:50:16 454

转载 linux下生成https证书

linux下生成https证书。

2023-07-25 14:32:59 4033

转载 bash和sh的区别

Shell 中文意思贝壳,寓意类似内核的壳。Shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 脚本(shell script)是一种为 shell 编写的脚本程序。常说的shell通常都是指 shell 脚本,但shell和shell script是两个不同的概念。

2023-07-03 21:32:41 391

原创 g++: internal compiler error: Killed (program cc1plus)

编译时一直报错 "g++: internal compiler error: Killed (program cc1plus)"原因,服务器交换空间不足,即swap,可用top命令查看。

2023-06-15 15:09:21 974

转载 docker将容器打包成镜像,并在另一个服务器上运行

我们项目中,在本地服务器中部署了docker开启了一个服务,现在测试环境服务器也需要这个服务,因为懒得重新配置,于是将本地服务器中的容器进行打包,保存为tar文件,传输到测试服务器中,使用load加载镜像,然后运行。

2023-05-31 19:48:28 1130

原创 centos升级gcc

升级前可先把旧的gcc卸载(其实不卸载也行)

2023-05-24 16:06:25 157

原创 centos安装cgdb

的cgdb,不然会报错“cgdb requires gdb 7.12 or later”。其他:编译时指定c99编译器。

2023-05-09 15:25:08 839 1

原创 bzip2 : Depends: libbz2-1.0 (= 1.0.6-9.2~deb10u2) but 1.0.8-4 is to be installed

具体来说,bzip2软件包需要依赖于特定版本的libbz2-1.0软件包,而当前系统安装的libbz2-1.0软件包版本与bzip2软件包需要的版本不匹配。解决办法:降级软件包,如果更新后仍然无法解决问题,可以尝试降级libbz2-1.0软件包的版本,使其与bzip2软件包需要的版本匹配。该命令会安装指定版本的libbz2-1.0软件包,并替换当前安装的版本。

2023-05-06 17:06:29 1473

转载 视频编码格式发展史

一个视频标准的普及其实是商业利益博弈的结果。要看能否成为标准或者普及有时候要看对手是怎么样的。

2023-04-07 10:14:42 6935

原创 mac下利用iterm2快速登陆docker(容器)

mac下利用iterm2快速登陆docker

2022-12-27 16:58:06 550

原创 HTTP 长连接和 TCP 长连接有什么区别

HTTP 长连接和 TCP 长连接有什么区别

2022-12-04 20:54:57 1067

转载 NAT,NAPT,STUN详解

NAT,NAPT,STUN详解

2022-12-03 21:17:53 1181

原创 电脑的的load是什么意思?

服务器的load是什么意思?

2022-11-06 20:51:31 1795

原创 http请求头中的host是什么意思

Host 是 HTTP 1.1 协议中新增的一个请求头,主要用来实现虚拟主机技术。

2022-10-14 19:52:33 6443

原创 什么是VIP(Virtual IP Address)

VIP的实现原理

2022-10-14 15:06:47 4479

原创 docker启动报错 bind: An attempt was made to access a socket in a way forbidden by its access permissions

docker启动报错bind: An attempt was made to access a socket in a way forbidden by its access permissions的解决方法。

2022-09-30 10:04:06 1596 3

原创 什么是线段树

线段树的概念线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。对于线段树中的每一个非叶子节点[a,b],它的左儿子表示的区间为[a,(a+b)/2],右儿子表示的区间为[(a+b)/2+1,b]。因此线段树是平衡二叉树,最后的子节点数目为N,即整个线段区间的长度。线段树的应用线段树 segmentTree 是一个二叉树,每个结点保存数组 nums 在区间 [left, right] 的最...

2022-04-04 16:59:13 1699

原创 什么是树状数组

首先我们搞明白树状数组是用来干嘛的,现在有一个这样的问题:有一个数组a,下标从0到n-1,现在给你w次修改,q次查询,修改的话是修改数组中某一个元素的值;查询的话是查询数组中任意一个区间 [left,right] 的和。这个问题很常见首先分析下朴素做法的时间复杂度,修改是O (1) 的时间复杂度,而查询的话是O(n)的复杂度,总体时间复杂度为 O(qn); 可能你会想到前缀和来优化这个查询,我们也来分析下,查询的话是O(1)的复杂度,而修改的时候修改一个点,那么在之...

2022-04-04 16:58:41 859

原创 年龄表

垂髫是三四岁至八九岁的儿童。总角是八九岁至十三四岁的少年。豆蔻是十三四岁的女孩子。束发是男子十五岁。弱冠是男子二十岁。而立是三十岁。不惑是四十岁。知命是五十岁。花甲是六十岁。古稀是七十岁。耄耋是八九十岁。期颐是一百岁。...

2022-03-25 19:11:40 334

原创 七、最短路径——弗洛伊德(Floyd)算法

为了能讲明白弗洛伊德(Floyd)算法的精妙所在,我们先来看最简单的案例。下图是一个最简单的3个顶点连通网图。我们先定义两个二维数组D[3][3]和P[3][3],D代表顶点到顶点的最短路径权值和的矩阵。P代表对应顶点的最小路径的前驱矩阵。在未分析任何顶点之前,我们将D命名为,其实它就是初始的图的邻接矩阵。将P命名为,初始化为图中所示的矩阵。 首先我们来分析,所有的顶点经过v0后到达另一顶点的最短路径。因为只有...

2022-03-23 12:11:36 22418 4

原创 六、最短路径——迪杰斯特拉(Dijkstra)算法

在网图和非网图中,最短路径的含义是不同的。由于非网图它没有边上的权值,所谓的最短路径,其实就是指两顶点之间经过的边数最少的路径;而对于网图来说,最短路径,是指两顶点之间经过的边上权值之和最少的路径,并且我们称路径上的第一个顶点是源点,最后一个顶点是终点。显然,我们研究网图更有实际意义,就地图来说,距离就是两顶点间的权值之和。而非网图完全可以理解为所有的边的权值都为1的网。迪杰斯特拉是一个按路径长度递增的次序产生最短路径的算法。它的思路大体是这样的。比如...

2022-03-22 16:42:13 12508 1

原创 五、最小生成树——克鲁斯卡尔(Kruskal)算法

现在我们来换一种思考方式,普里姆(Prim)算法是以某顶点为起点,逐步找各顶点上最小权值的边来构建最小生成树的。这就像是我们如果去参观某个展会,例如世博会,你从一个入口进去,然后找你所在位置周边的场馆中你最感兴趣的场馆观光,看完后再用同样的办法看下一个。可我们为什么不事先计划好,进园后直接到你最想去的场馆观看呢?同样的思路,我们也可以直接就以边为目标去构建,因为权值是在边上,直接去找最小权值的边来构建生成树也是很自然的想法,只不过构建时要考虑是否会形成环路而已。此时我们就...

2022-03-22 10:44:02 5034

原创 四、最小生成树——普里姆(Prim)算法

一个连通图的生成树是一个极小的连通子图,它含有图中全部的顶点,但只有足以构成一棵树的n-1条边,那么我们把构造连通图网的最小代价生成树称为最小生成树(就是n个顶点,用n-1条边全部连接起来,并且使得权值的和最小)。现在有如下一个图,以及它的邻接矩阵:我们用下面的算法来寻找最小生成树#include<iostream>#include<vector>#include<queue>using namespace std;#def...

2022-03-20 23:17:14 889

原创 三、图的遍历——广度优先遍历

广度优先遍历,又称为广度优先搜索,简称BFS。如果说图的深度优先遍历类似树的前序遍历,那么图的广度优先遍历就类似于树的层序遍历了。邻接矩阵方式的广度优先遍历#include<iostream>#include<vector>#include<queue>using namespace std;#define MAXVEX 100//最大顶点数typedef char VertexType;//顶点类型typedef int EdgeType

2022-03-20 13:58:13 4707

原创 二、图的遍历——深度优先遍历

深度优先遍历,也有称为深度优先搜索,简称为DFS。深度优先遍历其实就是一个递归的过程,它从图中某个顶点ⅴ出发,访问此顶点,然后从V的未被访问的邻接点出发深度优先遍历图,直至图中所有和V有路径相通的顶点都被访问到。邻接矩阵方式的深度优先遍历#include<iostream>#include<vector>using namespace std;#define MAXVEX 100//最大顶点数typedef char Ver...

2022-03-20 12:49:22 6937 1

chhhhhhhhhhhhh

chhhhhhhhhhhhh

2019-10-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除