自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(130)
  • 收藏
  • 关注

原创 qt初入门7:进度条,定时器,时间控件练习

参考课本demo,空闲时间练习一下进度条,定时器,日期相关控件和使用。

2024-01-26 10:55:19 420

原创 qt初入门6:QChar和QString相关接口练习

简单了解编码:​ latin1(ISO 8859-1)字符集是对ASCII基本字符集的扩展,都是1字节编码。Unicode编码有多重存储方案,utf-8使用1~4字节编码,最少1字节;utf-16使用2-4字节编码,最少2字节。主要练习Qchar,QString,Qstring和数值的转换,以及资源文件的加载和显示居中处理。QChar主要练习一下unicode编码,和ASCII字符串编码c字符的转换。

2024-01-24 15:46:46 1318

原创 qt初入门5:字体设置和元对象系统的练习

空闲时间,参考课本demo,做一下练习。字体的颜色主要用QPalette类,调色板的作用,控制着窗口部件的颜色和外观,包括背景色、前景色、文本颜色、边框颜色等。字体的显示样式主要用Font类,用于管理字体。元对象的使用(QObject派生类都具有与之相关联的元对象):主要练习通过元对象系统,获取类名,属性等,这里可以设置一些类信息和属性信息,然后使用。只贴出必要代码,其他的都是信号,槽,以及控件的基础使用。

2024-01-20 16:34:51 613

原创 qt初入门4:大小端(小端转成大端code)

判断电脑大小端,并进行小端转换成大端。

2024-01-12 15:55:30 725

原创 qt初入门3:文件,目录,临时文件,监视相关demo

参考qt的书籍demo,做练习QCoreApplication类 主要处理获取app所在目录,路径,app名称,lib库路径等。QFile类 主要实现文件拷贝,校验存在,删除,重命名,移动到回收站等。QFileInfo类 获取文件必要信息,比如绝对路径,文件名,路径,大小,创建时间,最后修改时间等属性QDir类 获取操作系统的一些目录路径 比如根目录,临时目录,home目录,分区,当前目录(可以设置)等。目录的增删改查(递归删除目录) 路径,名称,遍历目录,遍历文件等。

2024-01-11 19:48:04 528

原创 qt初入门2:qt选择一个文件或者目录,获取当前目录,操作文件目录等整理

最近用qt操作文件或者目录的动作比较多,简单整理一下常用的接口,方便回顾。总的来说,其实就是用文件选择对话框QFileDialog类,以及操作文件信息的QFileInfo类,以及相关QCoreApplication中静态成员函数获取一些信息,qDir类。

2024-01-09 18:07:35 2041

原创 读书之深入理解ffmpeg_简单笔记3(初步)

注册事件,处理事件的方式。

2024-01-05 11:26:01 1146

原创 读书之深入理解ffmpeg_简单笔记2(初步)

再回看第一遍通读后的笔记,感觉还有很多的细节需要一一攻克,。mp4的封装格式,解析方式。flv的封装格式,解析方式。ts的封装格式,解析方式。

2024-01-05 11:22:14 1258

原创 读书之深入理解ffmpeg_简单笔记1(初步)

AVFormat(封装,解封装),AVCodec(编码,解码模块),AVFilter(滤镜模块),AVDevices(设备模块),AVUtils(通用工具模块)swscale(图像转换模块)swresample(音频转换模块)ffmpeg编译后生成三个工具,ffmpeg(编解码工具),ffplay(播放器),ffprobe(多媒体分析器)安装:可以去官网直接下载可执行程序,也可以去源码安装(整理过,这里略过)

2024-01-05 11:19:01 1018

原创 读书之unix环境高级编程_简单笔记2(初步)

手头有比较多的技术书籍,弃之可惜,放之惭愧,借助空闲时间,先草读,再demo整理。unix环境高级编程 草读简单整理,为下一步整理细节技术点做准备。(仅个人笔记)

2024-01-05 10:54:36 949

原创 读书之unix环境高级编程_简单笔记1(初步)

