- 博客(159)
- 资源 (15)
- 收藏
- 关注
原创 MySQL连接失败
针对该问题,我检查了接手软件的代码,发现代码存在bug,导致了偶发无法释放数据库连接。然后修改MySQL允许的最大连接数,修改MySQL启动参数文件:vi /etc/my.cnf,在最后一行加入:max_connections=300,这样就把MySQL的最大允许连接数从之前的151改成了300。然后经过上述修改后,发现日志再没有打印连接MySQL失败的问题,说明确实是由于连接数的问题导致的连接失败。最近接手了公司的一个软件项目,通过打印日志,发现该软件会偶发出现连接MySQL数据库失败的问题。
2024-04-23 21:00:00 318
原创 Linux根据时间删除文件或目录
执行完后,再次通过ls -l --time-style="+%Y-%m-%d %H:%M:%S" /home命令查看/home目录下的文件和目录,可以发现90天之前的文件和目录被删掉了。下面我做一些补充,讲述一个具体例子。以删除/home目录下的文件为例。通过date命令可以查看到当前系统时间是2024年3月28日。按照年月日时分秒的形式显示/home目录下的文件和目录。》已经讲述了根据时间删除文件或目录的方法。如果报错:遗漏“-exec”的参数。
2024-03-28 20:25:48 664
原创 CentOS离线安装命令
某些CentOS安装后默认是没有部分Linux命令的,比如netstat和lsof:一般情况下我们可以通过yum install安装这些命令。但是在CentOS无法访问公网的时候(比如CentOS服务器部署在学校、军工等无法访问外网的环境),我们就只能通过离线安装的方式安装这些命令。
2024-03-27 21:11:08 511
原创 Windows下安装Kafka3
本文讲述Windows(win10)下安装Kafka3的方法。基本流程跟《》一样,也是一样需要先安装Java环境,再部署部署Kafka。首先在官网下载Kafka二进制压缩包。无论是在CentOS还是在Windows下都是下载该压缩包,里面已经包含了Kafka Linux和windows平台下的可执行文件了。选择目前比较新的3.6.1版本下载。
2024-03-12 07:23:41 944
原创 CentOS下安装Kafka3
kafka是分布式消息队列,本文讲述其在centos(centos 7.5)下的安装。安装过程可以参考其官方文档首先在官网下载Kafka二进制文件(官网的压缩包里面已经包含了Linux和windows的Kafka可执行文件了),选择目前比较新的3.6.1版本下载。
2024-03-03 23:38:39 982
原创 Wireshark不显示Thrift协议
使用Wireshark对thrift协议进行抓包。设置后,可以发现Wireshark里面显示的协议从Tcp变为Thrift了。将“当前”修改为Thrift,然后点击“确定”"右键" -> "Decode As"选择thrift的tcp端口。
2024-02-07 23:01:52 708
原创 Linux系统下使用systemctl启动服务失败
Linux下使用systemctl start/restart 命令启动服务,结果失败。通过该日志即可显示失败的原因。
2024-02-05 19:44:16 815
原创 通过Navicat for MySQL排查sql语句错误
打开Navicat for MySQL,连接该软件所用到的MySQL数据库,点击“新建查询”。将刚刚复制下来的sql语句黏贴到里面,"运行",返回了“1064”这个错误码,说明sql语句执行失败了。我们可以用Navicat for MySQL来排查sql语句是否存在语法错误等问题。这样就能知道sql语句问题出在哪里了。
2024-02-05 18:49:42 650
原创 CentOS下安装vlc
vlc是一跨多媒体播放器,可以播放本地媒体文件和网络串流,帮助我们排查音视频开发过程中遇到的问题。大部分情况下,我们只需要在Windows系统下安装vlc就可以了。但有一种情况是需要在Linux下安装vlc的:我们的音视频拉流软件(比如推流端)运行在Linux系统下,只能通过该Linux系统访问网络串流(比如摄像机的rtsp流),无法通过Windows系统访问这些网络串流。这个时候为了能判断该网络流的视频是否正常,我们就必须在Linux系统下安装vlc。
2024-02-03 20:26:53 1294
原创 CentOS gui 图形界面显示文字乱码
CentOS(CentOS 7.5)控制台下显示中文乱码:或者通过X11 Forwarding远程显示CentOS的图形化程序文字乱码:安装中文语言包:注:网上有些文章会推荐安装 fonts-chinese-3.02-12.el5.rpm 中文字体包:但是我试过发现fonts-chinese是无法获取的,只有kde-l10n-Chinese是可以安装的:修改i18n配置文件(如果没有该配置文件则新建该文件):添加:执行命令使修改生效:修改locale.conf的配置文件:
2024-01-31 08:02:05 749
原创 CentOS停止维护后,可以替代的新系统
以前国内运维一般都使用CentOS而不是Debian/Ubuntu作为Linux服务器,因为LTS支持周期,CentOS一般是10年,而Ubuntu免费支持周期只有5年,延长5年则需要额外付费。但CentOS官方将停止维护CentOS 7,CentOS 8了。其中,于2022年01月01日停止维护支持CentOS 8,于2024年06月30日停止维护CentOS 7,详情请参见。为啥官方不维护了呢?因为之前CentOS都是免费维护的,但Red Hat没钱养着一个团队一直维护CentOS这个开源软件了;
2024-01-24 21:42:58 2879
原创 RTMP流设置超时时间失败
使用FFmpeg(版本是5.0.3)将rtmp流作为输入,设置超时时间(使用-timeout参数),结果报错:Cannot open Connection tcp://XXX:1935?通过./ffmpeg -help full 命令查看FFmpeg帮助,可以看到-timeout参数确实是设置 rtmp流的超时时间的。所以为什么出现上述现象,因为FFmpeg出bug了!以rtmp流为输入时,设置超时时间得要用。将-timeout参数替换为-rw_timeout参数即可解决问题。参数,注意单位是微秒。
2023-12-10 12:29:43 895
原创 Wireshark抓包分析RTMP协议时,出现Unknown问题
编辑 -> 首选项 -> Protocols -> RTMPT,这里Maximum packet size默认是32768。进行rtmp推流时,使用wireshark抓包,发现部分包显示Unknown。将该值调大,比如调成1048576,即可解决该问题。
2023-12-03 16:11:42 1180
原创 Timestamps are unset in a packet for stream X.This is deprecated and will stop working in the future
解决的办法是在ffmpeg命令后面加上“-fflags +genpts”参数重新生成pts。
2023-12-02 22:44:48 519
原创 网络视频播放卡顿原因分析
某项目通过拉摄像机rtsp流转rtmp/http-flv/ws-flv的方案,使用户可以在网页中观看摄像机的视频画面。在观看视频时偶发出现卡顿现象。
2023-11-26 09:39:50 2052
原创 Flv.js编译使用
Flv.js 是 HTML5 Flash 视频(FLV)播放器,纯原生 JavaScript 开发,没有用到 Flash。本文讲述其编译使用。拷贝到Linux系统(Linux系统的ip为172.16.17.154)中,解压,将flv.js-1.6.2放到网站环境或http服务器根目录下。执行完后,可以看到源码目录下生成了dist目录。(flv.js所在电脑的ip为172.16.17.154,http服务器监听端口为30000)Flv.js目前最新版本是v1.6.2。官方示例代码在demo目录下。
2023-10-05 14:39:13 411
原创 WS-FLV直播协议分析
ws-flv(websocket-flv)是一种直播协议,其基于WebSocket来传输FLV格式的音视频。可以用来替代rtmp,解决其需要浏览器端依赖flash的问题;替代http-flv,解决浏览器同域名请求的最大并发数限制导致的浏览器只能播放6路http-flv流的问题。
2023-10-05 09:48:31 2233
原创 TCP端口崩溃,msg:socket(): Too many open files
linux系统中运行了一个TCP服务器,该服务器监听的TCP端口为10000。但是长时间运行时发现该端口会崩溃,TCP客户端连接该端口会失败:可以看到进行三次握手时,TCP客户端向该TCP服务器的10000端口发送了SYN报文,但是TCP服务器返回了RST报文。此时我们用netstat命令查看到10000端口没有被监听了,这意味着该端口被关闭或者不在监听中了。
2023-10-04 00:15:29 902
原创 FFmpeg报错:Connection to tcp://XXX?timeout=XXX failed: Connection timed out
FFmpeg拉流时会执行poll函数,poll函数超时时会返回0,然后FFmpeg的ff_poll_interrupt函数会返回-110,然后打印错误:Connection to tcp://XXX?
2023-09-02 18:52:57 3128
原创 Visual Studio编译出来的程序无法在其它电脑上运行
在其它电脑(比如Windows Server 2012)上运行Visual Studio编译出来的应用程序,结果报错:“无法启动此程序,因为计算机中丢失VCRUNTIME140.dll。尝试重新安装该程序以解决此问题。属性 -> 配置属性 -> C/C++ -> 代码生成 -> 运行库 -> 多线程(/MT)安装完后就可以正常启动exe了。编译出来的是X86程序安装。编译出来的是X64程序安装。在要部署的电脑上安装《
2023-08-28 06:30:26 3639 1
原创 CentOS下ZLMediaKit的可视化管理网站MediaServerUI使用
按照ZLMediaKit快速开始编译运行ZLMediaKit成功后,我们可以运行其合作开源项目MediaServerUI,来对ZLMediaKit进行可视化管理。通过MediaServerUI,我们可以实现在浏览器查看ZLMediaKit的延迟率、负载率、正在进行的推拉流、服务器配置等信息。
2023-08-07 07:39:36 1179
原创 Shedskin 使用
Shedskin是一个编译器工具,可以将Python代码编译为C++语言。如果我们的电脑是Ubuntu20.04,则其自带的python为3.8版本,我们下载。但抱着学习的心态我们还是可以学习使用该工具的。下面以最简单的Hello world为例子进行演示。执行命令shedskin后,看到输出如下,表示安装成功了。执行./test ,可以看到输出了Hello,World!执行完后,即会生成test.cpp等C++文件。然后执行make,就会生成C++的可执行文件。(注意:不要下载新版本的,比如。
2023-07-24 22:24:05 393
原创 使用thrift编写C++服务器、客户端
我们新建一个目录,将tutorial目录下的tutorial.thrift、shared.thrift和tutorial/cpp目录下的CppClient.cpp(包含客户端的主函数)、CppServer.cpp(包含服务器的主函数)拷贝到该目录中。有thrift的C++例子。在我们之前下载下来的thrift 源码根目录的tutorial/cpp目录下也有thrift的C++例子。》中,我们成功编译出了thrift的库文件,本节我们来编写thrift的C++服务器,客户端。
2023-07-16 10:19:46 627
原创 centos升级gcc
但是某些centos系统默认安装的gcc是低版本,比如centos7 默认的 gcc 是4.8.5,不完全支持C++14,会导致无法编译部分C++程序,所以我们得升级gcc。但是不要编译gcc!》的步骤,在make的时候,等待了12个小时也没有编译完成。我们可以通过devtoolset来升级gcc。
2023-07-01 20:56:39 1481
原创 FreeType库交叉编译
通过选项aarch64-linux-gnu指定交叉编译工具名称,选项prefix指定安装路径。然后就生成了FreeType库文件。
2023-06-18 14:19:30 358
原创 live555交叉编译
这是因为在给编译器输入源文件,目标文件或者动态库静态库文件时,如果B文件依赖A文件中的内容,那么B文件应该放在A文件的左边。查看我们交叉编译工具的所在路径。1.其中如果不添加选项-DNO_OPENSSL=1,则编译可能会报找不到openssl的问题。解压我们下载下来的live.XXX.tar.gz,得到live目录,进入该目录。针对我们的交叉编译工具,设置环境变量export PATH=XXX:$PATH。我们可以发现生成了live555的可执行文件,头文件和库(静态库)文件了。
2023-06-17 22:54:25 1108
原创 FFmpeg:Packet is missing PTS av_interleaved_write_frame():Invalid argument
用ffmpeg进行rtmp推流时报错:Packet is missing PTS av_interleaved_write_frame():Invalid argument。目前看来导致该报错的其中一种情况是B帧引起的。加上-bf 0 去掉B帧即可。另外还有一种解决方法是改ffmpeg源码:《
2023-06-05 21:37:12 914
原创 Linux下编译支持h264、h265、AAC编码的ffmpeg和ffplay
其中,--enable-debug --disable-optimizations --disable-asm --disable-stripping 是为了编译出带有调试信息,可以用gdb调试的ffmpeg。执行完后,即会在/root/NfsShareDir/trunk/avs/third_party/x264-master/install 目录下生成x264的头文件,库文件。执行完后,即会在source目录的install 目录下生成x265的头文件,库文件。
2023-05-22 21:44:29 1784 1
原创 Linux下可执行文件指定运行时库(.so文件)路径
rpath 全称是run-time search path,规定了Linux下可执行文件在寻找.so文件时的第一优先位置
2023-05-02 17:54:22 1787
原创 Linux控制台下svn使用图形化界面进行文件对比
把下载下来的安装包拷贝到 Linux中。进入.subversion文件夹,新建bc.sh和bc3.sh两个.sh文件。添加 diff-cmd 和 diff3-cmd。如果图形界面还是不出来,则可以参考《下载Beyond Compare。
2023-04-15 02:51:19 809
原创 libwebsockets交叉编译
CMAKE_FIND_ROOT_PATH:代表一系列的相关文件夹路径的根路径的变更,所有的Find_***.cmake脚本首先会在这个路径的usr/lib,lib目录下找,然后才会去系统的目录下找。CMAKE_FIND_ROOT_PATH_MODE_PROGRAM:有三种取值:NEVER,ONLY,BOTH,这边选NEVER表示不在当前机器的系统目录下查找,而是去宿主机查找。这里以v4.1.6为例,CMAKE_FIND_ROOT_PATH_MODE_INCLUDE:表示依赖的头文件只在交叉编译环境中找。
2023-04-10 22:16:23 862 1
原创 MobaXterm无法调出图形界面
MobaXterm远程连接上Ubuntu等Linux系统后,在其终端执行带有图形化界面的程序(比如gedit)时,是可以调出该程序的GUI图形界面的。但有时候按照默认设置可能会无法成功调出,我们得要做一些设置。第二种方式是export DISPLAY=windows主机的ip:0.0,表示将图形界面显示在客户端(比如Windows)上。linux服务器处于性能和效率考虑,一般都是没有安装图形化界面的,但通过X11 Forwarding可以实现远程显示服务器的图形化程序(GUI程序)。
2023-04-06 22:58:30 9217
Test14E.rar
2021-07-07
Test1A.rar
2021-01-09
Android模拟器虚拟串口实现串口通信的附件资源.rar
2020-08-09
ffmpeg.rar
2020-02-23
QtGuiApplication2.rar
2019-10-13
博文《关于在Opengl中先平移后旋转和先旋转后平移的效果不一样的原因》的附件资源
2019-03-04
包含GlU32.Lib glut32.dll glut32.lib glut.dll glut.h glut.lib
2019-03-02
gl/glext.h
2019-02-26
播放YUV视频文件的工程
2018-10-02
播放PCM音频文件的工程
2018-09-17
NatvisFile.natvis
2018-09-08
FFmpeg解封装并获取本地媒体文件信息的源码
2018-08-16
NSIS安装包制作工具
2018-05-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人