- 博客(80)
- 收藏
- 关注
原创 Windows上用FFmpeg采集摄像头推流 → MediaMTX服务器转发流 → WSL2上拉流播放
设备名称可用查询,假设为这里推到MediaMTX默认监听的RTMP端口1935,路径,可根据MediaMTX配置调整。
2025-05-31 18:35:10
552
原创 Windows上用FFmpeg推流及拉流的流程概览
Windows上的摄像头,比如“Integrated Camera”。:FFmpeg通过dshow设备接口读取摄像头。:你可以选择推到 RTMP 或 RTSP 服务器。推RTMP流:bash复制编辑推RTSP流(前提服务器支持接收RTSP推流):bash复制编辑。
2025-05-31 18:28:07
500
原创 VcXsrv 下载与安装
可以勾选 “Save configuration”,保存为。“Windows 防火墙阻止了此应用的一些功能”点击绿色的 “Download” 按钮,下载。VcXsrv 通信(勾选私有和公有网络)安装完成后,点击 “Finish”防止 OpenGL 图形程序崩溃。(关闭访问控制,允许外部连接)安装完后,在开始菜单搜索。文件(方便下次双击启动)如果弹出窗口说明配置成功!全程默认即可,一路点击。启动 X Server。
2025-05-29 10:00:36
410
原创 Google C++ Style Guide
全大写 + 下划线分隔public:// 构造函数 / 析构函数Example();~Example();// 公有方法protected:// 受保护方法/变量private:// 私有方法/变量。
2025-04-17 16:38:59
445
原创 python解析xls文件
在 Python 中,解析.xls文件通常使用xlrd库。xlrd是一个强大的库,可以读Excel 文件(.xls格式)的内容。
2025-01-10 08:55:45
234
原创 python线程与C++线程之间的区别
Python 线程适合 I/O 密集型任务,使用简单,但受到 GIL 的限制,性能在 CPU 密集型任务中较差。C++ 线程适合 CPU 密集型任务,性能更高,灵活性更强,但需要开发者更仔细地管理线程安全和资源。
2025-01-04 16:36:53
457
原创 C++ lambda表达式回调使用
在 C++ 中,Lambda 表达式是一种简洁的方式来定义匿名函数。它们可以用作回调函数,允许在需要的地方传递代码块。下面是一些使用 Lambda 表达式作为回调的示例。
2024-12-31 15:23:54
593
原创 C++线程池的使用
public:private:// 工作线程// 任务队列// 保护任务队列的互斥锁// 条件变量bool stop;// 停止标志// 构造函数++i) {for (;;) {});return;// 如果停止并且任务队列为空,退出线程task();// 执行任务});// 析构函数// 设置停止标志// 唤醒所有线程// 等待所有线程结束// 向线程池添加任务// 不允许在停止状态下添加任务});// 将任务添加到队列。
2024-12-31 15:09:06
443
原创 回调机制实现观察者模式
在回调机制中,可以注册多个回调函数,以便在特定事件发生时依次调用它们。下面是一个示例,展示如何在 C++ 中实现一个简单的事件管理器,支持注册多个回调函数。在实现观察者模式时,主题对象(Subject)可以注册多个观察者(Observer),当状态变化时,主题会调用所有观察者的回调函数。观察者设计模式,允许对象在状态变化时通知其他依赖对象,通常通过回调函数实现。
2024-12-31 14:47:03
250
原创 python脚本并行处理事件
来触发各自的事件,并且主任务会等待这些事件的发生。来触发各自的事件,可以为每个任务创建一个独立的。来并行执行多个任务。每个任务会在执行过程中通过。
2024-12-15 19:42:01
103
原创 python脚本等待事件完成
虽然它们不能直接结合使用,但可以通过一些方式实现类似的功能。如果在异步代码中等待一个事件的完成,可以使用。模块提供的一个异步事件类。下面是一个示例,展示了如何使用。在 Python 中,来实现等待事件完成的功能。是两种不同的并发模型。
2024-12-15 19:07:17
295
原创 python通过连接mqtt服务端
在 Python 中,可以使用paho-mqtt库来连接到 MQTT 服务器(也称为 MQTT broker)。
2024-11-25 10:44:46
578
原创 调度的目的
调度的主要目的就是控制任务的执行。调度是一个关键的管理过程,它通过控制任务的执行顺序和资源分配,确保系统高效、可靠地运行。无论是在操作系统、分布式计算还是数据处理工作流中,调度都是实现高效资源利用和任务管理的重要手段。
2024-11-18 10:16:06
365
原创 调度与DAG之间的关联
DAG中的箭头表示任务的依赖关系。调度器的箭头表示任务的执行顺序和调度策略。通过这种方式,可以清晰地看到调度与DAG之间的关系:调度器根据DAG的结构来安排任务的执行。
2024-11-18 09:57:34
253
原创 go语言对heap方法对同优先级的元素遵循先进先出的顺序
在 Go 语言的包中,heap.Pop()方法并不保证对于同优先级的元素会遵循先进先出(FIFO)的顺序。堆的主要特性是根据优先级来组织元素,而不是根据插入顺序。
2024-11-15 09:44:14
209
原创 C++根据特定字符截取字符串
在 C++ 中,如果根据特定字符进行字符串的截取,可以使用类的成员函数find()来查找字符的位置,然后使用substr()来截取字符串。以下是一个示例,展示了如何根据指定字符截取字符串。
2024-11-12 16:05:07
767
原创 使用管道同步和传递多个协程的数据
在Go语言中,管道(Channel)是一种非常强大的机制,用于在协程(Goroutine)之间同步和传递数据。一个管道(通道)并不局限于只在两个协程之间使用。通道可以在任意数量的协程之间进行通信。多个协程可以同时向一个通道发送数据,也可以有多个协程从同一个通道接收数据。
2024-11-05 20:50:02
341
原创 go语言中make函数的功能
在 Go 语言中,make是一个内置函数,主要用于创建切片(slice)、映射(map)和通道(channel)这三种类型的数据结构,并对其进行初始化。make是Go语言中用于初始化复杂数据结构的强大工具,它提供了一种简洁的方式来创建和初始化切片、映射和通道。
2024-11-05 10:22:48
346
原创 go语言连续监控事件并回调处理
go语言中使用回调函数处理事件:事件监测部分(如无限循环中的事件检测逻辑)可以独立于具体的业务处理逻辑。这使得代码的各个部分更加清晰,易于理解和维护。如果需要更改事件处理的方式,只需要修改注册的回调函数,而不需要修改事件监测的核心代码。例如,如果要改变对特定事件的响应行为,只需重新定义一个不同的回调函数并注册即可,不会影响事件监测的机制。// 定义事件处理函数类型// 模拟事件源。
2024-11-04 10:33:58
373
原创 C++中,public、protected和private之间的关系
C++中,publicprotected和private是类的访问修饰符,它们定义了类成员(包括成员变量和成员函数)的访问权限。这些访问修饰符决定了类成员在类内部、继承类以及外部代码中的可见性和可访问性。以下是它们之间的关系和区别。public:最宽松的访问权限,可以在任何地方访问。protected:比private宽松,但比public严格。可以在类内部和继承类中访问,但不能通过对象直接访问。private:最严格的访问权限,只能在类的内部访问。
2024-11-02 22:19:32
581
原创 C++回调函数监听、处理事件
为了实现无限监听事件并在收到事件时立即通过回调函数处理,我们可以在类中创建一个无限循环,该循环会不断检查事件队列并调用相应的回调函数。以下展示如何在C++中实现这样的系统。
2024-11-02 17:53:36
811
原创 go语言回调函数的使用
在 Go 语言中,回调函数是一种将一个函数作为参数传递给另一个函数,在特定的事件发生时被调用的编程模式。以上定义了一个用于处理任务的结构体,可以通过设置回调函数的方式来灵活地处理不同的情况,同时使用读写锁来保证在并发环境下的安全性。c.Lock()= nil {c.onTask(message) // 调用回调函数处理消息。
2024-10-31 12:22:20
434
原创 C++单例模式
C++中的单例模式(Singleton Pattern)是一种常用的软件设计模式,用于确保一个类只有一个实例,并提供一个全局访问点来获取这个实例。单例模式通常用于管理共享资源,如配置信息、线程池、缓存等。
2024-10-30 13:07:58
347
原创 C++多态的应用
C++中的多态性是一种允许对象以多种形式存在的能力,它使得同一个操作可以作用于不同的对象上,产生不同的结果。多态性是面向对象编程的核心特性之一,它提供了代码的灵活性和可扩展性。C++中的多态性主要有两种形式:编译时多态(静态多态)和运行时多态(动态多态)。
2024-10-29 21:11:41
164
原创 go语言中interface之间嵌入与struct之间的嵌入实现多态
在Go语言中,结构体(struct)之间可以相互包含,这种特性通常称为“嵌入”(embedding)。当你在一个结构体中嵌入另一个结构体时,被嵌入的结构体的字段和方法就像它们直接声明在新结构体中一样。接口可以组合其他接口,一个接口可以包含另一个或多个接口的所有方法。// 基本接口Method1()// 第一个扩展接口Method2()// 第二个扩展接口Method3()
2024-10-28 22:03:27
565
原创 go语言多态性(接口interface)的使用
在Go语言中,接口类型(interface)完全可以作为一个函数的参数。这是Go语言多态性的一个重要体现,允许函数接受任何实现了接口中定义的方法的类型的实例。定义interface接口包含相应的方法。// MyStruct 是一个结构体,它将实现 Reader 接口// Read 方法使得 MyStruct 实现了 Reader 接口MyStruct是一个结构体,Message作为结构体中的字段,MyStruct结构体实现了Read的方法就这样实现了该接口。
2024-10-28 09:54:26
327
原创 qthread创建线程动态更新GUI数据
QThread可以方便地与 Qt 的信号与槽机制结合使用,实现线程间的安全通信。这使得不同线程中的对象可以轻松地进行交互,而无需担心线程安全问题。例如,可以在一个线程中发射信号,在另一个线程中连接到该信号并执行相应的槽函数,确保数据的正确传递和处理。这种机制使得代码更加清晰和易于维护,因为通信逻辑可以通过直观的信号与槽连接来实现,而不是使用复杂的同步原语。
2024-10-07 21:35:23
432
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人