自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(470)
  • 资源 (50)
  • 收藏
  • 关注

转载 如何正确复制优快云文章到自己的博客

1.f12打开控制台2.找到文章正文对应的 html 元素 (含 "article_content"标签头)3.在该元素源代码上右键 “Copy”->“Copy element”4.保持格式操作新建一个txt文件,把复制内容保存后改为.html结尾的文章然后浏览器打开后ctrl+a复制全部,再复制到typora编辑器中(因为typora自带把html转换为md格式的内容)然后再复制typora的内容再到你的csdn编辑器中即可。小问题代码块的序号会显示在代码块的下方,不过不影响

2022-05-31 11:53:45 1653

原创 C++原生socket检测RTSP流是否可用

【代码】C++原生socket检测RTSP流是否可用。

2025-04-09 18:06:18 37

原创 deepseek API开发简介

此处API_KEY的值(your_api_key_here)用第一步复制的Key替代。2、安装python、pip,然后安装requests。创建API Key,并复制Key。功能:将文本翻译为目标语言。功能:将语音文件转换为文本。功能:生成自然语言文本。4、常见 API 接口。功能:对文本进行分类。

2025-02-08 12:21:28 533 1

原创 WSL配置网络

1、在"开始"菜单栏中打开"wsl settings"2、选择“网络”- “网络模式”中的Mirrored。

2025-01-22 14:13:59 1707

原创 Boost Asio TCP异步服务端和客户端

注意,Linux和Windows平台使用setopt设置超时参数的方式是不同的。在Linux上,你可以使用setsockopt来设置套接字选项,包括读取和写入超时。具体的选项是SO_RCVTIMEO和SO_SNDTIMEO。在Windows上,setsockopt同样用于设置套接字选项,但超时时间是以毫秒为单位的整数,而不是timeval结构体。你需要使用SO_RCVTIMEO和SO_SNDTIMEO选项,并传递一个DWORD类型的值。

2025-01-15 19:00:44 721

原创 ffmpeg实现接收RTSP流并抓拍保存图片的功能

【代码】ffmpeg实现接收RTSP流并抓拍保存图片的功能。

2025-01-15 17:20:10 737

原创 Boost序列化小结

增加string、vector、map、boost::variant等变量后,为了序列化这些标准库的类型的对象,头文件必须相应添加#include 、#include 、#include 、 。register_type () 的优点是只有需要序列化的类才注册。

2025-01-08 10:39:26 806

原创 windows下使用WSL

点击Ubuntu,然后拖动到左侧的"此电脑"下,就可以创建文件的磁盘映射。下载完成后,打开cmd命令行,执行wsl就可以开启wsl。重新导入并安装分发版在D:\wsl\ubuntu。以后就可以直接用vscode打开此目录了。就可以进入wsl映射的文件路径。导出分发版为tar文件到D盘。2、wsl备份以及恢复。首先查看所有分发版本。3、打开文件夹,输入。

2024-11-29 21:17:59 1498

原创 音视频好文总结

RTSP play同步ffplay播放器研究分析RTSP RTP RTCP SDP基础知识flv格式分析与解复用TS格式详解m3u8格式详解FLV格式详解MP4格式详解HLS协议详解RTMP协议详解HTTP-FLV协议详解H.264 SPS、PPS详解H.264 NALU详解ffmpeg帧率计算

2024-10-10 19:20:51 523

原创 H264重点笔记记录

它的原理是在NALU 前面添加固定字节(可能是1字节、2字节或4字节,其中4字节较常见),这几个字节组成一个整数(大端字节序)表示整个 NALU 的长度,在读取的时候,先把这个整数读出来(例如ffmpeg从extradata获取),拿到这个 NALU 的长度,再按照长度读取整个 NALU。对于这两种格式,不同的厂商支持程度也不太一样,例如,Android硬解码MediaCodec只接受annexB格式的数据,而Apple的VideoToolBox,只支持avcC的格式。用于mp4、flv、mkv等封装中。

