- 博客(303)
- 资源 (1)
- 收藏
- 关注
原创 python使用pip下载包文件
会根据依赖关系的顺序安装这些文件,所以你不需要担心安装顺序的问题。文件,确保所有依赖项都正确安装。命令来下载包文件到指定目录。这将安装当前目录下所有的。
2025-03-20 14:31:59
195
原创 cmake和make的区别
但如果源文件太多,一个一个编译时就会特别麻烦,于是人们想到,为什么不设计一种类似批处理的程序,来批处理编译源文件呢,于是就有了make工具,它是一个自动化编译工具,你可以使用一条命令实现完全编译。对于一个大工程,编写makefile实在是件复杂的事,于是人们又想,为什么不设计一个工具,读入所有源文件之后,自动生成makefile呢,于是就出现了cmake工具,它能够输出各种各样的makefile或者project文件,从而帮助程序员减轻负担。1.用编辑器编写源代码,如.c文件。可执行文件,如.exe。
2025-03-11 16:23:06
331
原创 configure make和make install
make 的作用是开始进行源代码编译,以及一些功能的提供,这些功能由他的 Makefile 设置文件提供相关的功能,比如 make install 一般表示进行安装,make uninstall 是卸载,不加参数就是默认的进行源代码编译。make 是 Linux 开发套件里面自动化编译的一个控制程序,他通过借助 Makefile 里面编写的编译规范进行自动化的调用 gcc 、ld 以及运行某些需要的程序进行编译的程序。make是用来编译的,它从Makefile中读取指令,然后编译。(因为要向系统写入文件)
2025-03-11 16:21:02
335
原创 DNS劫持和HTTPDNS
DNS 劫持是一种网络攻击手段,攻击者通过篡改域名系统(DNS)解析过程,将用户请求的域名重定向到恶意网站或其他不正确的地址。这种攻击可以用于多种目的,例如窃取用户数据、传播恶意软件或进行钓鱼攻击。
2025-02-08 20:39:49
843
原创 如何避免NACK重传风暴
所以,如果没有 1、4 这两条 nack 保护策略,那么,当拉流用户很多的时候,上述两种场景会给服务器和端带来巨大的 cpu 性能损耗,并会引起 nack 网络风暴。其实,nack 的发送保护策略还有一条:收到一组连续且完整的帧之后,会立即对 nack_list 执行部分清空操作,避免无必要的再次重传请求,接下来的源码分析部分会进一步介绍这个策略。NACK 模块对同一包号的最大请求次数,超过这个最大次数限制,会把该包号移出 nack_list,放弃对该包的重传请求。
2025-02-08 20:29:55
966
原创 网络质量评估
上述文章的弱网优化大多是基于HTTP请求即request和response角度来进行的,是否可以将这些优化经验或者模型应用到关于实时音视频传输的弱网优化中呢?我认为是可以的,因为在RTC中不仅仅可以通过音视频的传输指标来评估网络质量,还可以从信令角度来评估,而从信令的角度进行网络质量评估时,上述文章中的优化点就可以被参考了。关于google nqe代码分析的文章我几乎没找到,所以等自己后续有时间了,打算具体剖析一下nqe,看一下其网络质量评估和rtc中的网络质量评估有何不同?
2025-02-06 14:04:22
355
原创 srs和nginx的区别
1. 功能不同:SRS 是专注于流媒体的应用服务器,提供了丰富的流媒体服务功能,例如录制、转码、推流、拉流、RTMP 推送和拉取、HLS/DASH/FLV 视频直播等。2. 架构不同:SRS 的架构是基于单进程多线程,采用了异步事件驱动的方式处理网络 IO,可以高效地处理大量的并发连接。SRS 使用 st (state-threads) 作为其核心事件驱动模型,st 是一个基于状态机的协程库,提供类似于线程的编程接口,但实际是协程实现,底层使用 epoll/kqueue 等事件驱动机制。
2025-01-08 19:12:40
736
原创 Adobe Flash,Flash Player和RTMP之间的关系
Flash player是一款浏览网页上嵌入的Flash动画、视频的播放插件,而Adobe Flash是制作动画的软件,这两个的职能是不一样的,所以即使是废除了Flash Player以后也不影响Adobe Flash的使用。RTMP是Flash Player默认支持的流媒体传输协议,Flash Player内置了RTMP协议栈,可以直接播放RTMP流媒体,Flash开发的应用可以方便地使用RTMP进行实时音视频传输。总的来说,RTMP是为Flash开发的核心协议,两者在流媒体领域长期密切配合。
2025-01-08 18:36:27
759
原创 声音是如何产生的
RTMP中一般音频采用aac编码,采样率为44100HZ, 每帧1024采样,帧率43,23.2ms一帧RTC中一般音频采用opus编码,采样率为48000HZ,每帧480采样,帧率100,10ms一帧。
2025-01-03 20:07:39
1094
原创 QoE和QoS的区别
QoE(Quality of Experience)和 QoS(Quality of Service)是两个与网络服务质量相关的概念,但它们关注的重点不同。
2024-11-21 21:01:30
674
原创 Could not resolve host: mirrorlist.centos.org
然后修改两个文件中的baseurl这一行,把域名mirror.centos.org修改为vault.centos.org。修改该目录下的CentOS-SCLo-scl.repo和CentOS-SCLo-scl-rh.repo文件内容。
2024-10-23 14:50:00
378
原创 stun和trun
在 WebRTC 中,STUN(Session Traversal Utilities for NAT)和 TURN(Traversal Using Relays around NAT)是用于NAT穿透的两种不同的技术,它们解决的问题不同,因此在某些情况下需要同时使用。
2024-09-02 20:40:20
726
原创 四种NAT类型
全锥型NAT(Full Cone NAT),又称为一对一NAT,是四种主要NAT类型之一,用于实现私有网络与公共网络之间的IP地址转换和端口转换。在全锥型NAT中,一个内部IP地址和端口的组合被映射到一个公共IP地址和端口的组合。一旦映射建立,任何外部设备都可以使用这个公共IP地址和端口与内部设备通信,而不管外部设备的IP地址和端口是什么。这种映射是持久的,直到NAT设备决定删除映射。全锥型NAT是最友好的NAT类型,对于P2P通信和VoIP等应用来说是理想的。
2024-09-02 20:28:43
2721
原创 RTSP协议
RTSP和RTMP协议有什么区别?RTSP为什么常用于安防监控摄像头行业,而视频直播却只使用RTMP推流?-腾讯云开发者社区-腾讯云https://zhuanlan.zhihu.com/p/478736595
2024-09-02 18:57:36
208
转载 四层代理和七层代理是什么
日常与大佬沟通或看文章,时不时总会遇到两个概念“四层代理负载均衡”和“七层代理负载均衡”,那么,所谓的四层代理和七层代理分别指的是什么?又在什么场景下用到呢?这篇文章就带大家聊聊这方面的知识点。
2024-09-02 10:51:18
612
原创 正反向代理
反向代理*(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。正向代理,意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。
2024-08-30 18:12:21
241
原创 音视频质量评判标准
4.0-5.0为“优”,评值标准是听得非常清楚,延时小,交流顺畅;3.5-4.0为“良”,音质稍差,听得清,延时小,有点杂音;3.0-3.5为“中”,音质较可,能听清,有一定时延,可以交流;通过图中表格可以看到,如果端到端延迟在200ms以内,说明整个通话是优质的,通话效果就像大家在同一个房间里聊天一样;300ms以内,大多数人很满意,400ms以内,有小部分人可以感觉到延迟,但互动基本不受影响;从以上可以看到,在保证传输的实时性时,由于带宽是一定的,可能会牺牲一定的服务质量。
2024-07-08 14:51:40
964
转载 艾瑞咨询-2022年中国实时音视频行业研究报告
https://pdf.dfcfw.com/pdf/H3_AP202208251577625435_1.pdf
2024-06-07 14:34:30
100
原创 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
912
原创 CNAME记录
当一个DNS解析服务器在查询各类记录时遇到一则CNAME记录时,它会立即重启查询,查询所映射到域名的对应记录。一条DNAME记录会将某个域名的整个解析子树映射到另一域名,而CNAME只映射设定的域名,不映射子域名。如同CNAME一样,在DNS查询过程中,会查找所映射到的新域名的地址。为某个域名设置DNAME记录和为该域名的所有子域名设置CNAME记录的效果是一样的。此类伪记录由DNS服务器维护,类似于CNAME记录,但在(某些)客户端解析时等同于A记录。,而后者则有一个指向IP地址的A记录。
2024-05-14 18:49:04
1326
原创 jitter和rtt
抖动(Jitter)是指数据包传输时间的变化量,它衡量的是网络延迟的不稳定性。在理想的网络条件下,所有的数据包都会以相同的时间间隔到达目的地。然而,在现实的网络中,由于路由器处理时间的变化、网络拥塞、不同的数据路径等因素,数据包到达的时间间隔可能会有所不同,这种时间间隔的变化就是抖动。
2024-04-24 16:17:30
2283
原创 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
5451
原创 流媒体中relay和forword的区别
在流媒体中,"目标客户端"指的是接收和播放流媒体的最终用户设备或应用程序。这可以是一个电脑上的流媒体播放器、移动设备上的流媒体应用、智能电视在流媒体中,"目标客户端"指的是接收和播放流媒体的最终用户设备或应用程序。例如,当你在电脑上观看流媒体视频时,你的电脑就是目标客户端。Relay(中继):在中继传输中,流媒体服务器充当中介,将媒体流从源服务器接收并重新发送到目标客户端。在流媒体中,"relay"(中继)和 "forward"(转发)是两种常见的传输方式,用于将流媒体从一个源传递到目标接收器。
2023-11-09 18:48:14
1075
原创 为什么gop越大延迟越高
由于预测帧(P帧和B帧)可以利用关键帧(I帧)的信息进行编码,较大的GOP可以更好地利用帧间的冗余性,从而减小视频文件的大小。同时,在播放端,需要等待足够多的帧才能开始播放视频,这也会增加播放的延迟(B帧需要参考它后面的P帧,不过直播中一般不开启B帧)。虽然较大的GOP可以提高视频的压缩效率,但在直播等实时应用中,需要权衡延迟和视频质量之间的关系,选择适当的GOP大小。cdn边缘节点或者流媒体服务器的cache最少要缓存一个gop,以实现端上的秒开效果,如果gop设置的太大,那么下行播放的延迟也会越大。
2023-11-06 17:40:18
1318
原创 #EXT-X-DISCONTINUITY
标签的具体行为和处理方式可能因播放器实现和媒体流的特定情况而有所不同。因此,对于特定的 HLS 播放器和媒体流,建议查阅相关文档或规范以获取更详细的信息。标签作为一个独立的行出现,用于指示媒体片段之间的不连续性。播放器在遇到该标签时,会在播放过程中处理不连续性,例如重新初始化媒体解码器或清空缓冲区。标签用于标识媒体片段之间的不连续性。当媒体流中发生某种变化,例如分辨率、编码格式、音频通道配置或其他关键参数的更改时,可以使用。当切片的预设时长和gop的时长不匹配时,最终的切片也会出现这样的问题。
2023-11-01 14:47:40
1854
转载 JavaScript和Node.js之间的区别是什么?
JavaScript的第一个版本在1995年推出,它是由Netscape的Brendan Eich开发的(当时称为LiveScript)。正如前面所讨论的,JavaScript是一种高级编程语言,具有通常编程语言所具有的所有功能。JavaScript是一种面向对象的编程语言,既可以在客户端使用,也可以在服务器端使用,开发人员不仅用它来创建网页,还可以用于游戏开发和移动应用开发。
2023-10-27 10:13:03
380
原创 npm start启动的是什么
具体来说,当在项目目录下执行 npm start 命令时,npm 将会在该项目的根目录下查找 package.json 文件,并查找其中的 "scripts" 对象中是否包含了名为 "start" 的属性。开发者可以在 package.json 文件中定义自己的脚本命令,例如 "dev"、"test" 等等,以实现不同的功能。npm start 命令是在一个 Node.js 项目中执行的一个自定义命令,用于启动该项目。在大多数情况下,"start" 属性的值是一个用于启动应用程序的命令。
2023-10-26 10:45:40
3849
原创 ffprobe -show_packets和-show_frames之间的区别
我们只查看视频的packets结果如下:可以看到,视频流的pts和dts并不同步,说明有B帧,dts递增,pts因为有B帧的原因所以非递增。所以,当使用show_packets分析视频流时,其实分析的是帧 frame,这里无论I帧,P帧还是B帧都还没有被解码。
2023-07-31 15:50:16
801
转载 bash和sh的区别
Shell 中文意思贝壳,寓意类似内核的壳。Shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 脚本(shell script)是一种为 shell 编写的脚本程序。常说的shell通常都是指 shell 脚本,但shell和shell script是两个不同的概念。
2023-07-03 21:32:41
657
原创 g++: internal compiler error: Killed (program cc1plus)
编译时一直报错 "g++: internal compiler error: Killed (program cc1plus)"原因,服务器交换空间不足,即swap,可用top命令查看。
2023-06-15 15:09:21
1087
转载 docker将容器打包成镜像,并在另一个服务器上运行
我们项目中,在本地服务器中部署了docker开启了一个服务,现在测试环境服务器也需要这个服务,因为懒得重新配置,于是将本地服务器中的容器进行打包,保存为tar文件,传输到测试服务器中,使用load加载镜像,然后运行。
2023-05-31 19:48:28
1333
原创 centos安装cgdb
的cgdb,不然会报错“cgdb requires gdb 7.12 or later”。其他:编译时指定c99编译器。
2023-05-09 15:25:08
964
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人