自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 VS 中调用调试DLL库的方法

4、在配置框中选择附加到为本机代码,在可选进程中选择使用dll库程序的exe,配置完成之后点击底下附加即可完成配置。1、当前代码是最新的,并且编译成dll的库有程序使用。1、使用VS打开要调试的dll库项目。3、点击附加到进程,弹出配置框。2、点击调试菜单展开调试菜单。2、打开运行dll库的程序。

2024-01-15 11:19:21 1131

原创 VS中动态库的创建和调用

​库是写好的现有的,成熟的,可以复用的代码。库的存在形式本质上来说库是一种可执行代码的二进制。​ 库有两种:静态库(.a、.lib)和动态库(.so、.dll)。所谓静态、动态是指链接阶段,静态库的链接阶段是在项目编译的时候静态链接。动态库是在程序运行的时候由代码加载链接。​ 静态库和动态库的区别主要是在链接阶段处理库的方式不同而区分的。

2024-01-11 11:31:16 1301

原创 nodejs服务器搭建

搭建nodejs服务器首先要安装nodejs运行时,安装完成之后使用js编写服务器内容。编写完之后发布即可。

2023-11-08 14:59:34 202

原创 Linux中搭建coturn服务器

问题1:ERROR: OpenSSL Crypto development libraries are not installed properly in required location.参考链接:https://blog.csdn.net/lepaitianshi/article/details/123778506。解决办法:sudo apt-get install libssl-dev 执行此命令安装libssl。3、执行make install 安装。2、进入到coturn路径下,执行一下命令。

2023-11-01 14:58:35 892

原创 Qt中串口模块的使用

在Qt的拓展模块中,Qt提供了许多的结果通讯模块,有串口、can、 ModBus等。下面就简单介绍一些Qt中的串口模块。Qt串口提供基本功能,包括配置、I/O操作、获取和设置RS-232引脚的控制信号。Qt串口模块不支持以下功能:终端功能,如回声、控制CR/LF等。文本模式。配置读取或写入时的超时和延迟。引脚输出信号更改通知。特殊收发器条件,如帧错误、奇偶校验错误和中断条件错误。

2023-11-01 12:51:37 896

原创 Linux下搭建SRS服务器环境

推送流成功之后,使⽤srs⾃带的rtc_player播放器进⾏播放,直接请求srs服务的8080端⼝即可。以上命令中的ip地址是服务器所在的window系统的ip地址。以上命令中的ip地址是服务器所在的window系统的ip地址。1、指定配置文件,即可启动srs。1、使用ffmpeg命令推流。1、使用ffmpeg命令推流。2、使用WebRTC拉流。

2023-10-31 15:34:04 730

原创 Window下SRS服务器的搭建

Docker 实质上是在已经运行的 Linux 下制造了一个隔离的文件环境,因此它执行的效率几乎等同于所部署的 Linux 主机。6、执行 ./objs/srs -c conf/srs.conf命令启动srs服务。推送流成功之后,使⽤srs⾃带的rtc_player播放器进⾏播放,直接请求srs服务的8080端⼝即可。执行完成之后,执行ls命令,出现srs的文件结构就说明映射成功了。以上命令中的ip地址是服务器所在的window系统的ip地址。以上命令中的ip地址是服务器所在的window系统的ip地址。

2023-10-31 15:30:07 2015

原创 WebRTC介绍

(Web Real-Time Communications)是一项实时通讯技术,它允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点(Peer-to-Peer)的连接,实现视频流和(或)音频流或者其他任意数据的传输。WebRTC 包含的这些标准使用户在无需安装任何插件或者第三方的软件的情况下,创建点对点(Peer-to-Peer)的数据分享和电话会议成为可能。它于2011年6月1日开源并在Google、Mozilla、Opera支持下被纳入万维网联盟的W3C推荐标准。

2023-10-30 16:52:11 64

原创 Window下coturn服务器的搭建

出现此问题是由于Cygwin中没有安装openssl,如果在编译之前添加了openssl应该不会出现此问题,如果添加了还出现此问题,建议再添加openssllib。2、下载coturn源码,地址:https://codeload.github.com/coturn/coturn/zip/4.5.0.4。1、安装Cygwin,地址:https://cygwin.com/install.html。出现此问题是由于在Cygwin中没有安装libevent,添加之后应该就会出现此问题。

2023-10-30 14:54:52 925

原创 IDE的组成