2024-10-10 17:16:47 1112

原创 PaddleOCR基础入门

参考文档:https://zhuanlan.zhihu.com/p/525114489。将模型放到interface下并解压。5、创建一个inference目录。6、下载下方的检测模型和识别模型。2、新建conda虚拟环境。3、激活conda虚拟环境。1、下载paddle源码。

2024-09-06 18:08:28 497

原创 anaconda简单命令汇总

安装jupyter notebook。关闭当前虚拟环境test_env。切换虚拟环境到test_env。新建python虚拟环境。

2024-09-04 09:20:19 242

原创 python创建虚拟环境并在vscode中使用

打包虚拟环境 tar czf venv.tar.gz myenv/,将压缩包拷贝到目标机器,在目标机器上的适当位置解压该文件,激活新环境:myenv\Scripts\activate。现在,当你在这个激活的虚拟环境中安装任何包时,这些包将只存在于这个环境中,而不会影响系统的全局Python安装。你可以选择任何你喜欢的名字,而且这个文件夹将会包含所有必要的文件来作为一个独立的Python环境。这将恢复到系统的全局环境。如果你想要删除一个不再需要的虚拟环境,只需删除创建虚拟环境时生成的文件夹即可。

2024-09-03 17:28:26 446

原创 yolov5入门

打开命令行或终端,然后导航到你希望存放虚拟环境的位置。4、python命令行实现图片识别。5、python命令行实现视频识别。3、python代码实现图片识别。1、创建python虚拟环境。2、进入yolo下载地址。下载yolov5源码。

2024-09-03 17:11:22 401

原创 python虚拟环境设置

现在,当你在这个激活的虚拟环境中安装任何包时,这些包将只存在于这个环境中,而不会影响系统的全局Python安装。这里,test-env是你创建的虚拟环境的名称。你可以选择任何你喜欢的名字,而且这个文件夹将会包含所有必要的文件来作为一个独立的Python环境。这将恢复到系统的全局环境。如果你想要删除一个不再需要的虚拟环境,只需删除创建虚拟环境时生成的文件夹即可。打开命令行或终端,然后导航到你希望存放虚拟环境的位置。首先,确保你已经在你的机器上安装了Python。你可以通过在命令行或终端中输入。

2024-09-02 16:39:29 546

原创 使用gstreamer命令行解析RTSP流

【代码】使用gstreamer命令行解析RTSP流。

2024-08-07 14:01:21 669

转载 RabbitMQ 心跳检测(翻译)

网络在很多情况下会失败,有时情况很微妙(比如 丢包率很高)。操作系统检测到 TCP 断开是一个适中的时间(在 Linux 中默认时长是 11 分钟)。AMQP 0-9-1 提供心跳检测功能来确保应用层及时发现中断的连接(或者是完全没有工作的连接)。心跳检测还能保护连接不会在一段时间内没有活动而被终止。

2024-02-20 16:06:40 384

原创 UTF8在windows控制台乱码问题

仅仅这么处理会导致乱码,因为控制台默认是ASCI编码,显示UTF8的编码会乱码。此时需要把UTF8转ASCI,然后在控制台显示。

2023-12-21 09:52:45 803

原创 使用curl.exe执行http get指令

【代码】使用curl.exe执行http get指令。

2023-11-17 13:57:30 346

原创 MQTT性能分析

测试发现推送数据量比较大的时候,消费端消费的数据不及时。分析:wait()函数是个阻塞函数,会等待服务器发送ack消息后才会往下继续执行,发送下一条指令。使用wireshark抓包可以看出。临时解决方案:删除wait()函数,不需要等待服务器的ack返回。

2023-11-16 16:55:43 272

原创 VS2017的redis客户端实现

注意:C++代码实现时,VS2017可能会报错。