手头有比较多的技术书籍,弃之可惜,放之惭愧,借助空闲时间,先草读,再demo整理。unix环境高级编程 草读简单整理,为下一步整理细节技术点做准备(仅个人笔记)。基本的文件操作,线程,进程,系统,进程间通信,终端控制等。

2024-01-05 10:52:40 818

原创 读书之unix网络编程卷1_简单笔记(初步)

手头有比较多的技术书籍,弃之可惜,放之惭愧,借助空闲时间,先草读,再demo整理。unix网络编程卷1 草读简单笔记,为下一步整理细节技术点做准备。

2024-01-05 10:46:25 456

原创 借助libcurl实现ftp文件上传,断点续传demo梳理。

公司业务,需要实现一个ftp大文件上传的功能,简单搭建一个ftp服务器,首先研究demo,以及断点上传的功能。1:首先了解文件上传相关协议,ftp,sftp或者基于http,其他自己实现等。2:确定基于ftp实现,搭建简单的ftp服务器并用工具确定服务器正常。3:基于现有的服务器,了解相关ftp开源库,使用代码实现文件上传最基本的功能。4:考虑到大文件的传输,首先考虑断点续传功能,后期用线程池/多线程方案进行适配优化。5:考虑使用场景,适配在windows上进行测试,基于qt。

2024-01-03 19:41:50 2168

原创 udp的简单整理

最近思考udp处理的一些细节,根据公开课,反复思考,终于有所理解,做整理备用。

2023-09-17 22:52:56 648

原创 Trinitycore学习之windows上用cmake生成vs项目并尝试在windows上启动服务

用zip进行安装的方式,使用cmke进行configure时,总是报找不到mysql的lib库和头文件,即使增加了环境变量,或许是我的zip包不对。用msi进行mysql安装后,cmake进行configure一次成功,然后Generate生成对应的vs项目。不过 用ubuntu搭建服务器测试是正常的,这里只是研究一下windows上做编译研究源码,简单整理一下。参考该文章安装相关的工具,主要有boost,openssl,cmake,mysql,vs2022自己电脑已经安装。登录,也可以用相关界面工具。

2023-09-13 21:29:45 409

原创 Trinitycore学习之在vscode查看远端服务器上源码配置

clangd支持语法补全等相关功能,cmake是编译相关,cmake tools会在vscode下面生成相关编译,运行等按钮。也可以点击+ 在输出框输入 ssh 用户名@ip 也可以,实际上还是在这个配置文件中生成必要信息。不借助vscode中cpp相关自动跳转,通过clangd以及相关配置高效跳转。太多的技术栈来源于零声学院,上班之余,又报了个游戏的课外进修,做此整理。推荐:https://xxetb.xet.tech/s/2W52YR。这里可以通过设置ssh密钥的方式达到免密的效果,暂不关注。

2023-09-12 23:02:57 730

原创 Trinitycore学习之在Linux环境上搭建服务器并测试运行

上面已经编译出处理地图数据的可执行文件 mapextractor, vmap4extractor,vmap4assembler, mmaps_generator,执行后生成其他一些目录或者文件,是服务器需要的地图信息。同时,df -h查看内存情况,参考https://zhuanlan.zhihu.com/p/359959580 可以实现磁盘内存扩展。注意:这里用的虚拟机,在虚拟机上生成地图信息,地图信息占用内存比较大,我暂时设置磁盘50G进行测试,后面研究细节。

2023-09-12 22:56:46 602

原创 windows上先简单使用libevent,运行demo

使用libevent。

2023-08-20 23:13:46 228

原创 qt初入门1:qt读文件的几种方式简单整理

这些demo测试的初衷是,初次接触qt,要处理一批大文件后,进行界面的显示,但是发现,读取大文件时,有崩溃,耗时的问题。排查耗时崩溃问题的原因,有怀疑过是读文件的耗时,所以做了简单demo测试,最后发现是字符处理内存增加,qDebug日志记录,通过ui进行界面显示过大内容导致的耗时,甚至崩溃。在整理回头整理demo的过程,以及最近实际过程中遇到的小问题,发现可以整理的点。

2023-08-18 09:30:25 3734

