- 博客(486)
- 资源 (20)
- 收藏
- 关注

原创 TightVNC H264编解码(一)
经过尽二个月的不断摸索,TightVNC终于支持H264编解码了,前期真正编写H264编解码器只花了一周左右时间,但是测试发现效果并不是太理想(帧率太低,延迟大),这大概是所有远程控制软件要处理的通病吧。作为一位经验丰富的程序员,造成这种问题的原因,有以下几点:1、抓屏?2、H264编码?3、TCP网络发送?4、H264解码?5、视频渲染?为了排除到底哪个环节出了问题,看来不摸透底层事务流程是行不通的,不得已摸透代码画出了下面这个简陋的流程图。Server端事务处理流程图.
2021-12-31 21:25:36
1241
6

原创 QT HttpServer
资源从网上收集,包含httpserver、sslserver、http-parser三个模块,解决了编译过程中由于路径引用错误问题。下载链接:https://download.csdn.net/download/u012156872/20664799,下载编译即可应用到自己项目中,简单快速,不用造车。...
2021-07-31 11:57:38
687

原创 QT 界面设计篇(水波纹进度条QProgressBarWater)
效果图:头文件声明(QProgressBarWater.h):#ifndef QPROGRESSBARWATER_H#define QPROGRESSBARWATER_H#include <QWidget>#include <QPainter>#include <QPaintEvent>class QProgressBarWater : public QWidget{ Q_OBJECTpublic: explic.
2020-11-30 19:23:48
1445