2023-11-16 15:18:12 222

原创 使用ffmpeg调用电脑自带的摄像头和扬声器录制音视频

3、打开windows系统的"打开声音设置"–“麦克风隐私设置”–"允许应用访问你的麦克风"点击开启。,修改cmd的编码格式为utf8,避免乱码。,查看当前window的音频和视频名称。1、打开cmd,执行。

2023-11-08 19:32:13 1970

原创 gstreamer的I420转jpeg格式数据产生耗时

测试发现插件rate产生耗时(gstreamer在同步时间产生耗时), 并且一个输入会产生多个输出。##1、将I430数据转化为jpg数据。jpeg数据转化为I420。

2023-10-20 16:12:22 397

原创 视频I420裸流保存为文件

【代码】视频I420裸流保存为文件。

2023-10-18 16:17:21 769

原创 SRS GB28181相关文章

https://blog.youkuaiyun.com/wdx1632/article/details/125428929https://blog.youkuaiyun.com/u011374856/article/details/107487363https://github.com/ossrs/srs/tree/5.0releasehttps://ossrs.net/lts/zh-cn/docs/v5/doc/gb28181http://www.guoxiaolong.cn/blog/?id=11085

2023-04-17 18:02:45 282 1

转载 sip命令与音视频rtp通话完整流程分析

7 客户端A收到sdp后,得到其中的两个端口,然后本地也创建两个端口,分别向服务器的两个端口发数据,(也可以直接向对方的IP和端口发,但对方是内网的,可能收到,也可能收不到,稍后再讨论怎么P2P)。如果要做到两客户端之间直接点对点,AB双方的音视频端口,应该先连stun,取到自己的外网IP和端口后,再发INVITE,这时SDP中带的是自己的外网IP和端口,双方直接传很大可能是收的到的。2 服务器收到后,转发给客户端B时,先创建两个音视频端口port1,port2,加到客户端A sdp中,然后发给B。

2023-02-24 10:07:21 1547

转载 流媒体服务器之rtp协议,rtcp协议,rtsp协议,sdp协议,sip协议简析

上面又提到了sip协议,这里顺带说一下,sip协议的全称是会话初始协议(Session Initiation Protocol)是一种信令协议,最早是用于ip电话交互的,也是一种会话协商协议,不过提供更好的灵活性与交互性,简单的交互就是invite,200ok,ack三步交互,最重要的就是sip的offer-answer模型,国内的gb28181标准就引用了sip协议作为其会话协商的标准协议。一般提到rtp总会提到rtcp协议,它们是配套的一套协议,国内交通部也有的只要rtp协议,不要rtcp协议的。

2023-02-24 09:58:13 1501

转载 视频流PS打包方式详解

PS流: Program Stream(节目流),简称PS流,将一个或多个分组但有共同的时间基准的基本数据流(PES)合并成一个整体流,由PS包组成,而一个PS包又由若干个PES包组成(到这里,ES经过了两层的封装)。PS包的包头中包含了同步信息与时钟恢复信息。一个PS包最多可包含具有同一时钟基准的16个视频PES包和32个音频PES包。ES流: Elementary Stream(基本码流),是由编码器输出的原始基础码流,它只含有解码器所必需的、并与原始图象或原始音频相接近的信息。

2023-02-16 16:00:01 1266

转载 技术解码 | GB28181 协议简介及实践

GB28181 协议指的是国家标准 GB/T 28181—2016《公共安全视频监控联网系统信息传输、交换、控制技术要求》1,该标准规定了公共安全视频监控联网系统的互联结构, 传输、交换、控制的基本要求和安全性要求, 以及控制、传输流程和协议接口等技术要求,是视频监控领域的国家标准。

2023-02-16 14:44:06 3381

原创 《C++ STL开发技术引导》 第五章-C++ STL泛化技术分析笔记

for_each的定义。for_each的实例。

2023-02-08 10:01:30 675