原创 qt初入门0:结构体中QString用memset导致崩溃分析及QLatin1String简单查看源码

结构体中QString成员memset导致崩溃

2023-08-17 18:20:56 1557

原创 音视频使用qt测试ffmpeg接口时无法运行

对qt相关环境并不熟悉,在进行测试的时候,遇到构建成功,运行没反应的问题,纠结许久有阻塞,所以做了该整理。1:qt构建时,要注意选择的构建方式,以及依赖动态库要和构建方式的32/64版本对应,pro文件中要配置对应依赖位置。2:运行时报错”“,或者运行时没有反应,多半是dll依赖没有对,需要拷贝对应依赖dll到构建目录下。====》这里同时要注意debug版本和release版本构建时,点击直接运行时的报错和debug运行时的报错不一样。(都是确少对应dll文件)

2023-05-23 12:56:22 837

原创 音视频windows安装ffmpeg6.0并使用vs调试源码笔记

建立在上一步,vs已经能够正常调试qt项目,可以实现:1:qt可以使用mvsc (使用cdb)进行调试。2:vs已经可以加载qt项目,借助vs进行调试。:编译ffmpeg库,编译出对应的相关库,使用qt,vs进行调试demo,为研究源码做准备。本文编译ffmpeg6.0,使调试源码环境能正常进行。技巧:which.exe cl.exe 可以查看当前生效的执行文件。

2023-05-20 01:07:58 1273 6

原创 音视频源码调试前准备vs2019+qt5.15.2搭建可调试环境

安装vs2019+qt,并且在windows环境上安装ffmpeg,尝试使用qt+cdb进行调试,尝试使用vs2019加载qt的程序。

2023-05-20 01:02:18 870 1

原创 音视频ubuntu安装ffmpeg6.0简略笔记

1:安装相关基础依赖。3:安装相关第三方库。

2023-05-20 00:58:04 380

原创 vs2019测试sizeof(string)的长度是28

vs2019测试sizeof(string)长度是28笔记

2022-08-07 11:08:19 835 1

原创 tcp 服务端接收数据处理思路梳理,以及select: Invalid argument报错 笔记

tcp服务端接收时业务思路梳理

2022-07-15 09:18:51 1579

原创 日常知识点之编译运行时识别头文件目录或者链接库目录设置

最近在日常工作中,用自己的业务结合ZLMediakit的开源库做一些业务处理时,涉及到一些头文件和so链接的细节技巧,做汇总,以方便后面回顾。使用gcc/g++编译的时候,其实都已经有一系列默认的路径,在这些路径中去依次查找依赖的头文件,动态库等。我们需要使用的第三方的头文件和so,那么就有如下几种方案。0:在使用gcc编译的时候,直接使用-I 和-L紧跟链接路径。1:把这些头文件和so拷贝到操作系统特定的目录,或者代码的同级目录。 ==》这个不做讨论2:使用export设置相关的环境变量,使能识

2022-03-23 18:07:06 1488

原创 反思及规划

最近有点惆怅,想做的事堆积的有点多,想前进的脚步心理受阻。总想写出来规划规划,瞎逼逼的话就不说了,阶段总结和规划flag立一下。规划一:语言的积累曾经,因为做网络相关得业务,自定义协议栈,以及网络数据得交互相关,我一直对c语言以及结构体相关指针不得其解,我就刻意得靠近c语言,想要学会。后来,我再面试得时候,别人得评价是我C++基础太差,我就简单了解一下C++11得内容,我发现回顾起来容易,但是也确实忘了好多。想起大佬说的一句话,语言,就得一遍一遍得学习后,才能叫学会。以及每年给自己计划学一门语言

2022-03-07 22:34:12 426

原创 日常知识点之网络面试八股文(tcp,惊群现象,协程)

