- 博客(129)
- 资源 (16)
- 收藏
- 关注
原创 【QT】编译问题汇总
有时候在新建类里面,用emit发送信号时,会遇到signal函数未定义的错误,此时重编译项目还是会出错,需要修改一下.pro文件(在里面随意加个空格即可)此时类不要继承QObject,记得qmake和重新构建。1.emit signal时显示函数未定义。原因是没有添加Q_OBJECT宏定义。
2022-11-14 16:00:54
2231
1
转载 【音视频】流媒体直播实时视频延迟时间排查和剖析:gop关键帧间隔导致延迟,流媒体和播放器缓存,B帧等导致的延迟
(1)H264编码中的B帧解码需要I帧和临近的P帧才能解码,而且B帧不是顺序的,可能会出现B帧在很多个P帧后面,这时就需要缓存很多帧才能开始解码B帧,还有就是B帧的播放时间可能在这些P帧之前等等情况都会导致编解码延迟。MS表示流媒体服务缓存时间,G表示gop时间间隔,P表示播放时间与上一关键桢时间差,SA表示可能的音频查找时间,C表示播放器默认缓存时间,N表示网络延迟,F表示转流或转码导致延迟,B表示B帧导致的延迟。本章就从流媒体平台整体到协议细节来剖析和解决直播实时视频的延迟问题。
2022-10-28 11:44:18
1508
转载 【音视频】基于FFMPEG采集摄像头图像编码MP4视频+时间水印
摄像头图像采集+MP4视频编码参考示例:https://blog.youkuaiyun.com/weixin_44453694/arcle/det水印添加处理参数示例:https://blog.youkuaiyun.com/weixin_44453694/article/details/123909568。
2022-10-28 11:09:15
1262
原创 【音视频】FFMPEG推流到NGINX服务器操作记录
运行时如果出现错误:nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use),表示nginx已经在运行,可以使用下面命令来关闭该端口的连接。
2022-10-25 17:01:14
1322
原创 【V4L2】学习记录
1.采坑备忘:虚拟机ubuntu系统中,在接入YUYV摄像头后,使用V4L2框架无法调用,后来各种尝试发现,需要在虚拟机的设置中,将USB控制器--USB兼容性修改为USB 3.1。
2022-10-12 16:10:18
444
转载 【Ubuntu】安装rapidsvn及使用
原文链接:https://blog.youkuaiyun.com/destiny_chen/article/details/80266256。版权声明:本文为优快云博主「jw_C」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。*使用sudo rapidsvn打开后输入用户密码后点击左上角x关闭,未点击关闭会导致设置好的标签等没保存。查看->首选项,添加编辑和比较工具。*操作标签时要先双击把标签打开,选中后操作目录。3.添加本地标签后,可以进行提交、更新等操作。
2022-10-10 17:59:46
1377
转载 【交叉编译】Linux下安装JPEG库
然后就进行了安装,随便下载到一个路径下,然后我在一个网站上看到了“作者: 何志强”写的一个安装脚本,稍微改了下版本号,存储成了个文件,然后source了…因为采集来的图像要进行存储,所以用到了这个库....具体安装方法在网络上能找到很多,大都可以用。
2022-10-09 16:53:55
616
转载 【交叉编译】交叉编译jpeglib遇到的问题
-host最好设成CC和LD中除了-gcc和-ld的前面部分,如arm-fsl-linux-gnueabi,因为生产的makefile中就可以自动添加arm-fsl-linux-gnueabi-ramlib之类的,省去自己手头设置。由于要在开发板中加载libjpeg,不能使用gcc编译的库文件给以使用,需要自己配置使用另外的编译器编译该库文件。最后make的时候就不是用/usr/bin/ld了,就可以通过编译。
2022-10-09 15:56:25
302
原创 【交叉编译】cmake报错 undefined reference to `pthread_atfork‘
原因:跟各个库的依赖顺序有关。需要把被依赖的库放在依赖的库后面。
2022-09-30 17:24:37
1765
转载 【交叉编译】ARM平台交叉编译|OpenSSL
由于是交叉编译,如不使用该选项,会出现汇编指令不识别的问题,因为openssl默认使用的汇编指令为X86平台下的指令,而一般的交叉编译器使用时ARM平台下的交叉编译器。注意:正在编译之前,需要Makefile中将-m64选项全部删除掉,因为aarch64-linux-gnu-gcc编译器不识别该选项。版权声明:本文为优快云博主「奔跑的码仔」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。交叉编译器Compiler:aarch64-linux-gnu-gcc。
2022-09-29 17:48:43
1272
转载 【Linux命令】linux下通过sed命令直接修改文件内容
通常,我们使用sed可以实现内容的编辑后然后保存成另外的一个文件,如果正确的话,才写入到源文件。但是某些时候,我们需要直接修改文件,因为,保存文件到一个文件,然后再覆盖原文件的办法显得很麻烦。这种方式,其实并没有修改build.xml文件的内容。如果想保存修改,通常的做法就需要重定向到另外的一个文件。如果想直接修改源文件,而没有这样的过程,可以用下面的命令。这样,build.xml.tmp文件就是修改后的文件.这样,就直接修改了build.xml文件。file是要被修改的文件。xxx是修改后的字符串。
2022-09-29 17:27:33
2864
转载 【Linux】C++代码生成UML类图
链接:https://www.zhihu.com/question/31687711/answer/1853553697。商业转载请联系作者获得授权,非商业转载请注明出处。可以用doxygen根据代码生成文档。
2022-09-22 11:56:47
1247
转载 【RTSP】使用live555静态库编译,报undefined reference to HashTable::create(int)错误
正确的顺序,libliveMedia.a libBasicUsageEnvironment.a libgroupsock.a libUsageEnvironment.a。版权声明:本文为优快云博主「洪水猛兽行」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.youkuaiyun.com/yuhengyue/article/details/99943184。live555默认编译完有4个静态库文件,
2022-09-20 10:02:08
320
转载 【C++】C++语言中的static静态成员变量和静态成员函数的作用
一、C++语言中的static静态成员变量的作用:1.在C++中,我们可以使用静态成员变量来实现多个对象共享数据的目标。静态成员变量是一种特殊的成员变量,它被关键字static修饰。2.static 成员变量属于类,不属于某个具体的对象,即使创建多个对象,也只为 static 成员变量分配一份内存,所有对象使用的都是这份内存中的数据。当某个对象修改了static 成员变量,也会影响到其他对象。3.static 成员变量必须在类声明的外部初始化,具体形式为:type class::name = v
2022-09-08 15:14:47
1226
转载 【网络编程】linux常用查看进程号、端口号命令
netstat -tunlp|grep 端口号。cmdline就是程序运行时输入的命令行命令。netstat -nap|grep 进程号。fd目录下是进程打开或使用的文件的符号连接。environ记录了进程运行时的环境变量。exe符号连接就是执行程序的绝对路径。ps -ef|grep 关键字。ps aux|grep 关键字。cwd符号链接的是进程运行目录。ll /proc/进程号。lsof -i :端口号。
2022-09-06 16:10:40
4269
转载 【C++】经典的c++下面使用pthread_create问题的解决
可是,到了这里之后,这个函数指针fp,虽然指向的函数是void*(void*)形式的,但是它实际上是void*(A::)(void*)形式的,所以放到pthread_create里面后,pthread_create就不认了。这是因为,对普通的类成员函数,编译之后,它的签名会发生变化,不再是void*(void*)的样式了。虽然我们取得了这个成员函数的指针,但是因为类型不匹配,我们依然没法使用它,即使XX_cast强行转换也不行。虽然这样做了之后,看起来挺别扭的,但是好歹能解决问题。...
2022-08-26 17:18:34
972
转载 【C++】C++函数捕获Ctrl+C方法
我们在UNIX的系统上,用CTRL+C表示退出当前进程,在这种退出当前进程的情况下,调用某个服务进程。2)然后再增加如下的方法来写捕获到CTRL+C后要执行的内容。1)在当前需要加捕获的地方,增加如下代码。...
2022-08-26 17:17:02
1860
原创 【Linux】valgrind在linux开发板上编译及使用
2.将上述压缩包拷贝进开发板上,并在开发板新建目录其中valgrind_tools文件夹是工具的安装路径。3.执行命令4.执行命令 make5.执行命令 make install最终所有valgrind相关的文件均在/home/book/tools/valgrind_tools/路径下使用这种方式,可以将valgrind_tools打包并放入其它同款开发板中使用。测试方法:.进入/home/book/tools/valgrind_tools/bin/路径下,执行./valgrind ls -l。
2022-08-25 10:41:23
736
原创 【Linux】静态库问题备忘
通过对比可以看出,不包含该头文件,生成的函数名带有前后缀。interface_tools.c文件写法如下,一定要注意包含interface_tools.h。
2022-08-24 16:18:01
288
转载 【Linux】查看动/静态库包含的函数
objdump -tT liblistdevs.so > listdevs.txt //列出 liblistdevs.so 的函数 输出到 listdevs.txt 文本文件里面。nm -D liblistdevs.so > listdevs.txt //列出 liblistdevs.so 的函数 输出到 listdevs.txt 文本文件里面。原文链接:https://blog.youkuaiyun.com/ZHI11235813/article/details/98884857。
2022-08-24 15:44:42
4337
转载 makefile 中切换工作目录的问题
版权声明:本文为优快云博主「可爱豆豆」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.youkuaiyun.com/merry3688/article/details/6188635。我的makefile 需要进行一些特殊处理,有的时候需要切换工作目录,我在 make中写到。然后再执行操作,发现工作目录仍然是原来的目录。记住,一行命令启动一个sub shell,所以。前一行命令导致环境的变化在下一行会被reset。请问这是怎么一回事?...
2022-08-18 11:45:50
1860
转载 【Linux性能分析】火焰图(Flame Graphs)的安装和基本用法
git clone https://github.com/brendangregg/FlameGraph.git //选择好火焰图文件存放路径后执行该条命令,从github上获取火焰图的相关文件,获取完成后会有一个FlameGraph的文件夹,如下图。x 轴表示抽样数,如果一个函数在 x 轴占据的宽度越宽,就表示它被抽到的次数多,即执行的时间长。y 轴表示调用栈,每一层都是一个函数。调用栈越深,火焰就越高,顶部就是正在执行的函数,下方都是它的父函数。没有直接消耗 CPU。....
2022-08-17 10:27:00
2689
1
原创 【MQTT】基于阿里云物联网平台实现两设备间相互订阅及发布消息
2.流程说明:规则引擎-》云产品流转 创建解析器、数据源、数据目的。device1发布topic为:/hjmeMtd96gu/device1/user/update。device2发布topic为:/hjmeMtd96gu/device2/user/update。device1订阅topic为:/hjmeMtd96gu/device1/user/get。device2订阅topic为:/hjmeMtd96gu/device2/user/get。关联数据目的(注意:“②数据目的”,是可以用鼠标点选的。...
2022-08-11 18:20:06
8936
1
原创 【网络编程】服务器端地址选择——“INADDR_ANY”
然后查了下参数“INADDR_ANY”,宏INADDR_ANY转换过来就是0.0.0.0,泛指本机的意思,也就是表示本机的所有IP,因为有些机子不止一块网卡,多网卡的情况下,这个就表示所有网卡ip地址的意思。所以我去连接这三个ip地址,都可以进行通信,这个参数就表明可以连接到本机的所有ip都是可以的,极大的简化了需要创建socket的数量,因为我们就绑定一个INADDR_ANY和一个端口,然后客户端通信到这个机器的所有ip都用这个socket来处理。...
2022-07-22 11:13:30
1884
原创 【Makefile】报错:undefined reference to symbol ‘pthread_spin_init@@GLIBC_2.2.5‘
lHidCommu该静态库找不到-lpthread,需要将-lpthread放在-lHidCommu后面。在链接阶段,将-lpthread放在-lHidCommu之后即可。
2022-07-21 09:40:26
528
转载 【Linux 】各目录及每个目录的详细介绍
例如/usr/man/man1中包含联机手册第一节的源码(没有格式化的原始文件),/usr/man/cat1包含第一节已格式化的内容。/mnt下面可以分为许多子目录,例如/mnt/dosa可能是使用msdos文件系统的软驱,而/mnt/exta可能是使用ext2文件系统的软驱,/mnt/cdrom光驱等等。每个不同的spool在/var/spool下有自己的子目录,例如,用户的邮箱就存放在/var/spool/mail中。...
2022-07-19 16:58:50
9754
原创 【Makefile】关于makefile使用上的一些备忘
编译C++程序的时候一定是用到了C++的库,所以用gcc编译时候,既有cpp文件又有c文件时候需要加上-lstdc++。
2022-07-17 09:51:33
260
转载 【Linux】解决动态库无法加载问题
2.4.1 库的工作原理静态库如何被加载在程序编译的最后一个阶段也就是链接阶段,提供的静态库会被打包到可执行程序中。当可执行程序被执行,静态库中的代码也会一并被加载到内存中,因此不会出现静态库找不到无法被加载的问题。动态库如何被加载在程序编译的最后一个阶段也就是链接阶段:在 gcc 命令中虽然指定了库路径 (使用参数 -L ), 但是这个路径并没有记录到可执行程序中,只是检查了这个路径下的库文件是否存在。同样对应的动态库文件也没有被打包到可执行程序中,只是在可执行程序中记录了库的名字。可执行程序被执行
2022-07-12 22:35:49
2228
原创 【Ubuntu】客户ubuntu文件系统定制使用说明
1.在开发板的UBUNTU系统上面安装软件rsync : sudo apt-get install rsync2.在开发板的UBUNTU系统上面安装软件openssh的服务端openssh-server并修改root登录权限 : sudo apt-get install openssh-serversudo vi /etc/ssh/sshd_config修改PermitRootLogin选项用以确保root登录权限足够重启开发板或者重启ssh服务(/etc/init.d/ssh restart)3.P
2022-07-07 11:39:39
389
原创 【Linux】rk3568交叉编译工具链配置
1.编辑.bashrc2.将如下内容粘贴进.bashrc3.保存退出4.使其生效5.验证上述配置是否成功
2022-07-06 09:22:17
2350
2
根据《Shell脚本编程详解》第12章节-Shell脚本编程,自己写的shell脚本。
2022-03-08
NETCONN_WEBserver(UCOSII) _UsbHost_FATFS.rar
2019-09-24
基于AJAX方式实现的STM32H7_WebServer网页文件
2019-09-22
基于AJAX方式实现的STM32H7_WebServer源码
2019-09-22
基于Socket API编程接口实现的TCP并发服务器
2019-06-22
基于Socket API编程接口实现的UDP服务器
2019-06-13
基于Socket API编程接口实现的智能TCP客户端
2019-06-12
基于STM32H7开发板的NETCONN_TCP 服务器程序(UCOSII版本)
2019-05-23
基于STM32H7开发板的TCP_Telnet服务器源代码
2019-04-08
基于STM32H7开发板的TFTP服务器程序
2019-03-30
STM32CubeMx例程
2019-02-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人