自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(91)
  • 资源 (1)
  • 收藏
  • 关注

原创 常见内存泄漏场景与解决方案

内存泄漏问题

2023-12-16 18:51:13 515

原创 手把手教你在GPU T4卡上安装硬解环境+编译硬解的ffmpeg

手把手教你硬解解码ffmpeg编译过程

2023-12-11 21:46:22 461

原创 实战中jrtplib发送rtp包,时间戳处理大坑

RTP 是目前解决流媒体实时传输问题的最好办法,如果需要在Linux平台上进行实时流媒体编程,可以考虑使用一些开放源代码的RTP库,如JRTP

2023-11-30 19:50:32 1097

原创 基于epoll封装非阻塞的reactor框架(附源码)

reactor epoll server client 百万并发

2023-10-20 17:10:31 639

原创 通过工具分析MongoDB性能问题

mongostat是mongdb自带的状态检测工具,在命令行下使用。它会间隔固定时间获取mongodb的当前运行状态,并输出。如果你发现数据库突然变慢或者有其他问题的话,你第一手的操作就考虑采用mongostat来查看mongo的状态。

2023-10-04 19:21:24 516

原创 基于C函数封装的C++读写锁(附源码)

本文是C/C++常用功能代码封装专栏的导航贴。部分来源于实战项目中的部分功能提炼,希望能够达到你在自己的项目中拿来就用的效果,这样更好的服务于工作实践。专栏介绍:专栏讲本人近10年后端开发常用的案例,以高质量的代码提取出来,并对其进行了介绍。代码拿去可以直接使用的,可以解决C++常见的问题。专栏使用人群:C++软件开发人员通过上面的学习,应该理解了读写锁的使用以及如何避坑。

2023-08-11 09:59:49 191

原创 C++ 智能指针对象无法通过void*函数传递的解决方案

智能指针是C++11新特性,智能指针主要用来管理在堆上分配的内存,它将普通的指针封装为一个栈对象,当栈对象生存周期结束后,会在析构函数中释放申请的内存,防止内存泄露。C++11引入智能指针,方便管理堆内存。普通指针需要手动申请和释放内存,使用智能指针不需要关心对象内存申请和释放,可有效避免堆内存泄漏问题(忘记释放)。其采用了一种RAII技术,RAII是一种了利用对象生命周期来控制程序资源(如:内存,文件,套接字,互斥量等)的技术。

2023-07-21 10:57:56 453

原创 C++之shared_from_this用法以及类自引用this指针陷阱

C++之shared_from_this用法以及类自引用this指针陷阱

2023-07-09 15:33:42 768

原创 C++中mutable关键字的用法与函数+const的用法

mutable的用法

2023-07-07 09:15:24 293

原创 C++实现打包工具代码框架+多种设计模式以及C++特性(附源码)

打包工具框架设计+c++11新特性

2023-07-04 00:01:40 718

原创 《从零开始编写一个直播服务器》音视频封装FLV理论

previous tag sizen 表示的前一个tag的整体大小每个Tag数据大小在Tag Header头里面的Data size字段里面;1.FLV就三种TAG,比较简单的封装格式,每个TAG都是由Tag Header和TAG Data组成;2.FLV中对时间戳的处理?如果含有B帧时间戳怎么计算?特别是PTS和DTS时间戳;3.你能从FLV这种封装格式中,借鉴到什么?加入让你设计一种私有封装格式,又该如何设计;4.如果FLV里面扩展H.265视频编码格式,你觉得大概的思路是什么;

2023-06-29 22:00:02 174

原创 C++基于jrtp实现rtp发送与接收代码实现(附源码)

本文是C/C++常用功能代码封装专栏的导航贴。部分来源于实战项目中的部分功能提炼,希望能够达到你在自己的项目中拿来就用的效果,这样更好的服务于工作实践。专栏介绍:专栏讲本人近10年后端开发常用的案例,以高质量的代码提取出来,并对其进行了介绍。代码拿去可以直接使用的,可以解决C++常见的问题。专栏使用人群:C++软件开发人员通过上面的例子,你应该对jrtp的使用有了较深刻的认识,希望对你。

2023-06-13 19:41:20 891

原创 从0-1一起学习live555设计思想之二 RTSP交互过程

本篇文章通过代码去分析rtsp交互过程与工作原理。

2023-06-11 19:32:12 955

原创 从0-1一起学习live555设计思想之一 基础运行环境 + 任务调度