和GCC的关系:Cygwin是让Windows拥有Unix-like环境的软件而不是编译器,GCC是安装在Cygwin上的编译器。和GCC的关系:MinGW是编译环境,不是编译器,GCC是MingW中的核心组成。GCC:GCC原名GNU C Compiler,后来逐渐支持更多的语言编译(C++、Fortran、Pascal、Objective-C、Java、Ada、Go等),所以变成了GNU Compiler Collection(GNU编译器套装),是一套由GNU工程开发的支持多种编程语言的编译器。

2023-10-27 13:19:08 1258

原创 Qt中绘图框架的使用例子

当在视图中创建场景时,场景的坐标范围为场景矩形框的顶点加上长宽,例如在视图中添加一个场景矩形框为(-100,100,200,200)那么场景区域的左上角坐标为(-100,100),宽度为200,高度为200,也就是说视图的坐标范围为(-100,100)和(100,300),而对应的坐标原点(0,0)不在此范围之内。不设置setpos()坐标,这个时候会默认和场景中的坐标对应,也就是说这种情况下图形项的坐标和场景中的坐标是一一对应的。但是一般情况下载创建图形项的时候会将(0,0)点设置为图形项的中心点。

2023-10-18 10:24:20 192

原创 Qt中绘图框架介绍

Qt为了解决QPainter绘图无法绘制复杂的图形和不能实现图件的选择、编辑、拖放、修改等问题,引入了Graphics View绘图框架。Graphics View提供了一种基于项目的模型视图编程方法。Graphics View提供了一个用于管理和大量定制的2D图形项目交互的界面,以及一个用于可视化项目并支持支持缩放和旋转的视图小部件。此外该框架包括一个事件传播架构,允许对场景中的项目进行精确的双精度交互。项目可以处理按键事件、鼠标按下、移动、释放和双击事件和跟踪鼠标移动。

2023-10-18 10:18:23 238

原创 Qt 中图像的绘制

Qt有个绘画系统,这个系统是能够使用相同的API在屏幕和打印设备上进行绘画,主要基于主要基于QPainter、QPaintDevice和QPaintEngine类。QPainter用于执行绘图操作,QPaintDevice是可以使用QPainter在其上绘制的二维空间的抽象,QPaintEngine提供了画家用于在不同类型的设备上绘制的接口。QPaintEngine类由QPainter和QPaintDevice内部使用,并且对应用程序程序员隐藏,除非他们创建自己的设备类型。QPainter介绍。

2023-10-12 17:22:22 342

原创 问题:Qt中软件移植到笔记本中界面出现塌缩

DPI是指每英寸的像素,也就是扫描精度。DPI越低,扫描的清晰度越低,由于受网络传输速度的影响,web上使用的图片都是72dpi,但是冲洗照片不能使用这个参数,必须是300dpi或者更高350dpi。是衡量打印机打印精度的主要参数之一,一般来说,DPI值越高,表明打印机的打印精度越高。DPI(Dots Per Inch,每英寸点数)是一个量度单位,用于点阵数码影像,指每一英寸长度中,取样、可显示或输出点的数目。这是由于软件之前运行的设备DPI较低,移植到笔记本中显示设备DPI较高,导致窗体显示进行了缩放。

2023-10-12 10:37:13 350

原创 C++关键和宏

指令将标识符 定义为宏(macro),即指示编译器以将在它之后出现的所有标识符 都替换为替换列表,而它也可以被进一步处理。指定构造函数或转换函数 (C++11 起)或推导指引 (C++17 起)为显式,即它不能用于隐式转换和复制初始化。inline 说明符,在用于函数的 声明说明符序列 时,将函数声明为一个 内联(inline)函数。在命名空间块内声明的符号被放入一个具名的作用域中,避免这些符号被误认为其他作用域中的同名符号。若作用域中存在具有与某个类类型的名字相同的名字的函数或变量,则。

2023-10-10 15:35:42 63

原创 Qt中INI 配置文件的读写操作

在qt的官方文档中有说明QSettings类有两种使用方式,一中是将其属性通过QSettings配置到系统的注册表中,另一种就是保存为本地的ini文件。这种使用方式可以方便配置文件的修改,但是在软件使用过程中无法做到全局通用,不过可以使用C++的单例模式实现全局唯一的使用方式。还有就是通过以上方式设置的属性值夜可以直接通过注册表进行访问,以上方法主要适用于设置全局通用的属性,使用以上方法相对方便。(这是qt中的例子)至此,注册表的属性设置就完成了,这里需要注意的就是各个系统中注册表的区别。

2023-09-28 10:42:45 789

原创 Qt 中文件操作

