自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 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 4575 1

原创 centos更换yum源

【代码】centos更换yum源。

2023-11-21 15:10:22 1123

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

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

2023-11-09 18:48:14 830

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

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

2023-11-06 17:40:18 888

原创 #EXT-X-DISCONTINUITY

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

2023-11-01 14:47:40 610

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

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

2023-10-27 10:13:03 131

原创 npm start启动的是什么

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

2023-10-26 10:45:40 1458

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

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

2023-07-31 15:50:16 349

转载 linux下生成https证书

linux下生成https证书。

2023-07-25 14:32:59 2781

转载 bash和sh的区别

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

2023-07-03 21:32:41 261

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

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

2023-06-15 15:09:21 847

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

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

2023-05-31 19:48:28 1053

原创 centos升级gcc

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

2023-05-24 16:06:25 119

原创 centos安装cgdb

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

2023-05-09 15:25:08 789 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 1196

转载 视频编码格式发展史

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

2023-04-07 10:14:42 6464

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

mac下利用iterm2快速登陆docker

2022-12-27 16:58:06 516

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

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

2022-12-04 20:54:57 1028

转载 NAT,NAPT,STUN详解

NAT,NAPT,STUN详解

2022-12-03 21:17:53 966

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

服务器的load是什么意思?

2022-11-06 20:51:31 1652

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

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

2022-10-14 19:52:33 5861

原创 什么是VIP(Virtual IP Address)

VIP的实现原理

2022-10-14 15:06:47 3976

原创 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 1540 3

原创 什么是线段树

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

2022-04-04 16:59:13 1657

原创 什么是树状数组

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

2022-04-04 16:58:41 844

原创 年龄表

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

2022-03-25 19:11:40 322

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

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

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

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

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

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

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

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

2022-03-22 10:44:02 4890

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

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

2022-03-20 23:17:14 874

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

广度优先遍历,又称为广度优先搜索,简称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 4654

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

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

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

原创 一、图的定义,邻接矩阵和邻接表的实现

目录一、初识图(1)图的定义(2)图的分类二、图的存储结构(1)邻接矩阵(2)邻接表(无向图)(3)其他一、初识图(1)图的定义图(Graph)是由顶点的有穷非空集合(必须存在顶点)和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。(2)图的分类若顶点到顶点之间的边设有方向,则称这条边为无向边。如果图中任意两个顶点之间的边都是无向边,则称该图为无向图。...

2022-03-20 10:40:09 4477

原创 http1,http2和http3之间的区别

HTTP1.1 和 HTTP1.0 的区别有哪些? 1.长链接 早期 HTTP1.0 的每一次请求都伴随着一次三次握手的过程,并且是串行的请求,增加了不必要的性能开销 HTTP1.1新增了长链接的通讯方式,减少了性能损耗 2.管道 HTTP1.0 只有串行发送,没有管道 HTTP1.1 增加了管道的概念,使得在同一个 TCP 链接当中可以同时发出多个请求 3.断点续传 HTTP1.0不支持断点续传 ..

2022-03-18 13:26:32 2359

原创 数字签名和数字证书的区别

鲍勃有两把钥匙,一把是公钥,另一把是私钥。鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把。苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果。鲍勃收信后,用私钥解密,就看到了信件内容。这里要强调的是,只要鲍勃的私钥不泄露,这封信就是安全的,即使落在别人手里,也无法解密。鲍勃给苏珊回信,决定采用"数字签名"。他写完后先用Hash函数,生成信件的摘要(digest)。然后,鲍勃使用私钥,对这个摘要加密,生成"数字签名"(s...

2022-03-18 12:28:47 464

原创 朝代歌

三皇五帝始,尧舜禹相传。夏商与西周,东周分两段。春秋和战国,一统秦两汉。三分魏蜀吴,两晋前后延。南北朝并立,隋唐五代传。宋元明清后,皇朝至此完。解读 :三皇五帝始,尧舜禹相传三皇五帝是中国在夏朝以前出现在传说中的“帝王”。现在看来,他们都是部落首领,由于实力强大而成为部落联盟的领导者。大部分的意见是燧人氏、伏羲氏、神农氏称为“三皇”,黄帝、颛顼、帝喾、尧帝、舜帝称为“五帝”,这些说法起源于春秋战国。三皇代表是古华夏的...

2022-03-17 19:47:25 2173

原创 什么是拓扑排序

在图论中,拓扑排序是一个有向无环图(DAG, Directed Acyclic Graph)的所有顶点的线性序列。且该序列必须满足下面两个条件:每个顶点出现且只出现一次。 若存在一条从顶点 A 到顶点 B 的路径,那么在序列中顶点 A 出现在顶点 B 的前面。并不是所有图都存在拓扑排序,拓扑排序在图中也不是唯一的(通常,一个有向无环图可以有一个或多个拓扑排序序列)。不含环路的有向图必包含入度为零的顶点—因此一定存在拓扑排序拓扑排序的算法实现入度为 0 的顶点 m(及其...

2022-03-15 10:12:45 768

原创 HTTPS中间人攻击,HTTPS被抓包了怎么办?

目录一、写在前面二、什么是中间人攻击三、https 是绝对安全的吗四、中间人攻击的初步了解五、中间人攻击的深入了解六、https 是如何防止中间人攻击的SSL-Pinning七、浏览器是如何确保CA证书的合法性?(1)证书包含什么信息?(2)证书的合法性依据是什么?(3)浏览器如何验证证书的合法性?八、https 可以抓包吗九、预置证书/公钥更新问题一、写在前面首先,当个位读者在看到这篇文章时,我默认大家已经对...

2022-03-12 15:33:38 10225 1

原创 按下开机键后,电脑都干了些什么?

① 第一步,开机直接访问BIOS ROM的0xFFFF0。开机以后,CS寄存器置为0xFFFF,IP寄存器置为0x0000。这样一来,CPU就会要求访问地址为0xFFFF0的这个地方。这个地址实际上不是内存的地址,它被地址控制器(实际上是南桥北桥)映射到 BIOS ROM里,而这个地址的ROM中存放着一条跳转指令。② 第二步,访问BIOS ROM中的初始化程序。0xFFFF0中这条跳转指令,跳转至BIOS ROM的某个地址。从这开始是一段ch,把这段程序复制到内存...

2022-03-12 09:37:20 724

原创 32位和64位到底有什么区别?

目录从代码到到可执行文件从可执行文件到进程CPU位数的含义系统和软件的位数的含义程序数值int32和int64的含义系统位数会限制内存吗?总结关于32位和64位,这个概念一直让人比较懵。在买电脑的时候,我们看到过32位和64位CPU。下软件的时候,我们也看到过32位或64位的软件。就连装虚拟机的时候,我们也看过32位和64位的系统。在写代码的时候,我们的数值,也可以定义为int32或者int64。我们当然很清楚,装软件的时候,一般64位的系统就选64位的软

2022-03-09 11:31:05 17059 7

chhhhhhhhhhhhh

chhhhhhhhhhhhh

2019-10-29

空空如也

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

TA关注的人

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