本篇开始分析live555的基础组件,也就是基础运行环境所需要的组件类。liveMedia项目的源代码包含四个主要的库,各种測试代码以及IVE555 Media Server。四个主要的库各自是UsageEnvironment,TaskScheduler,groupsock,liveMedia,BasicUsageEnvironment。UsageEnvironment类是个抽象类,提供基础的运行环境,它依赖于TaskScheduler类来进行任务的调度。

2023-06-04 22:26:36 343 1

原创 手把手教你rtsp流媒体分析(引导篇,欢迎订阅专栏)

在安防行业中,onvif协议与gb协议是两种标准,gb是国内安防行业的标准,onvif是国外的安防行业的标准,其中gb28181中视频流是ps流、由设备、下级平台推送到上级平台,具有上公有云的特点,而onvif视频流采用的是rtsp,通常用于内网访问,当需要rtsp流可以上公有云的话,可以使用r-rtsp,r-rtsp交互流程正好与rtsp流程相反,由服务端主动发起请求。本文主要讲解了RTSP的主要流程以及RTP,RTCP的包分析,本文主要介绍的H264的包结构,希望能够让你对rtsp有个深刻的认识。

2023-06-01 16:26:53 3497

原创 gdb常用命令大全+调试c++代码并定位问题详解

GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。对于一名Linux下工作的c/c++程序员,gdb是必不可少的工具。gdb调试主要步骤1.先把文件编译为可执行文件(如对test.c进行编译:gcc -g -o test test.c)2.在终端输入gdb 后回车3.接着输入file test 后回车,之后进入调试过程4.调试过程,根据需要可对代码进行查看或操作gdb app。

2023-05-23 12:39:22 783

原创 手把手教你验证upd与tcp“端口”开发策略

这篇文章,本意是让大家了解除了常用的telnet之外,在运维过程中,如果在服务器中未发现相关命令还可以借用像ssh、wget 等命令测试端口。以上讲述了多种方法验证tcp与udp端口的问题,希望对你有所帮助。

2023-05-21 13:02:23 1529

原创 从0-1搭建支持gb28181协议搭建流媒体平台

一个基于C++开发的国标GB28181流媒体信令服务器。

2023-05-21 10:17:34 1181

原创 nginx keepalived 高可用原理和实操

使用nginx-keepalived双机热备机制,vip主机可以进行漂移,这样当一台主机挂掉了,还有备用机可以使用,保证了服务的可靠性。通过本文的讲解应该对高可用方案有了较深刻的理解,希望能够对你有所帮助。

2023-05-17 19:09:25 1379 1

原创 centos7.5 从0-1安装mysql以及基本的增删改查

MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。

2023-05-04 16:59:11 457

原创 从0-1学习nginx知识点

1、nginx.基本描述是什么、做什么、用在哪里2、安装与配置文件,常用命令3、nginx反向代理,正向代理4、负载均衡5、动静分离6、高可用服务器7、执行原理通过本文的学习,对nginx本身应该没有任何疑问了把。

2023-04-28 14:23:20 124

原创 手把手教你安装telnet(离线方式+在线方式)

Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器检测是否安装telnet软件包(通常要两个)1、telnet-client (或 telnet),这个软件包提供的是 telnet 客户端程序;2、telnet-server 软件包,这个才是真正的 Telnet server 软件包!

2023-04-24 13:57:03 9867 3

原创 Mongo集群化部署+高可用架构

数据库的演进随着计算机的发展,越来越多的数据需要被处理,数据库是为处理数据而产生。从概念上来说,数据库是指以一定的方式存储到一起,能为多个用户共享,具有更可能小的冗余,与应用程序彼此独立的数据集合。从功能上来说,就是数据管理软件。到了2000年随着互联网的发展,数据量呈现爆发式增长。海量数据的诞生,传统的关系型数据库在应对大规模,超大流量的时候就显得力不从心。借此,NoSQL数据库跟NewSQLl数据库就此登场。

2023-04-21 13:39:21 1129

原创 mongodb数据库索引介绍与优化选择

MongoDB 索引索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录。

2023-04-19 20:54:40 1068

原创 从0-1优化C++类对象创建资源消耗 (附源码)