原创 自己实现iterator迭代器

【代码】自己实现iterator迭代器。

2023-02-07 20:04:08 149

转载 萃取(traits)编程技术的介绍和应用

我们知道, C++自定义类型有很多特性(traits), 比如拥有构造函数, 拷贝构造函数, 析构函数. 另一方面, C++内置类型入整形int, long, 就没有构造函数, 拷贝构造函数, 析构函数. 根据这些特性, 我们就可以采用最有效的措施进行构造和赋值, 比如对内置类型, 根本就不需要调用构造函数和拷贝构造函数, 而直接采用内存处理操作(malloc(), memcpy()), 从而获得最高效率, 这对于大规模而且操作频繁的容器, 有显著的性能提升.

2023-02-07 14:16:35 1097

转载 有关C++ Traits编程技法

真是不得不佩服C++知识内容的庞大,最近在啃侯捷的《STL源码剖析》这本书,看到第三章迭代器知识有关 traits 的部分一脸蒙蔽,无奈只能向度娘寻求帮助。C++ STL 泛化,全特化,偏特化。模板的特化和偏特化以及相关理解。关于模板的泛化、全特化和偏特化。C++模板之特化与偏特化详解。C++模板的全特化和偏特化。C++模板全特化、偏特化。C++模板的特化详解。模板的全特化和偏特化。

2023-02-07 14:03:09 177

转载 【C++模版之旅】神奇的Traits

现在需求变了,需要在T为int类型时,Compute方法的参数为int,返回类型也为int,当T为float时,Compute方法的参数为float,返回类型为int,而当T为其他类型,Compute方法的参数为T,返回类型也为T,怎么做呢?介绍traits的文章很多,但感觉大部分文章的说明都很晦涩难懂,把一个并不很复杂的C++模板的应用描述的过于复杂。假设有这样的需求,类Test中的某部分处理会随着类型T的不同而会有所不同,比如希望判断T是否为指针类型,当T为指针类型时的处理有别于非指针类型,怎么做?

2023-02-07 13:55:14 136

转载 原子操作,内存屏障,锁

内存屏障还有两种隐式的屏障变种:LOCK和UNLOCK操作(表面上这两个操作的实际用途和原子操作里面的Lock解释有区别,原子操作里面的lock是锁内存总线,这里面的lock是保证执行的执行顺序严格按照lock前,lock中,lock后的顺序执行)5.锁:从上面可以看出内存屏障并不是锁,而锁是使用了内存屏障实现的一种用户层的同步处理方式,锁使用的汇编原语有LOCK,UNLOCK等是内存屏障的一种隐式形式,它们都是LOCK操作和UNLOCK操作的变种,所以几乎所有的锁都使用了内存屏障,

2023-02-03 09:31:50 813

原创 基于UDP的可靠性传输协议-KCP简介

TCP超时计算是RTOx2,这样连续丢三次包就变成RTOx8了,十分恐怖,而KCP启动快速模式后不x2,只是x1 .5(实验证明1 .5这个值相对⽐较好),提高了传输速度。TCP丢包时会全部重传从丢的那个包开始以后的数据, KCP是选择性重传,只重传真正丢失的数据包。...............

2022-09-01 15:08:26 1645

原创 windows iocp适配epoll

windows iocp适配epoll。

2022-08-29 18:20:11 1356

转载 什么是内存屏障?具有什么作用?

小陈:老王,上一篇你引出了volatile底层是通过内存屏障来解决可见性和有序性问题的。首先我想问一下什么是内存屏障?老王:内存屏障啊,本质上也是一种指令,只不过它具有屏障的作用而已。小陈:额,这怎么说…老王:首先内存屏障是一种指令,无论是在JAVA内存模型还是CPU层次,都是有具体的指令对应的,是一种特殊的指令。小陈:嗯嗯,它是一种特殊的指令。还是不明白…小陈:然后呢?老王:然后这种指令*具有屏障的作用*,所谓屏障,也就是类似关卡,类似栅栏,具有隔离的作用。小陈:那它是怎么实现隔离作用的,能否搞个例子讲一