建立在一直学习的基础上,我总觉得对于下面的问题我能做出一些理解。但是我明白的知道,不做一做实际的整理或者测试,我的理解总有一种建立在理论之上,似懂非懂的感觉。结合百度,下面这些问题我按照自己的理解为自己做一些知识备份,如果有不对的知识点,请指正。。。0:总结把做以下梳理时,相关的理解写在前面。1:在整理listen和accept,以及半连接队列和全连接队列时,整理相关知识。listen后,开始三次握手,三次握手的过程中,内核协议栈会维持一个半连接队列和全连接队列。listen的参数backlo

2022-02-20 12:24:27 3240

原创 知识巩固源码落实之7:json协议使用cjson的构造和解析

网络传输中,数据交互也需要一些自定义协议,其实json就是最好用之一。使用cjson进行json字符串的构造,以及对其进行对应解析的测试代码。1:背景介绍JSNON作为一种轻量级的数据交互格式,易于阅读和编写,易于解析和生成。日常开发中对json的使用次数也越来越多。我常用的就是使用cjon以及jsoncpp对数据进行构造以及解析。cjson因为直接包含一个头文件和.c文件就可以使用,特别方便,这里整理一些使用cjson进行构造与解析的实例,做代码备份。2:测试代码2.1:构造json格式的

2022-02-15 22:22:53 1591

原创 知识巩固源码落实之6:c语言拼接字符串与切割字符串(strsep)代码

网络数据是以流的形式进行传输的(我们在构造客户端/服务端待发送数据时,肯定有特定的格式)。关于发送一次,一个包的完整性可靠接收(tcp的可靠传输,以及取数据的半包粘包问题)这里不关注,可以参考上文。这里的目的是:===》备份c语言字符处理相关方案===》备份自己在业务实现时,对字符串切割实现的一个接口(strstr,strcasestr,strsep,strtok,strdup相关接口)有如下几个细节可以关注:===》1:实现不同类型的数据拼接字符串的方案 (3.1)===》2:char**通

2022-02-15 17:36:25 2264

原创 知识巩固源码落实之5:http get异步请求数据demo(多线程+struct epoll_event的ptr)

