- 博客(82)
- 资源 (7)
- 收藏
- 关注
原创 ubuntu22.04 解决界面不定时卡死且无法进入tty,只能强制关机的问题
最近搞了个新本专门拿来工作,直接上ubuntu22.04环境,然后就经常卡死且无法进入tty,键盘鼠标等操作均无响应,只能强制关机,一开始是怀疑WIFI、软件等问题,后来发现可能是N卡不兼容导致。禁用nov的驱动,去官网下载驱动自己安装后,暂时没有遇到卡死现象。后续更新:...
2022-05-20 11:21:14
16874
11
原创 Linux静态编译之lpthread库踩坑记录: -static静态编译后,执行程序出现段错误
动态编译正常运行,静态编译后出现段错误1、动态编译正常,如下图:g++ SDAmqpev.cpp -lamqpcpp -std=c++11 -lev -lpthread -ldl2、静态编译出现断段错误,如图:g++ SDAmqpev.cpp -lamqpcpp -std=c++11 -lev -lpthread -ldl -static3、GDB排查问题看上图可知,thread库有问题了!你可以不使用std:thread这个,改为其他,或者使用下面这个方式编译。4、解决办法:编译
2022-01-06 14:55:59
1836
原创 getsockname函数获取本地IP为何是127.0.0.1情况分析
最近在项目测试的时候发现一个问题,getsockname接口获取的IP地址在有些机器上是真正的IP地址例如192.168.2.207,有些机器获取出来的是127.0.0.1这个地址。为什么会出现getsockname获取的是127.0.0.1这个问题,我认真去探究了一下。部分代码如下: //等待处理 while(1) { //等待client端的连接 newFd=accept(sockfd,(struct sockaddr *)&from,&a
2020-12-09 16:05:43
3718
原创 在VS中配置调用FFmpeg开发环境
首先要知道FFmpeg有三个版本:分别是static、shared、dev具体什么区别自行百度就行。要在VS中调用FFmpeg,那么我们需要FFmpeg的库资源,即需要shared和dev这两个资源。可以自行百度下载,或者拿我的资源。1、百度云资源:链接:https://pan.baidu.com/s/1jnCIrP3EB98UNcgQz3-fMA提取码:rwix复制这段内容后打开百度网盘手机App,操作更方便哦–来自百度网盘超级会员V2的分享2、博客资源,初始积分已经设置为0了下载后可以
2020-11-11 16:44:59
2533
原创 PKG_PROG_PKG_CONFIG: command not found
在docker环境中编译libstrophe的时候出现这个错误PKG_PROG_PKG_CONFIG: command not found首先确认pkg-config工具有么有安装好,没有的话安装一下:apt-get install -y pkg-config如果已经安装那么应该是执行configure的时候漏了一步请加下面的环境路径执行ACLOCAL_PATH=/usr/share/aclocal ./bootstrap.shACLOCAL_PATH=/usr/share/acloca
2020-09-10 16:49:05
5464
1
原创 Linux下kafka “踩坑”记录--kafka.ZooKeeperClientTimeoutException: Timed out waiting for connection while in
kafka默认端口号9092,但是ZooKeeper默认端口号是2181如图错误:创建和更改主题分区时报错:kafka.zookeeper.ZooKeeperClientTimeoutException: Timed out waiting for connection while in state: CONNECTING查看配置文件server.properties中的ZK部分发现,ZK默认端口号指定是2181然而我把kafka的默认端口号9092当成ZK的去用,所以报错,新手问题。。。
2020-06-30 16:07:27
2806
原创 Ubuntu搭建asn环境并简单实例验证
系统环境:Ubuntu16.041、下载源码包sudo git clone https://github.com/vlm/asn1c.git2、生成配置文件sudo autoreconf -iv3、编译sudo ./configuresudo makesudo make install4、完成之后,查看一下有么有asn1c命令6、下面开始实例验证创建一个文件:rectangle.asn,声明下长和宽RectangleModule DEFINITIONS ::= BEGINR
2020-06-23 14:14:43
753
原创 wireshare无法捕捉到虚拟机VM的网卡解决办法
重置了下虚拟机的网络配置,把VM0搞成桥接,VM8搞成NAT,结果wireshare监听不到虚拟机的网卡了。尴尬~说下我的修复之路1、尝试了百度说得最多的方法管理员身份打开cmd执行:net start npf结果没起作用查看VM网卡也是已经打开了,虚拟机网络也是正常使用2、网上的方法没起作用之后,本来想着是不是wireshare出问题了,直接重装得了然后就看到了这个东西:winpcap双击这个运行一下,提示往下继续选择第三个忽略,直到完成。3、再回到wireshare看看
2020-06-23 13:38:04
4041
1
原创 C语言 librdkafka 简单分析生产、消费的实例
生产#include <stdio.h>#include <signal.h>#include <string.h>#include <librdkafka/rdkafka.h>static volatile sig_atomic_t run = 1;/** * @brief Signal termination of program */static void stop (int sig) { run = 0; fclo
2020-05-29 13:49:20
1413
原创 kafka突然出现 /bootstrap: Failed to create socket: Too many open files
在给kafka程序做高并发压力测试时突然出现这个,找了下原因,发现是Linux的文件句柄问题。在Linux中是有文件句柄(open files)限制的一般来说Linux默认是1024,在高并发服务器还蛮容易达到这个量级。稍微改一下句柄的数量就好了命令:ulimit -a 执行:ulimit -n 数量 修改句柄注:最大值为655350llw@ubuntu:~/kafka$ ulimit -n 102400llw@ubuntu:~/kafka$ ulimit -a之后就不会出现
2020-05-28 16:55:08
1237
原创 Linux 安装kafka的库librdkafka
1、从GitHub上获取git clone https://github.com/edenhill/librdkafka.git2、进入目录,cd librdkafka/sudo ./configuresudo makesudo make install安装完后的目录结构在src目录下有很多文件,.c、.h、.o,证明是编译过了的。其中rdkafka.h会用到,编译自己的程序的时候链到这个库 -lrdkafka++然后查看下/usr/local/include/、/usr/loc
2020-05-26 17:45:00
3132
1
原创 Linux下的kafka终端发送、接收消息(生产、消费模式)
新接触kafka,学习记录下。producer 消息的生成者,即发布消息consumer 消息的消费者,即订阅消息broker Kafka以集群的方式运行,可以由一个或多个服务组成,服务即brokerzookeeper 协调转发1、# 启动 Zookeeper./bin/zookeeper-server-start.sh config/zookeeper.properties 2、 启动 Kafka./bin/kafka-server-start.sh config/
2020-05-25 16:16:09
8568
2
原创 端口号和进程号的查询与杀死
ps aux和grep的使用查询进程root@ubuntu:/opt/emqx# ps aux|grep emqxroot 8386 0.0 0.0 21292 936 pts/3 S+ 11:11 0:00 grep --color=auto emqx启动emq,结果报错2020-05-22 11:06:54.126 [error] mqtt:tcp failed to listen on 1883 - eaddrinuse (address already i
2020-05-22 11:22:14
1186
原创 Linux ftp虚拟用户登录无法获取目录列表、无法上传、下载等
用pam模块创建虚拟用户,登录成功,却无法获取目录信息等下面是错误信息:[root@wincenter /mnt/data_bak/ftpuser/tmp_user/logout_xiaohu]# ftp 10.123.209.54Connected to 10.123.209.54 (10.123.209.54).220 (vsFTPd 3.0.2)Name (10.123.209.5...
2020-04-14 11:27:33
3318
3
原创 shell 月份英数格式转换,月份英文转换成数字
现在有个文本,里面数据是日-月-年,如下:任务就是将上面的日期转换成YYMMDD格式。例如第一个的17-MAR-20,则是转换成20200317那么需求就很简单了,将中间的英文提取转换成数字月份,然后重新排列组合就行了。转换后的结果:代码如下:for tmp in `cat file |awk -F '[,]' '{print $3}' `;do month=`echo ...
2020-04-08 17:15:00
4913
原创 tar命令的一些问题记录笔记
**问题一:tar: Removing leading `/’ from member names**这是tar命令不建议使用绝对路径,用相对路径。若一定要使用绝对路径的话加大写P参数。之所以不建议绝对路径是因为还有一个问题,如果打包含有绝对路径,加压的时候回创建绝对路径里面的那些多层目录。例如:我的打包命令是这样的,里面包含了绝对路径:tar --warning=no-file-...
2020-03-18 11:50:59
2714
原创 shell 在文本的每行开头都加上一个日期
先说下简单的方法:这个需求可以分为两种:1、在文本的每行开头都加上一个字段(日期、时间、或者其它),但是这个是固定的,不会发生变化2、在文本的每行开头都加上一个字段(例如当天的时间),那么这个时间就是变化的,每天的时间都不一样。对于需求1可以用下面两个命令:awk '{print "20200323 " $0}' test.filesed 's/^/20200309& /g'...
2020-03-09 15:02:50
2879
原创 二、Linux C语言使用libcurl访问网页并保存网页信息到本地
直接看代码:#include <curl/curl.h>#include <stdio.h>#include <stdlib.h> //exitsize_t write_data(void *buffer, size_t size, size_t nmemb, void *userp);int call_url(char *url);int ma...
2019-12-05 17:45:02
613
原创 一、Linux C语言使用 libcurl 访问URL网页
用libcurl库访问一个URL直接放代码:#include <curl/curl.h>#include <stdio.h>#include <stdlib.h> //exitint call_url(char *url);int main(int argc, char **argv){ if(argv[1]==NULL) { pri...
2019-12-05 17:31:44
1665
原创 Ubuntu16.04安装libcurl
libcurl主要功能就是用不同的协议连接和沟通不同的服务器~也就是相当封装了的sockPHP支持libcurl(允许你用不同的协议连接和沟通不同的服务器)。 libcurl当前支持http, https, ftp, gopher,telnet, dict, file, 和ldap 协议。libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT,FTP 上传(当然你...
2019-12-05 17:30:43
3731
原创 base64编解码 C和Java
Java:package mine.woserver.iphone.utils;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.OutputStream;public class Base64 { private static final char[] legalChars...
2019-11-27 16:09:36
350
原创 纯C语言 DES加解密之CBC和ECB模式
撸了个纯C代码的DES加密,CBC模式先看下图:(左边是我的,右边是在线加密工具,地址:http://tool.chacuo.net/cryptdes)可以看到,红框部分是一样的,至于后面的内容不一样应该是因为填充方式导致的,可以看到填充是选了PKSC5方式,我还没写填充方式部分的代码,等到完全写好后,再放出代码。CBC模式就是在ECB模式上加强进阶得来的,所以在代码里两种加密模式都写好区...
2019-11-14 20:03:55
5967
5
原创 Linux 生成so库文件并调用
为了不暴露源码,将c文件生成so动态库来给别人调用记录一下方法首先简单的创建一些测试文件:test.h a.c b.c c.c如下:test.h#include <stdio.h>void a();void b();void c();a.c#include "test.h"void a(){ printf("aaa\n");}b.c#inc...
2019-11-05 18:05:28
3784
1
原创 libssl-dev : Depends: libssl1.0.0 (= 1.0.2g-1ubuntu4) but 1.0.2g-1ubuntu4.15 is to be installed
安装OpenSSL库遇到问题:翻译成中文就是:libssl-dev : 依赖: libssl1.0.0 (= 1.0.2g-1ubuntu4) 但是 1.0.2g-1ubuntu4.15 正在被安装这个情况的意思是:我们要装的库OpenSSL,假设它需要依赖的包是X,但需要的X是A版本,但是我们的系统环境中已经存在另外一个东西,它也需要的依赖X,并且需要的是X另外一个版本B,两个版本之间...
2019-10-28 16:43:40
6231
6
原创 Ubuntu系统 libgcc_s.so.1 must be installed for pthread_cancel to work
make[3]:正在离开目录 `/home/ubuntu/work/test/LS360F_actroot_sdk/openwrt/actroot/build’Pseudo file “/dev” exists in source filesystem “/home/ubuntu/work/test/LS360F_actroot_sdk/openwrt/actroot/build/…/out/r...
2019-09-24 20:10:54
2756
原创 bash: ./parser: 没有那个文件或目录
make[1]: 正在进入目录 `/home/ubuntu/work/LS360F_actroot_sdk/openwrt/actroot’cd /home/ubuntu/work/LS360F_actroot_sdk/openwrt/actroot//build && make -f base-files.mkmake[2]: 正在进入目录 `/home/ubuntu/wor...
2019-09-24 19:20:11
1554
原创 Ubuntu环境安装包 E: 未发现软件包 zliblg-dev
问题如下:root@ubuntu-VirtualBox:/home/ubuntu# apt-get install -y zliblg-dev正在读取软件包列表… 完成正在分析软件包的依赖关系树正在读取状态信息… 完成E: 未发现软件包 zliblg-dev改正:把l改成1,不是字母“l”而是数字1,zlib1g-devroot@ubuntu-VirtualBox:/home/ubu...
2019-09-24 11:43:33
3244
3
原创 Ubuntu14.04搭建环境 g++ : 依赖: g++-4.8 (>= 4.8.2-5~) 但是它将不会被安装
Ubuntu14.04搭建环境遇到下列问题:root@ubuntu-VirtualBox:/home/ubuntu# apt-get install -y build-essential正在读取软件包列表… 完成正在分析软件包的依赖关系树正在读取状态信息… 完成有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是因为系统无法达到您要求的状态造成的。该版本中可能会有一...
2019-09-24 11:34:27
3447
原创 ffmpeg 获取播放的时间来实现进度条
一般来说,进度条的实现都是用dts或者pts来做参考实现但是我现在用一种更加简单的方法去获取总时长和当前播放时间来做进度条。获取总时长的函数: if(avformat_open_input(&pFormatCtx, is->filename, NULL, NULL)!=0) //获取总时长 times = pFormatCtx->duration/1000000...
2019-08-09 15:14:01
8378
2
原创 ffmpeg QT实现播放器的进度条
如图,进度条是用qslide控件:用法:QSlider *playSlider = new QSlider;playSlider ->setRange(0,100); //设置进度条最小值和最大值(取值范围)playSlider ->setMinimum(0); //设置进度条最小值playSlider ->setMaximum(100); //设置进度条最大值pl...
2019-08-08 16:32:01
4126
4
原创 QT 子窗口全屏化和退出全屏的功能实现
初始的UI如下图;现在只做了三个功能键:全屏、退出全屏、播放。下面看代码:三个信号与槽控制对应上面三个功能 QObject::connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(display_main())); //播放 QObject::connect(ui->fullsrceen,SIGNAL(clicke...
2019-07-26 15:35:35
3404
3
原创 QT 将SDL嵌入到QT的窗口控件中
做了一个ffmpeg+SDL的播放器,现在移植到QT中,暂时又不想直接用QT+ffmpeg的方式。但是原来的SDL做播放器的话,每次运行就直接弹出独立的SDL播放窗口。所以就把SDL嵌入到QT的子窗口中,记录一下遇到的问题。百度了网上的方式,都是3年前的了,有点老,踩了不少坑,下面开始说明一下:一开始是这种写法,如下: if(SDL_Init(SDL_INIT_VIDEO...
2019-07-25 18:17:17
6311
4
原创 ffmpeg 获取视频的时长
简单写个程序获取视频的时长,以便做视频播放器的进度条。很简单,头文件我懒的敲了,直接复制别的,所以有些多余。代码如下:#include <libavcodec/avcodec.h>#include <libavformat/avformat.h>#include <libavformat/avio.h>#include <libswresamp...
2019-07-24 17:31:22
6106
原创 ffmpeg fork一个子进程利用hls的ts流切片来实现直播
hls的ts流切片相关看这个:https://blog.youkuaiyun.com/weixin_38890593/article/details/96965164下面看代码:int main(int argc, char *argv[]) {//int main(void) { SDL_Event event; VideoState *is; char str_...
2019-07-24 10:45:26
626
原创 m3u8结构以及hls协议简单解析
HLS(Http Live Streaming): 用于实时流传输的协议,HLS基于HTTP协议实现,传输内容包括两部分,一是M3U8描述文件,二是TS媒体文件。HLS的优势就是:可以自适应调整播放码流,即网络畅通时选择高码流,网络繁忙时选择低码流,二者可以随意自行切换,以保证视频流的流畅度。当然该方法需要服务器提供多码流视频数据了,还需在列表文件中注明,播放形式会根据用户实际情况来调整。ff...
2019-07-23 10:21:43
11301
原创 (一)ffmpeg主要函数源码剖析:ffmpeg_parse_options()
先看ffmpeg的主函数入口int main(int argc, char **argv){ int i, ret; BenchmarkTimeStamps ti; init_dynload(); register_exit(ffmpeg_cleanup); setvbuf(stderr,NULL,_IONBF,0); /* win32 runti...
2019-07-18 17:39:59
1221
1
原创 基于ffmpeg的播放器播放URL出现: Server returned 403 Forbidden (access denied)
基于ffmpeg做了一个播放器,可以播放网络视频,例如,CCTV1的频道直播但是在播放一些URL地址的时候出现了这个问题:Server returned 403 Forbidden (access denied)被拒绝了访问,但是在使用VLC播放器的时候是能正常播放的。下面这个URL就是测出问题的,我做的播放器和ffplay都出现这个error。http://120.87.10.21:...
2019-07-17 18:13:47
12576
1
原创 ffmpeg函数分析:av_read_frame()
对于视频的编解码来说,要对数据进行解码,那么首先要获取视频帧的压缩数据。av_read_frame()的作用就是获取视频的数据。注:av_read_frame()获取视频的一帧,不存在半帧说法。但可以获取音频的若干帧。说明①:av_read_frame()函数是ffmpeg新型的用法,就用法之所以被抛弃,就是因为以前获取的数据可能不是完整的,而av_read_frame()保证了视频数据一帧...
2019-07-17 15:42:51
13627
转载 ffmpeg必备知识点
未来方便学习,用别人的资料对ffmpeg做下整理,参考的资料在文末贴出。视频协议:视频播放器原理视音频技术主要包含以下几点:封装技术,视频压缩编码技术以及音频压缩编码技术。如果考虑到网络传输的话,还包括流媒体协议技术(即播放网络视频就是解析流媒体)。视频播放器播放一个互联网上的视频文件,需要经过以下几个步骤:解协议,解封装,解码视音频,视音频同步。如果播放本地文件则不需要解协议,为以下几...
2019-07-12 15:33:42
360
原创 ffmpeg的API函数变化记录
最近在搞ffmpeg的时候发现下面函数出错:tutor.o: In function \`our_get_buffer\':tutor.c:530: undefined reference to \`avcodec_default_get_buffer\'怀疑是ffmpeg的函数变了,放弃了这个,查了文档,果然是这样。Add avcodec_default_get_buffer2() a...
2019-07-10 17:51:41
4837
gcc和build-essential离线安装deb包.zip
2021-06-30
FFmpeg的shared和dev库资源
2020-11-11
libgcc_s.so.1.rar
2019-09-24
get_picture_from_url.tar.gz
2019-07-03
基于QT的mplayer播放器.rar
2019-07-02
基于C语言的base64编解码,3*8转4*6
2018-10-10
TCP-IP详解卷一~三
2018-10-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人