2022-08-25 15:33:00 516

原创 实现上下文保存和恢复的一种方式--setjmp与longjmp

longjmp函数中的参数envbuf是由setjmp函数所保存的堆栈环境,参数val设置setjmp函数的返回值。longjmp函数本身是没有返回值的,它执行后跳转到保存envbuf参数的setjmp函数调用,并由setjmp函数调用返回,此时setjmp函数的返回值就是val。上面的说明有点拗口,通俗的解释是:先调用setjmp,用变量envbuf记录当前的位置,然后调用longjmp,返回envbuf所记录的位置,并使setjmp的返回值为val。当时用longjmp时,envbuf的内容被销毁了。.

2022-08-24 17:07:10 681

转载 CPU缓存:怎样写代码让CPU执行更快?

我们先从主机最重要的部件 CPU 开始,聊聊如何通过提升 CPU 缓存的命中率来优化程序的性能。任何代码的执行都依赖 CPU,通常,使用好 CPU 是操作系统内核的工作。然而,当我们编写计算密集型的程序时,CPU 的执行效率就开始变得至关重要。由于 CPU 缓存由更快的 SRAM 构成(内存是由 DRAM 构成的),而且离 CPU 核心更近,如果运算时需要的输入数据是从 CPU 缓存,而不是内存中读取时,运算速度就会快很多。所以,了解 CPU 缓存对性能的影响,便能够更有效地编写我们的代码,优化程序性能。然

2022-08-23 15:21:37 925

Redis-6.2源码调试

使用VsCode工具调试Redis-6.2的代码。代码已经编译完成,可以用VSCode打开后直接调试。需要VSCode安装C\C++的插件。

2022-05-27

microsoft pdb.rar

windows的pdb符号文件,用于adplus软件抓取崩溃文件fulldump后在VS2017上的调试,可以定位出程序崩溃。

2022-04-20

nginx源码学习资料

自己的nginx源码学习资料,包含《Nginx模块开发指南》和《深入理解Nginx》等,方便初学者了解nginx设计思想以及源码

2022-02-10

gRPC-vs2017

google的开源RPC框架gRpc源码,可以使用vs2017进行编译,需要依赖Cmake可视化软件生成vs工程,操作步骤见txt文件

2022-02-08

libevent-vs2017编译

visual stdio 2017下libevent的源码编译,工程配置已经完备,支持一键编译,便于调试、深入源码分析。

2022-02-08

nginx-1.7.11-vs2013.zip

windows下vs2013的nginx工程,支持一键编译运行,方便调试nginx,对入门nginx有比较大的帮助。

2022-01-13

wireshark安装包.zip

wireshark安装包,包含1.4.1版本和3.4.9两个版本,旧版的适合入门资料的pdf学习

2021-11-20

FFmpeg_Gstreamer_Wireshark学习资料.zip

FFmpeg、Gstreamer以及Wireshark的资料合集,供自己备用。

2021-11-12

win10sdk.zip

windows下C++开发人员的开发环境,用于开发的运行环境以及某些编译依赖的库。

2021-11-01

gstreamer-1.0-devel-msvc-x86-1.19.2.zip

gstreamer的1.19.2版本的安装包,安装后即可配置完成gstreamer的运行环境。

2021-11-01

C++学习资料.rar

c++进阶学习资料,辛苦集成,不可多得。机不可失失不再来

2021-09-07

librdkafka库,支持安全认证

自己编译的librdkafka的库,支持openssl,支持用户名和密码的安全认证配置。

2021-08-25

adplus软件,用于c++代码调试

adplus软件,用于vs调试代码bug,结合pdb文件可以快速定位程序出现问题的具体代码。