本文是C/C++常用功能代码封装专栏的导航贴。部分来源于实战项目中的部分功能提炼,希望能够达到你在自己的项目中拿来就用的效果,这样更好的服务于工作实践。专栏介绍:专栏讲本人近10年后端开发常用的案例,以高质量的代码提取出来,并对其进行了介绍。代码拿去可以直接使用的,可以解决C++常见的问题。专栏使用人群:C++软件开发人员本文讲了一种最最最简单的对象之间的传递,可以减少引用与拷贝,另外不需要过度的理解含义,就可以避免问题的出现。

2023-04-13 17:52:33 395

原创 0到1手把手教mongodb优化性能手段

MongoDB同关系型数据库一样,在数据量小时看不出任何问题,但是当数据的操作变的频繁,如对10万级的数据表连续进行查询操作,MongDB会变的非常缓慢。针对这种情况,我们对MongoDB进行性能优化。索引的机制是:当你往某各个集合插入多个文档后,每个文档在经过底层的存储引擎持久化后,会有一个位置信息,通过这个位置信息,就能从存储引擎里读出该文档。

2023-04-10 20:43:33 939

原创 从0-1去分析与定位代码中死锁,被神队友坑的两天

本文是C/C++常用功能代码封装专栏的导航贴。部分来源于实战项目中的部分功能提炼,希望能够达到你在自己的项目中拿来就用的效果,这样更好的服务于工作实践。专栏介绍:专栏讲本人近10年后端开发常用的案例,以高质量的代码提取出来,并对其进行了介绍。代码拿去可以直接使用的,可以解决C++常见的问题。专栏使用人群:C++软件开发人员。

2023-04-02 21:06:41 275 2

原创 vscode配置C/C++常用插件,亲测好用

Visual Studio Code(VS Code)是微软2015年推出的一个轻量但功能强大的源代码编辑器,基于 Electron 开发,支持 Windows、Linux 和 macOS 操作系统。它内置了对JavaScript,TypeScript和Node.js的支持并且具有丰富的其它语言和扩展的支持,功能超级强大。

2023-03-27 16:11:29 6242 2

原创 C++基于C++11/14实现JPG2BGR或者BGR2JPG(附源码)

本文是C/C++常用功能代码封装专栏的导航贴。部分来源于实战项目中的部分功能提炼,希望能够达到你在自己的项目中拿来就用的效果,这样更好的服务于工作实践。专栏介绍:专栏讲本人近10年后端开发常用的案例,以高质量的代码提取出来,并对其进行了介绍。代码拿去可以直接使用的,可以解决C++常见的问题。专栏使用人群:C++软件开发人员通过本文的学习,应该对jpegturb性能有了一定的理解,希望能够帮助你。

2023-03-23 20:22:04 415

原创 手把手教你安装virtualbox + ubuntu + gcc(cmake)+ yum源 + ssh+ 清理磁盘等

1、 安装virtualbox点我进入VirtualBox官网下载安装包点击下载好的VirtualBox安装包,一路点击“下一步”,留意安装位置,我这里是将C盘改为了D盘,直到最后点击完成按钮。安装细节略,按照过程安装2、安装ubuntu或者centos点我进入ubuntu iso镜像下载地址或者ubuntu iso镜像下载地址运行VirtualBox,点击新建设置虚拟机电脑名称和系统类型。

2023-03-23 19:54:37 1349

原创 C++基于C++11/14实现线程池(附源码)

本文是C/C++常用功能代码封装专栏的导航贴。部分来源于实战项目中的部分功能提炼,希望能够达到你在自己的项目中拿来就用的效果,这样更好的服务于工作实践。专栏介绍:专栏讲本人近10年后端开发常用的案例,以高质量的代码提取出来,并对其进行了介绍。代码拿去可以直接使用的,可以解决C++常见的问题。专栏使用人群:C++软件开发人员线程是进程中的⼀个执⾏单元,负责当前进程中程序的执⾏,⼀个进程中⾄少有⼀个线程。⼀个进程中是可以有多个线程的,这个应⽤程序也可以称之为多线程程序。

2023-03-21 23:28:40 235

原创 C++实战 encodeURIComponent与decodeURIComponent实现(附源码)

本文是C/C++常用功能代码封装专栏的导航贴。部分来源于实战项目中的部分功能提炼,希望能够达到你在自己的项目中拿来就用的效果,这样更好的服务于工作实践。专栏介绍:专栏讲本人近10年后端开发常用的案例,以高质量的代码提取出来,并对其进行了介绍。代码拿去可以直接使用的,可以解决C++常见的问题。专栏使用人群:C++软件开发人员通过本文的学习,对C++实现java常用的uri encode与decode方法。