也可以调用QIODevice继承的函数read()、readLine()、readAll()和write()。QFile还继承了getChar()、putChar()和ungetChar(),它们一次处理一个字符,size()返回文件的大小。您可以使用pos()获取当前文件位置,也可以使用seek()移动到新文件位置。也可以使用exists()检查文件是否存在,使用remove()删除文件。该文件使用open()打开,使用close()关闭,并使用flush()刷新。2、使用open()函数打开文件。

2023-09-27 17:12:44 511

原创 Qt中文件夹的操作

可以使用 exists() 测试具有给定名称的目录的存在,并且可以使用 isReadable()、isAbsolute()、isRelative() 和 isRoot()来测试目录的属性。在QDir中可以使用相对路径或相对路径进行访问文件地址。1、在使用mkpath()创建和rmpath()删除路径的时候,不能在构造的时候传入路径,传入路径之后将无法删除成功和创建文件夹乱的问题。2、在使用mkdir()和remove()删除文件夹的时候需要使用SetPath()函数设置路径,不然会删除其他文件夹。

2023-09-27 17:11:41 375

原创 CMake、QMake和编译器的关系

目前这是小编理解的关系,在window中使用到GCC编译器的变体之后,为了方便编译,qt就使用了qmake,而CMake相比qmake更加强大,目前小编在VS中使用。小编理解应该不是很透彻,如果有人看出问题,请不吝赐教,在此多谢。

2023-09-27 10:58:57 95

原创 C++的作用域和命名空间

命名空间可以像头文件一样进行引用,当命名空间引入之后就在调用的时候可以不适用命名空间的名字进行限定,需要注意的如果这里引入的两个命名空间,两个命名空间有重复的函数或者数据,还是需要使用命名空间限定的,不然还是会产生二义性的。命名空间的定义是可以叠加的,就是当你在一个文件中使用了命名空间,并将类A添加到命名空间,在另一个文件中也进行定义同名的命名空间,并将类B添加到命名空间中。​ 函数作用域说是的就是在函数中定义的数据,这里也包括函数的形参,此作用域中的形参或者在函数中定义的变量都只能在此函数中使用。

2023-09-24 16:55:56 231

原创 C++初始

以上的C++工程中只有一个简单的main函数,而main函数是C++运行的起始也就是函数,所有的程序包括C语言都有一个起始函数,C语言的起始函数也是main函数。作用域说完了,也知道了程序的运行范围,那么下一步就需要了解关键字了,因为无论是函数的定义还是数据的定义都离不开关键字,可以说是关键字是C++程序编写必不可少的一部分,没有关键字C++就没有语法,更谈不上编程。首先是建立一个C++工程,一个简单的C++工程包含就包含一个简单的CPP文件和.h文件,一下就是一个简单的VSC++工程。

2023-09-24 16:54:51 102

原创 Qt 中多媒体模块的使用

Qt 中摄像头的使用是在Qt Multimedia模块中。Qt Multimedia是一个重要模块,它提供了一组丰富的QML类型和C++类来处理多媒体内容。它还提供了访问相机和无线电功能所需的API。随附的Qt音频引擎提供了用于3D位置音频播放和内容管理的类型。Qt中的多媒体支持由模块提供。Qt多媒体模块提供了丰富的功能集,能够轻松利用平台的多媒体功能,例如媒体播放以及相机和无线电设备的使用。实现适用于Windows的Qt多媒体功能在两个插件中实现;

2023-09-14 09:36:07 427

原创 Qt中音频的使用

以上可以完成最基本的音频录制,但是如果想使用更高端的录制,例如在录制的时候显示音频的想干信息。4、设置保存的音频格式,通过QAudioRecorder对象的setAudioSettings函数设置,设置参数为QAudioEncoderSettings。2、创建QAudioRecorder对象,指定使用的音频设备,通过QAudioRecorder的setAudioInput函数设置。6、在音频列表中选择需要播放的音频,使用QMediaPlaylist对象的setCurrentIndex函数,参数为音频标号。

2023-09-14 09:35:15 689

原创 QT中摄像头的使用

QT中摄像头的使用

2023-09-13 15:10:36 1208

原创 Qt中ffmpeg API存储和显示摄像头视频

在了解使用api之前,还需要先了解一下ffmpeg中的相关结构体,在了解了这些结构体之后,可以更容易的理解代码。:此结构体存储音视频封装格式中包含的信息,并且这个结构体是贯穿整个播放流程的。在这个结构体中主要包含AVInputFormat,AVOutputFormat、AVStream等。// 输入数据的封装格式// 输入数据的缓存// 音视频流的个数// 音视频流// 文件名// 时长(单位:微秒us,转换为秒需要除以1000000)// 比特率(单位bps,转换为kbps需要除以1000)

