- 博客(497)
- 资源 (20)
- 收藏
- 关注
原创 TightVNC H264编解码(一)
经过尽二个月的不断摸索,TightVNC终于支持H264编解码了,前期真正编写H264编解码器只花了一周左右时间,但是测试发现效果并不是太理想(帧率太低,延迟大),这大概是所有远程控制软件要处理的通病吧。作为一位经验丰富的程序员,造成这种问题的原因,有以下几点:1、抓屏?2、H264编码?3、TCP网络发送?4、H264解码?5、视频渲染?为了排除到底哪个环节出了问题,看来不摸透底层事务流程是行不通的,不得已摸透代码画出了下面这个简陋的流程图。Server端事务处理流程图.
2021-12-31 21:25:36 1753 6
原创 QT HttpServer
资源从网上收集,包含httpserver、sslserver、http-parser三个模块,解决了编译过程中由于路径引用错误问题。下载链接:https://download.csdn.net/download/u012156872/20664799,下载编译即可应用到自己项目中,简单快速,不用造车。...
2021-07-31 11:57:38 948
原创 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 1812
原创 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 3304 6
原创 QT DPI窗口缩放问题
有时候,我们设计好了软件,结果软件到了客户那里运行,界面显示效果非常差,或者界面显示变大了,或者界面变得非常小,严重影响视觉效果,究其原因是因为不同的客户系统环境下DPI不同,从而导致界面显示非常不协调。通常情况下,我们的DPI值为96(具体对应下面的缩放百分比%),当等于96dpi,缩放系数是100%,当大于96时,缩放系数就会大于100%(比如125%、150%等等),针对显示器分辨率高的机型,缩放系数通常会大于100%,系统的整个字体会进行放大,人眼看屏幕就会比较吃力。
2024-11-13 12:19:33 171
原创 C++ Json中文乱码问题
但是不知道从哪个版本开始,Json内部会自动将中文变为Unicode编码格式,也就是\u打头的字符串,这个字符串其实就是将中文转换为了Unicode格式,如果再次将strJson转换为utf-8编码发送给对方,这个时候对方接收显示的时候肯定就是乱码了。改为以后,之前cJson赋值咋样,我们得到的strJson就是咋样!
2024-07-14 23:58:38 581
原创 C++ linux下FFmpeg转发摄像头视频流
在liunx下,捕获摄像头视频流有2种方案,一种是使用ffmpeg捕获流,另一种是使用v4l2接口捕获视频流。前者使用方法简单,但是有后遗症,并不是所有型号摄像头都能够获取成功,这就是我写这篇文章的目的。老规矩,直接粘贴代码(这里虽然是使用Qt代码格式,稍加变换,即可支持其他平台)。源文件申明(PushVideoThread.cpp)
2024-06-19 09:17:30 469
原创 QT MySQL驱动
在某些场合QT自带的QSQLDatabase驱动有效,但是open的时候,程序直接崩溃了,原因未知。不得已将上次使用过的。根据QT接口进行改动,进行无缝衔接。
2024-05-14 17:14:06 267
原创 QT vlc音视频开发踩坑
为此我检查错误耗时将近1整天时间,甚至于都一度怀疑人生(之前在VC++下开发一切顺利)。SDK初始化一切顺利,最终在调用如下代码的时候始终失败,返回NULL值。问题解决,原来如此简单啊!
2024-05-11 16:50:59 250
原创 QT 无标题栏窗口的拖动和拉伸
如下2种方案,2种方案都不完美(拉伸窗口都会抖动),但是如果一定要使用,强烈推荐第1种方案(可减小拉伸时窗口抖动)
2023-12-14 01:55:47 590
原创 QT QCefView自编译
6、回到QCefView目录,执行批处理generate-win-x86_64.bat即可,出现如下信息表示生成成功。5、设置QT版本,修改配置文件QCefView/cmake/QtConfig.cmake,如下。4、请根据对应的版本修改编译文件CefViewCore/CMakeLists.txt,如下。2、下载QCefViewCore,放到QCefViewCore目录下,地址。请注意最新版本兼容性可能存在问题,我下载的版本是。1、下载QCefView,地址。3、下载Cef库文件,地址。
2023-12-09 12:18:20 720
原创 Ubuntu 配置共享文件夹
安装虚拟机经常会遇到已经共享了文件夹,但是就是找不到目录文件,搜集网上资料,汇总一下指令,留作以后备用吧:vmware-hgfsclient在文件最后一行添加如下内容:
2023-10-26 15:13:32 545
原创 C++ OleDB数据库驱动(MySql驱动姊妹篇)
这里只介绍OelDB调用数据的方法。OleDB因为兼容ODBC和ADO,所以受大众追捧。大家也都非常熟悉了,这里就直接上代码吧。
2023-10-11 08:26:00 314
原创 Visual Assist X插件安装失败总结
2、安装成功以后,却显示插件无法启用,或者是插件启动了,但是实则没有启动,看不到插件选项。1、如果是运行VA_X_SETUP.exe无反应,无法启动,请右键属性,修改兼容模式。3、此时重启应该就正常了。
2023-09-27 11:09:07 1489
原创 常用时间日期格式符号定义
编程过程中经常会用到时间日期格式化,这里是一些常见的日期时间格式字符定义的列表:年份:yyyyyy月份:MMMMMM天数:ddd小时:hhh分钟:mmm秒数:sss毫秒:zzzz星期几:dddddddAP时区:t。
2023-09-27 09:22:42 5553
原创 C++ MFC中如何根据不同文件编码格式读取和显示文件内容
这里假设VC++的字符集编码格式是Unicode,要显示的文本内容是strResult。上一篇,介绍了写文件,这一篇我要介绍的如何读取文件内容并显示出来。3、读取unicode-le编码格式的文本文件。4、读取unicode-be编码格式的文本文件。2、读取utf-8编码格式的文本文件。1、读取ANSI编码格式的文本文件。
2023-09-17 21:45:02 923
原创 C++ MFC中如何根据不同文件编码格式创建和写文本内容
这里假设VC++的字符集编码格式是Unicode,要写入的文本内容是m_strTEXT。3、保存unicode-le编码格式的文本文件。4、保存unicode-be编码格式的文本文件。2、保存utf-8编码格式的文本文件。1、保存ANSI编码格式的文本文件。
2023-09-17 21:32:35 656
原创 C++ COM接口调用
那如果这个dll更新特频繁,每次都需要反注册,再重新注册,似乎有那么一点点的烦人哦。既然COM组件也是一种库文件,那有没有一种调用方法,像调用动态链接库那样先加载,再寻址,最后调用呢?代码虽然复杂很多,但是目的我们是达到了,庆祝一下吧!前提条件:COM是VSC++编写的,先引用头文件。
2023-09-14 13:02:03 505
原创 C++ OSD水印叠加
视频相关领域(监控、LED大屏)很多场合可能会涉及到在一幅画面上进行文字或时间的叠加,常规做法都是在后端实现,即先渲染图像,然后叠加OSD文字信息,这种方法简单且高效。但是有些场合必须要求在前端进行叠加,比如监控领域中视频名称信息、时间信息等这些都需要在前端图像编码的时候就已经叠加到图像上,以防止用户修改和验伪。示例中采用jpeg图像作为底图,所以需要借助libjpeg将图像解码还原RGB原始图像数据,叠加OSD文字信息需借助freetype生成点阵RGB图像数据,然后对2个图像进行像素合并或重写。
2023-09-06 13:49:38 663
原创 C++ MySql驱动
5. 扩展性:MySQL支持水平扩展和垂直扩展,可以方便地增加或减少服务器的数量、内存和存储容量,以满足不断增长的需求。8. 社区支持:MySQL拥有庞大的开源社区,用户可以通过社区获取帮助、分享经验和参与开发,获得及时的技术支持。6. 兼容性:MySQL遵循SQL标准,与其他常见的数据库系统兼容,能够无缝迁移和集成现有的数据和应用程序。4. 高性能:MySQL采用了多种优化策略和技术,如索引、缓存、分区等,以提供快速的读写操作和响应时间。
2023-09-06 13:36:54 390
原创 QGIS 点位标注(续)
在上一篇中,我们图层所有的点位图标都是一样的,但是实际应用中可能每个点位所对应的图标确是不一样的,例如城镇里面的医院、超市、学校等等,都需要用不同的图标来进行标注。
2023-08-29 23:14:20 242
原创 QGIS 点位标注
已知点的经纬度信息,将点添加到地图中,并用指定的图标标注显示出来。思路很简单:首先创建一个图层,然后图层添加点位信息,最后设置该图层点位信息所关联的图标(注意这里图层所有的点位图标都是一样的)
2023-08-29 23:13:59 2541
原创 C++ Windows上键盘拦截
如果是键盘拦截,需要将KeyboardHookCallback函数事件进行处理,接收消息以后直接返回,而不是将事件传递给下一个钩子或默认过程。如果是仅仅拦截某个进程键盘事件,只需要修改SetWindowsHookEx第3、4个参数即可。
2023-08-24 09:38:30 383
原创 C++ Boost写一个简单的HttpServer文件下载服务器
如果需要在文件下载的响应头中包含文件名,可以添加一个Content-Disposition标头字段。
2023-08-05 00:09:03 506
原创 MSYS2+MinGW编译SDL2静态库
这将编译SDL2并将其安装到MSYS2的默认路径/home/Administrarot/install/SDL2中。2、下载SDL2源代码:从SDL2的官方网站(1、安装MSYS2:从MSYS2的官方网站(
2023-07-27 08:48:14 688
原创 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 507
原创 C++ 使用SDL显示RGB图像数据
4、创建一个SDL_Texture对象,并从表面复制数据到纹理中。3、创建一个SDL_Surface对象,用于存储RGB图像数据。2、创建一个SDL窗口和渲染器对象,以便在屏幕上显示图像。5、清空渲染器,并将纹理复制到渲染器中。1、包含必要的头文件。
2023-07-25 08:02:07 636
原创 C++ ffmpeg+SDL音视频播放封装类
示例中展示了音频播放的2种思路,一种是回调,另外一种直接通过SDL_QueueAudio直接写入音频数据。目前类的封装还不够完美,并没有考虑音视频同步播放的问题。如果要考虑音视频同步,建议参考ffplay.c源码进行修改。1、包含必须的头文件。
2023-07-24 16:34:25 297
原创 QT 使用ffmpeg+QOpenGLWidget进行图像渲染
采用OpenGL渲染图像,相比传统的QImage效率着实要高很多。1、包含必须的头文件。
2023-07-22 08:57:11 1082
原创 C++ linux下使用X11实现屏幕截图
以上代码为单张图片截取方式,如果要实现连续截图(如共享桌面),这种方式效率极低。函数从根窗口中获取图像数据。你可以根据需要对该图像数据进行处理,例如保存为文件或者进行其他图像操作。与之前的示例程序相比,主要区别在于使用了XShm相关函数来创建共享内存段和进行屏幕截图。函数创建一个共享内存图像,并将其关联到根窗口的属性中。函数创建一个共享内存段,并将其附加到图像数据上。函数将共享内存附加到X服务器,并调用。函数将共享内存从X服务器分离,并使用。函数将共享内存从当前进程分离,通过。
2023-07-20 11:40:42 1217 4
原创 C++ 使用ffmpeg将本地视频推送到远程服务器
来启用编码延迟的低延迟标志。这有助于减少编码的延迟。1、包含必须的头文件。在上述代码中,设置了。
2023-07-19 10:24:03 754
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关注的人