2021-08-24

nginx-http-flv-demo.rar

自己在linux环境下编译的nginx服务器,加入了http-flv-module模块,支持rtmp、http-flv拉流。

2021-04-06

PointsToDistance.exe

本程序是通过2点计算距离,可以传入2点角度的经纬度,也可传入2点弧度的经纬度。点击不通按钮计算出角度/弧度的距离

2021-03-05

threadpool.rar

boost线程池,线程池可以避免线程的反复生成和销毁带来的开销,提升软件的稳定性和性能

2020-12-19

opencv3.4.rar

本资源是openv3.4版本,可直接用于vs的工程。包含include和lib相关的所有文件,添加方便快捷。

2020-08-10

ffmpeg-4.rar

本资源是ffmpeg4版本的库,包含32位和64位,包含头文件、编译后的库文件以及exe等文件构成,可以直接在vs上使用。

2020-08-10

rtmp+ngix推流.7z

本资源是windows下ngix的环境配置,可以用于rtmp推流。搭配ffmpeg的使用,可将视频文件转化成rtmp网络视频流,并在vlc上进行播放

2020-08-02

WinPacpDemo.zip

基于MFC的WinPacp的例子,可以直接运行,统计接收到的流量包,方面对数据包进行分析、监测等。通过例子了解WinPacp的接口及使用方法。

2020-06-26

ollama安装包,本地安装deepseek必备

ollama安装包,本地安装deepseek必备

2025-02-05

boost序列化x86和x64兼容

boost序列化x86和x64兼容

2025-01-02

yolov5的模型参数pt文件

yolov5的模型参数pt文件

2024-09-03

深度学习AelxNet网络模型训练识别花朵例子

深度学习AelxNet网络模型训练识别花朵例子

2024-09-01

github加速器,可以解决github打开慢的问题

github加速器,可以解决github打开慢的问题

2024-08-25

redis-3.0-vs2017.zip

使用VS2017编译的redis服务器代码,可以直接运行。客户端RedisCli可以连接到服务器,实现客户端与服务器的交互。

2023-11-16

redisCliDemo.zip

VS2017的redis客户端代码,使用hiredis库实现客户端的连接和请求

2023-11-16

rtsp的流媒体服务器,windows下搭建流媒体服务器

rtsp的流媒体服务器,windows下搭建流媒体服务器

2023-11-02

yuv查看器,可以查看YUV文件

yuv查看器,可以打开yuv文件,查看图片文件

2023-10-22

boost asio性能对比分析

boost asio性能对比分析

2022-12-23

clumsy-windows网络模拟工具.7z

windows下网络环境模拟工具,可以支持特定IP地址发送的数据包的丢包、延时等功能,编译网络环境的测试

2022-11-12

ronghe-目标-pdf

1111111asdasdasdasdasas

2022-09-13

kcp-dissector-plugin-master.zip

wireshark的KCP插件,用于对KCP数据包进行分析

2022-09-01

KcpTest.zip

KCP测试程序

2022-08-30

quic.pcapng

quic数据包,用于认识quic协议

2022-08-16

VS2017-Tarscpp编译后的库

VS2017环境下TarsCPP源码编译后生成的头文件和库文件,可用来在VS2017上开发Tars工程。

2022-07-30

ffmpeg-4.2.1.tar.7z

ffmpeg源码,版本为4.2.1,可以用于编译、学习。

2022-07-17

msys2-x86_64-20200903.zip

windows下安装此软件后可以模拟Linux的环境,可以用于ffmpeg编译等

2022-07-17

vs2017_community__1464315958.1583822625.zip

此资源为VS2017安装包,方便C/C++/C#开发人员进行Windows系统下的开发,有助于软件bug分析定位。

2022-07-17

0voice_im.tar.bz2

TeamTalk源码,支持VS2017编译客户端。

2022-06-30

空空如也

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

TA关注的人

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