2023-03-21 23:18:23 367

原创 C++实战md5、base64算法实现(附源码)

本文是C/C++常用功能代码封装专栏的导航贴。部分来源于实战项目中的部分功能提炼,希望能够达到你在自己的项目中拿来就用的效果,这样更好的服务于工作实践。专栏介绍:专栏讲本人近10年后端开发常用的案例,以高质量的代码提取出来,并对其进行了介绍。代码拿去可以直接使用的,可以解决C++常见的问题。专栏使用人群:C++软件开发人员以上代码都是摘自git源码中的部分提取,安全可靠,欢迎大家使用指正。

2023-03-05 13:51:34 458

原创 C/C++实现发送邮件功能(附源码)

C++ 实现发送邮件功能

2023-03-05 13:11:29 2050 1

原创 C/C++实现百度高德WGS84坐标系转换(附源码)

专栏介绍:专栏讲本人近10年后端开发常用的案例,以高质量的代码提取出来,并对其进行了介绍。代码拿去可以直接使用的,可以解决C++常见的问题。专栏使用人群:C++软件开发人员通过本文坐标系间转换代码,你应该轻松的自己实现坐标系间的转换了。百度转wgs84参考转换链接百度获取坐标地址高德获取坐标地址在线转换地址在线转换地址b。

2023-03-01 22:08:59 794

原创 从0-1搭建流媒体系统之live555 安装、运行、转发、拉流

Live555 是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输协议如RTP/RTCP、RTSP、SIP等的支持。Live555实现 了对多种音视频编码格式的音视频数据的流化、接收和处理等支持,包括MPEG、H.263+、DV、JPEG视频和多种音频编码。同时由于良好的设 计,Live555非常容易扩展对其他格式的支持。目前,Live555已经被用于多款播放器的流媒体播放功能的实现,如VLC(VideoLan)、 MPlayer。

2023-02-23 12:26:15 1102

原创 C++类对象的创建销毁、资源消耗、以及更简单高效的存储方式

C++11六大函数(构造函数,移动构造函数,移动赋值操作符,复制构造函数,赋值操作符,析构函数)。一、构造函数二、移动构造函数三、移动赋值操作符四、复制构造函数五、赋值操作符六、析构函数public ://构造函数 Temp(Temp && t);//移动构造函数 浅拷贝 Temp & operator =(Temp && t);//移动赋值操作符,重载=操作符 浅拷贝 Temp(const Temp & t);

2023-02-11 22:32:46 289

原创 10年经验之C++面试宝典

虽然网上c++面试教程很多,但是无非是人云亦云,就算学习了,也是碎片化的知识点,不系统,为了让朋友们能够系统的学习c++以及c++中面试的常考知识点,对c++进行一系列的总结。以上是本人从事c++工作这么多年来常用常见的问题的总结,希望对你有所帮助把。

2023-02-03 09:50:20 488

原创 史上最强strace命令详解

strace是跟踪进程执行时的系统调用和所接收的信号(即它跟踪到一个进程产生的系统调用,包括参数、返回值、执行消耗的时间)。

2023-01-29 16:44:58 1125

原创 从0-1开始 测试ZLMediaKit推拉流性能、延时性能

目前、比较有名的流媒体服务器有ZLMediaKit、srs、live555、eadydarwin等。因为srs是单线程服务、对于多核服务器的支持需要通过部署多个服务来充分利用多核特性,本文主要介绍一种通用的简单的可利用多核特性的流媒体服务器是ZLMediaKit,另外一方面其支持多种流媒体协议 rtsp、rtmp、httpflv、hls、fmp4、webrtc等,而且支持视频的直播、录制等功能。流媒体服务器是流媒体应用的核心系统,是运营商向用户提供视频服务的关键平台。

2023-01-25 22:17:03 2507

基于c++实现插件管理框架与插件demoA与demoB

插件(Plug-in,又称addin、add-in、addon或add-on)是一种遵循一定规范的应用程序接口编写出来的程序。其只能运行在程序规定的系统平台下,而不能脱离指定的平台单独运行。 本代码实现了一种插件框架,可以动态的加载不同配置的不同插件。

2022-10-31

libVerify.zip

编译makefile基础框架、可以生成可执行程序、可以生成动态库、也可以生成静态库 按需生成,免去花费时间编写makefile的时间

2020-02-14

空空如也

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

TA关注的人

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