原创 EasyPR编译指南
1、下载源码https://github.com/liuruoze/EasyPRDownloadZIP或者git(https://github.com/liuruoze/EasyPR.git)将代码解压到硬盘目录下。例如F:\车牌识别\EasyPR(车牌识别)\EasyPR2、双击解决方案文件EasyPR.sln,用VSIDE(这里使用VS2019)打开,提示点击确定。3、选择libeasypr项目,编译出现如下错误这是因为没有配置OpenCV环境所致。4、...
2020-08-02 18:09:09
2987
6
原创 Ubuntu 配置共享文件夹
安装虚拟机经常会遇到已经共享了文件夹,但是就是找不到目录文件,搜集网上资料,汇总一下指令,留作以后备用吧:vmware-hgfsclient在文件最后一行添加如下内容:
2023-10-26 15:13:32
47
原创 C++ OleDB数据库驱动(MySql驱动姊妹篇)
这里只介绍OelDB调用数据的方法。OleDB因为兼容ODBC和ADO,所以受大众追捧。大家也都非常熟悉了,这里就直接上代码吧。
2023-10-11 08:26:00
80
原创 Visual Assist X插件安装失败总结
2、安装成功以后,却显示插件无法启用,或者是插件启动了,但是实则没有启动,看不到插件选项。1、如果是运行VA_X_SETUP.exe无反应,无法启动,请右键属性,修改兼容模式。3、此时重启应该就正常了。
2023-09-27 11:09:07
309
原创 常用时间日期格式符号定义
编程过程中经常会用到时间日期格式化,这里是一些常见的日期时间格式字符定义的列表:年份:yyyyyy月份:MMMMMM天数:ddd小时:hhh分钟:mmm秒数:sss毫秒:zzzz星期几:dddddddAP时区:t。
2023-09-27 09:22:42
393
原创 C++ MFC中如何根据不同文件编码格式读取和显示文件内容
这里假设VC++的字符集编码格式是Unicode,要显示的文本内容是strResult。上一篇,介绍了写文件,这一篇我要介绍的如何读取文件内容并显示出来。3、读取unicode-le编码格式的文本文件。4、读取unicode-be编码格式的文本文件。2、读取utf-8编码格式的文本文件。1、读取ANSI编码格式的文本文件。
2023-09-17 21:45:02
173
原创 C++ MFC中如何根据不同文件编码格式创建和写文本内容
这里假设VC++的字符集编码格式是Unicode,要写入的文本内容是m_strTEXT。3、保存unicode-le编码格式的文本文件。4、保存unicode-be编码格式的文本文件。2、保存utf-8编码格式的文本文件。1、保存ANSI编码格式的文本文件。
2023-09-17 21:32:35
138
原创 C++ COM接口调用
那如果这个dll更新特频繁,每次都需要反注册,再重新注册,似乎有那么一点点的烦人哦。既然COM组件也是一种库文件,那有没有一种调用方法,像调用动态链接库那样先加载,再寻址,最后调用呢?代码虽然复杂很多,但是目的我们是达到了,庆祝一下吧!前提条件:COM是VSC++编写的,先引用头文件。
2023-09-14 13:02:03
153
原创 C++ OSD水印叠加
视频相关领域(监控、LED大屏)很多场合可能会涉及到在一幅画面上进行文字或时间的叠加,常规做法都是在后端实现,即先渲染图像,然后叠加OSD文字信息,这种方法简单且高效。但是有些场合必须要求在前端进行叠加,比如监控领域中视频名称信息、时间信息等这些都需要在前端图像编码的时候就已经叠加到图像上,以防止用户修改和验伪。示例中采用jpeg图像作为底图,所以需要借助libjpeg将图像解码还原RGB原始图像数据,叠加OSD文字信息需借助freetype生成点阵RGB图像数据,然后对2个图像进行像素合并或重写。
2023-09-06 13:49:38
170
原创 C++ MySql驱动
5. 扩展性:MySQL支持水平扩展和垂直扩展,可以方便地增加或减少服务器的数量、内存和存储容量,以满足不断增长的需求。8. 社区支持:MySQL拥有庞大的开源社区,用户可以通过社区获取帮助、分享经验和参与开发,获得及时的技术支持。6. 兼容性:MySQL遵循SQL标准,与其他常见的数据库系统兼容,能够无缝迁移和集成现有的数据和应用程序。4. 高性能:MySQL采用了多种优化策略和技术,如索引、缓存、分区等,以提供快速的读写操作和响应时间。
2023-09-06 13:36:54
122
原创 QGIS 点位标注(续)
在上一篇中,我们图层所有的点位图标都是一样的,但是实际应用中可能每个点位所对应的图标确是不一样的,例如城镇里面的医院、超市、学校等等,都需要用不同的图标来进行标注。
2023-08-29 23:14:20
61
原创 QGIS 点位标注
已知点的经纬度信息,将点添加到地图中,并用指定的图标标注显示出来。思路很简单:首先创建一个图层,然后图层添加点位信息,最后设置该图层点位信息所关联的图标(注意这里图层所有的点位图标都是一样的)
2023-08-29 23:13:59
474
原创 C++ Windows上键盘拦截
如果是键盘拦截,需要将KeyboardHookCallback函数事件进行处理,接收消息以后直接返回,而不是将事件传递给下一个钩子或默认过程。如果是仅仅拦截某个进程键盘事件,只需要修改SetWindowsHookEx第3、4个参数即可。
2023-08-24 09:38:30
115
原创 C++ Boost写一个简单的HttpServer文件下载服务器
如果需要在文件下载的响应头中包含文件名,可以添加一个Content-Disposition标头字段。
2023-08-05 00:09:03
150
原创 MSYS2+MinGW编译SDL2静态库
这将编译SDL2并将其安装到MSYS2的默认路径/home/Administrarot/install/SDL2中。2、下载SDL2源代码:从SDL2的官方网站(1、安装MSYS2:从MSYS2的官方网站(
2023-07-27 08:48:14
185
原创 MSYS2+MinGW编译ffmpeg库
vcpkg采用VS编译器编译ffmpeg可以顺利通过,但是使用MinGW编译器编译ffmpeg存在报错问题。于是打算采用msys2环境下重新对ffmpeg进行编译。2、下载并解压ffmpeg源码(我这里msys2安装目录是G:\msy264)4、进入ffmpeg目录,执行指令对ffmpeg编译环境进行配置。5、配置完ffmpeg,执行指令即可完成。3、打开msys2。
2023-07-26 11:10:14
266
原创 C++ 使用SDL显示RGB图像数据
4、创建一个SDL_Texture对象,并从表面复制数据到纹理中。3、创建一个SDL_Surface对象,用于存储RGB图像数据。2、创建一个SDL窗口和渲染器对象,以便在屏幕上显示图像。5、清空渲染器,并将纹理复制到渲染器中。1、包含必要的头文件。
2023-07-25 08:02:07
285
原创 C++ ffmpeg+SDL音视频播放封装类
示例中展示了音频播放的2种思路,一种是回调,另外一种直接通过SDL_QueueAudio直接写入音频数据。目前类的封装还不够完美,并没有考虑音视频同步播放的问题。如果要考虑音视频同步,建议参考ffplay.c源码进行修改。1、包含必须的头文件。
2023-07-24 16:34:25
123
原创 QT 使用ffmpeg+QOpenGLWidget进行图像渲染
采用OpenGL渲染图像,相比传统的QImage效率着实要高很多。1、包含必须的头文件。
2023-07-22 08:57:11
397
原创 C++ linux下使用X11实现屏幕截图
以上代码为单张图片截取方式,如果要实现连续截图(如共享桌面),这种方式效率极低。函数从根窗口中获取图像数据。你可以根据需要对该图像数据进行处理,例如保存为文件或者进行其他图像操作。与之前的示例程序相比,主要区别在于使用了XShm相关函数来创建共享内存段和进行屏幕截图。函数创建一个共享内存图像,并将其关联到根窗口的属性中。函数创建一个共享内存段,并将其附加到图像数据上。函数将共享内存附加到X服务器,并调用。函数将共享内存从X服务器分离,并使用。函数将共享内存从当前进程分离,通过。
2023-07-20 11:40:42
519
1
原创 C++ 使用ffmpeg将本地视频推送到远程服务器
来启用编码延迟的低延迟标志。这有助于减少编码的延迟。1、包含必须的头文件。在上述代码中,设置了。
2023-07-19 10:24:03
190
原创 C++ OpenGL显示YUV图像数据
2、创建一个窗口并进行OpenGL上下文初始化。1、包含OpenGL的头文件和库。4、加载YUV图像数据到纹理中。3、定义顶点和纹理坐标的数组。5、清空缓冲区,并绘制纹理。6、刷新缓冲区,显示图像。7、释放资源和上下文。
2023-07-16 08:17:52
168
原创 C++ 使用SDL显示YUV图像数据
3、创建一个SDL_Texture对象,用于存储YUV图像数据。2、创建一个SDL窗口和渲染器对象,以便在屏幕上显示图像。5、清空渲染器,并将纹理复制到渲染器中。4、YUV数据填充到纹理中。
2023-07-16 07:52:03
208
VC++/Delphi下可用的GIS控件MapWinGIS(ocx)
2021-03-31
MapWinGis第3方库
2021-01-25
libzdb-3.2.2.zip
2020-08-18
HTTP网络文件服务器(Delphi版)
2020-03-25
ZIP包格式压缩/解压缩
2019-12-31
工程制图软件
2018-06-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人