1:背景介绍简单的实现一个客户端对http服务器的请求后,思考如果同时多个请求,如何有效的对代码进行设计,关注每个请求的回复。1.1:如果多个请求同时进行,异步实现http的特定是无连接的,一个tcp连接对应一个请求。===》基于这个特点,可以使用多线程,实现异步的架构===》线程1实现对http服务器的请求发送===》线程2实现关注服务器对请求的响应,如果不考虑长连接,可以考虑接收请求后断开连接。1.2:如何实现异步方案发送请求后,我们可以使用epoll对**可读事件(accept连接,r

2022-02-13 22:59:11 776

原创 知识巩固源码落实之4:http get同步请求数据demo

1:背景介绍http是基于C/S模式的,一直对如何实现http请求很疑惑。http的协议理论了解很多,却一直无从下手不知道怎么实现一个http的请求。作为一个http的客户端,请求服务器的一个消息,实现demo,做代码备份。1.1:协议简单了解这里实现一个http的get请求,获取对端服务器的响应进行打印,实现demo//http请求实际就是按照http协议,构造特定的数据,使用tcp进行发送 //请求行 请求头部 空行 请求数据 // GET %s %s\r\n resourc

2022-02-13 22:56:11 959

原创 知识巩固源码落实之3:缓冲区ringbuffer

1:背景介绍:在日常业务开发中,使用缓冲区进行临时存储的业务场景也比较多,如tcp每个连接底层都维持一个发送缓冲区和接收缓冲区。实现一个ringbuffer,做代码备用。(可以考虑如何对ringbuffer进行扩大?)//实现ringbuffer,其实就是申请一块内存,对塞入数据和取出数据位置分别进行管理typedef struct RINGBUFF_T{ void * data; unsigned int size; unsigned int read_pos; //数据起始位置 un

2022-02-13 20:27:25 550

原创 知识巩固源码落实之2:tcp服务端接收处理半包和粘包

1:背景介绍1.1:在处理tcp连接接收数据时,要考虑recv时(读取数据时),数据的半包,粘包问题===》tcp是可靠的流式传输,意味着对于每个连接,tcp可以按顺序,可靠的接收到对端消息。===》理解:对于每个连接(fd对应五元组),tcp协议栈底层维持了一个发送缓冲区和接收缓冲区。=====》对于一个连接,对应的自己的接收缓冲区,一系列的数据,按顺序塞入在了缓冲区中,recv只是从中取数据。=====》对于recv取接收缓冲区数据,需要一定策略(1:可能一次取到多个包(粘包) 2:可能rec

2022-02-13 19:43:33 743

原创 知识巩固源码落实之1:tcp服务端epoll实现

1:背景描述tcp网络通信是日常业务常常会重复实现的业务功能===》相关的socket接口:socket,bind,listen,accept,send,recv都是我们很熟悉的===》相关的io多路处理方案:select,poll,epoll可以根据业务场景自己抉择使用===》但其实,简单tcp服务器实现过程中,总有一些细节需要关注,===》以及考虑到每次重新实现,多次重写,开始思考备份一些代码。。。。2:tcp的服务器源码demo(epoll监听客户端连接及业务处理)作为tcp的服务器,使

2022-02-13 19:41:21 1050

原创 日常知识点之内存泄露定位手段(c语言hook malloc相关方式)

日常闲听公开课,又是自己不会的一个知识点,做笔记整理:如何确定有内存泄露问题,如何定位到内存泄露位置,如何写一个内存泄漏检测工具?1:概述内存泄露本质:其实就是申请调用malloc/new,但是释放调用free/delete有遗漏,或者重复释放的问题。内存泄露会导致的现象:作为一个服务器,长时间运行,内存泄露会导致进程虚拟内存被占用完,导致进程崩溃吧。(堆上分配的内存)如何规避或者发现内存泄露呢?===》1:如何检测有内存泄露?(除了内存监控工具htop,耗时,效果不明显)===》2:如何定位

2022-01-16 18:14:29 3229 6

原创 音视频学习之rtsp学习rtp协议的理解(rtp)

1:理论理解相关细节实际的媒体数据(视频/音频)的传输是通过rtp进行传输的。rtp可以基于udp进行发送,也可以基于tcp进行发送。 (这个有点疑问,看很多都说rtp是基于udp传输)==》那么乱序,丢包,以及一个图片资源过大,如何拆包相关逻辑呢rtp传输h264 图像资源,需要了解h264格式数据相关知识,以及如何进行封包发送以及接收后解包处理rtp传输AAC 音频文件,需要了解aac相关格式(aac有两种格式),同样思考如何封包以及解包。在进行rtsp测试的时候,发现音频如果按定时器发送帧

2022-01-15 01:24:43 6213

原创 音视频学习之闲看视频整理低延迟

2022年1月14日晚上闲听公开课:​ 课程题目是元宇宙引入音视频相关知识。​ 元宇宙相关话题不去理解,可以明确的是元宇宙有一个难点是音视频交互的低延迟。​ 老师讲解的低延迟相关概念,对于我来说感觉挺有意义,忍不住做笔记整理。1:了解延迟在推流,拉流相关业务(如直播),从数据的采集发送到客户端接收到数据后播放,其实是有一定的播放延迟的。如下图:使用rtmp(是基于tcp进行传输的)进行推流,然后使用不同方式对rtmp拉流播放,延迟误差。从图中可以看出:​ ===》使用ffplay进行播放时

2022-01-15 00:17:07 3194

原创 音视频学习之rtsp推拉流学习2(流媒体服务器ZLMediaKit)

公司项目需要实现一个只是rtsp推流和rtsp拉流的业务机制,据说ZLMediaKit能满足rtsp推拉流的相关业务。对ZLMediaKit流媒体服务器进行安装以及了解。0:从开源库Readme中对其功能进行了解简单认识ZLMediaKit,了解ZLMediaKit能实现的基本功能,我的理解是他就是一个流媒体服务器。1:ZLMediaKit环境搭建使用linux虚拟机环境进行环境搭建,并启动:#ZLMediaKit采⽤了C++11的语法和库,要求编译器⽀持完整的C++11标准。sudo ap

2022-01-13 17:57:32 6252

空空如也

空空如也

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

TA关注的人

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