2023-08-04 15:17:10 1315

原创 ffmpeg函数介绍

【代码】ffmpeg函数介绍。

2023-08-03 15:45:03 88

原创 FFmpeg中相关结构体介绍

该结构描述解码的(原始的)音频或视频数据。AVFrame必须使用av_frame_alloc()进行分配。请注意,这只是分配AVFrame本身,必须管理数据的缓冲区通过其他方式。AVFrame必须使用av_frame_free()释放。:此结构体存储音视频封装格式中包含的信息,并且这个结构体是贯穿整个播放流程的。**AVCodecContext:**是一个描述编解码器上下文的结构体,包含了众多编解码器需要的参数信息。:是存储压缩编码数据相关信息的结构体。:是存储编码器信息的结构体。

2023-08-03 15:43:39 829

原创 QT中使用ffmpeg的api进行视频的播放

初始化libavdevice并且注册所有的输入和输出设备。分配AVFormatContext。此函术分配的AVFormatContext结构体需要avformat_free_context()来释放上下文以及框架在其中分配的所有内容。返回值:分配的AVFormatContext结构体。功能:打开输入流并读取标题,并将视频信息写入到AVFormatContext中。打开输入流并读取标题。编解码器如果未打开。流必须使用avformat_close_input()关闭。

2023-08-03 15:33:25 1670 8

原创 Qt 中引入ffmpeg 动态库

ffmpeg qt 库

2023-08-02 18:01:48 1358 1

原创 Qt中线程的使用

qt中线程的使用

2023-07-28 14:57:11 495

原创 qt 使用qtpdfium实现读取pdf文件

目前小编根据推荐的编译方法,没有成的编译出来一个库文件:先试用qt的msvc 进行qmake编译,之后使用mysys进行make编译,编译一直报错,如果有人知道此问题,请赐教一下,在此小编多谢了。1、下载上面推荐的git hub下载源码,下载之后会有一个文件夹:QtPdfium_Build_Source\qtpdfiumBuild下,此文件夹中包含了别人编译成功的静态包。选择库文件,取消掉linux和Mac的勾选,选择静态库,取消下面所有的勾选点击下一步即可。此部分代码是读取pdf文件的文字内容。

2023-06-11 22:14:42 2809 1

原创 FFmpeg命令集合

命令含义-L显示许可证-h topic显示帮助topic显示帮助help topic显示帮助显示帮助-version显示版本-buildconf显示生成配置-formats显示有效的格式-muxers显示有效的复用器-demuxers显示有用的解复用器-devices显示有效的音视频输入输出设备-codecs显示可用的编解码器-decoders显示可用的解码器-encoders显示可用的编码器-bsfs显示可用的位流筛选器-protocols。

2023-06-09 10:12:23 1530

原创 ffmpeg的编译

下载连接:https://git.ffmpeg.org/ffmpeg.git。(1)./configure 后面可配置需要编译的模块。(3)执行 make install。(1)下载 MYSY2。①下载连接:MSYS2。

2023-06-09 10:10:04 175

原创 ffmpeg简介

​ FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。ffmpeg是在2000年由法国天才程序发起的开源项目,经过这么多年的发展。ffmpeg已经成为当前最流行的视频处理软件之一了。ffmpeg发展至今,已经被许多的开源项目所采用。​ ffmpeg是遵循LGPL/GPL协议下发布的,因此任何人都可以使用此软件,但必须严格遵守LGPL/GPL协议。ffmpeg目前已经发展到6.0版本了。​:ffmpeg、ffPlay和ffprobe。

2023-05-22 14:39:18 1727

原创 http协议

2022-07-03 17:11:53 554

原创 C语言库总结

2022-06-26 14:48:45 18410

原创 URL 接口的使用

2022-06-18 23:59:42 1462

原创 share 接口的使用

2022-06-18 23:58:50 568

原创 multi接口的使用

2022-06-18 23:58:05 4352

原创 licurl API

2022-06-18 23:57:19 176

qt使用ffmpeg api进行摄像头视频流的读取,推流,拉流,视频播放等功能的实现

qt使用ffmpeg api进行摄像头视频流的读取,推流,拉流,视频播放等功能的实现。

2023-08-03

ffmpeg 4.2动态库

ffmpeg 4.2动态库

2023-08-02

qt使用qtpdfium和QAxObject实现doc文件的输出、pdf的输出和读取qpdf消息

qt使用qtpdfium和QAxObject实现doc文件的输出、pdf的输出和读取qpdf消息

2023-06-11

空空如也

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

TA关注的人

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