linux
QMCY_jason
这个作者很懒,什么都没留下…
展开
-
C++封装单例模式 Zlog 避免使用全局变量
分为两种 一般的情况和 使用只能指针(shared_ptr)的情况。如下图 传统的模式被注释掉了 传统的模式需要手动销毁占用内存。shared_ptr模式会自动释放内存。注释:没有加锁 多线程情况下可能有问题。原创 2023-03-06 18:14:15 · 202 阅读 · 0 评论 -
LED项目中加入多线程并发处理支持记录
目前这个是有问题的 因为 没有for循环 所以只会有 一个线程 也没必要 使用多线程处理。如果是一个对象 使用不能使用一般的引用方式传递 需要使用ste::ref的方式将参数传过去。然后 解析这个数据 将每一个任务 起一个线程 加到 threads_pool里面。NVR_SetLED任务需要加锁 因为 这个任务有可能是针对同一个LED操作的。每一个任务执行NVR_SetLED函数 同时将参数传过去。理论上 playlist传过来的需要是一个 数组的 任务。最后 别忘了将join 等待子线程结束。原创 2023-03-06 11:40:54 · 99 阅读 · 0 评论 -
C语言日志库zlog 的使用
将libzlog.so copy到 /usr/local/lib目录下 并将zlog.h copy到/usr/local/include目录下。git clone下来之后 直接make make install之后 会安装到系统目录。zlog.conf文件内容如下 自己定义了一个qmcy 配置。具体有很多种 级别 头文件里面都有。这样之后 就可以像下面的方式使用了。工程中 包含头文件 zlog.h。然后就可以实时看到日志输出了。原创 2023-03-02 19:35:18 · 254 阅读 · 0 评论 -
流媒体付服务器 ZLMediaKit 学习记录
macOS下可能需要这样指定openss路径:cmake .. -DOPENSSL_ROOT_DIR=/usr/local/Cellar/openssl/1.0.2j/在一台经常用的机子上 cmake之后 没报错 会检测一些依赖库。#国内用户推荐从同步镜像网站gitee下载。make -j4 报错了。#千万不要忘记执行这句命令。原创 2023-02-28 16:19:26 · 545 阅读 · 0 评论 -
Linux 平台 RTSP server项目开发总结
测试例子中使用了FFMPEG进行拉RTSP流测试 所以需要引入ffmpeg库。Demo版本限制了只支持两个通道 每个通道只能连接一个客户端。so库和测试demo可以点击这里下载。FULL版本 没有这个限制。可以点击这里下载全部文件。原创 2023-02-23 14:27:28 · 2033 阅读 · 0 评论 -
基于 瑞芯微 RK1126 平台的项目总结(包含AI 画中画 RTSP OSD 录像 双路摄像头)
RK1126平台AI识别 画中画功能项目总结原创 2023-02-17 11:09:42 · 2493 阅读 · 1 评论 -
RTSP协议交互时TCP/UDP的区别 以及视频和音频的区别 以及需要密码认证的区别
3.SETUP 方法 视频和音频是区分开的 先所以如果包含视频 音频 会收到两次setup消息。1.OPTIONS 都一样 如下:左箭头内是客户端发给服务端 箭头内是服务端回给客户端。支持TCP/UDP 支持H264 H265 支持同时传输 AAC音频。也可以只有音频 或者只有视频 没有音频就不需要黄色框内的内容。经过这几天的调试 一个功能简单的 RTSP服务端已经实现了。目前的流是包含视频和AAC音频。没有视频就不需要蓝色框内的内容。第二次音频 TCP方式。SETUP是最复杂的。原创 2023-02-15 16:44:32 · 1377 阅读 · 0 评论 -
Linux close(0)会发生什么 记一次socket accept函数返回0 Bad file descriptor
0表示标准输入流 程序中直接执行close(0)会导致程序出现各种奇奇怪怪的问题 各位可以直接在自己的程序中加入这句试试。如果改成如下就没问题 后来通过加log发现 如果是tcp的话 rtp_fd 和 rtcp_fd 的值 都是0。但是当协议是tcp的时候 播放端第一次打开之后 关闭 在打开 通过log发现 服务端的accept会返回0。过程是这样的 在写rtsp服务器的时候 accept接受从客户端来的请求。最后发现问题的原因是 在下面的代码 如果注释掉 就会出现这样的问题。原创 2023-02-07 17:00:37 · 1067 阅读 · 0 评论