- 博客(747)
- 资源 (101)
- 收藏
- 关注
原创 FFmpeg从入门到精通-1.2.ffmpeg编码支持与定制
FFmpeg的解封装(Demuxing)是指将读入的容器格式拆解开,将里面压缩的音频流、视频流、字幕流、数据流等提取出来,如果要查看FFmpeg的源代码中都可以支持哪些输入的容器格式,可以通过命令。从封装(又称复用)格式所支持的信息中可以看到, FFmpeg支持生成裸流文件,如H.264、AAC、PCM,也支持一些常见的格式,如MP3、MP4、FLV、M3U8、WEBM等。FFmpeg不仅仅支持本地的多媒体处理,而且还支持网络流媒体的处理,支持的网络流媒体协议相对来说也很全面,可以通过命令。
2026-05-12 04:05:21
79
原创 FFmpeg从入门到精通-1.ffmpeg简介
FFmpeg既是一款音视频编解码工具,同时也是一组音视频编解码开发套件,作为编解码开发套件,它为开发者提供了丰富的音视频处理的调用接口。FFmpeg中的“FF”指的是“Fast Forward”,FFmpeg中的 “mpeg”则是人们通常理解的Moving Picture Experts Group(动态图像专家组), FFmpeg是一个很全面的图像处理套件。视频库。
2026-05-06 22:57:07
436
原创 使用 LoRaWAN
打开 File -> Examples -> MKRWAN -> LoraSendAndReceive。找到自己的设备,比如我的是Device14,即可以看到设备ID号,以及APPEUI和AppKey。打开Tools -> Board -> SAMD -> MKR WAN 1300。打开 File -> Examples -> Basics -> Blink。点击 Tools -> Board -> Board Manager。选择对应的COM口,Tools -> Port。点击install,并完成。
2024-10-23 23:59:49
426
原创 2.8 双绞线、同轴电缆、光纤与无线传输介质
双绞线是古老、又最常用的传输介质,它由两根采用一定规则并排绞合的、相互绝缘的铜导线组成。为了进一步提高抗电磁干扰能力,可在双绞线的外面再加上一个由金属丝编织成的屏蔽层,这就是屏蔽双绞线(STP),无屏蔽层的双绞线就称为非屏蔽双绞线(UTP)。5类线在对间的绞合度和线对内两根导线的绞合度都经过了更精心的设计,并在生产中加以严格的控制,使干扰在一定程度上得以抵消,从而提高了线路的传输速率。由于外导体屏蔽层的作用,同轴电缆具有良好的抗干扰特性,被广泛用于传输较高速率的数据,其传输距离更远,但价格较双绞线更贵。
2024-10-09 17:38:04
1199
原创 嵌入式Linux应用程序开发-2 Linux基础命令
Shell是一种Linux中的命令行解释程序,就如同Command.com是DOS下的命令解释程序一样,为用户提供使用操作系统的接口。在缺省情况下,useradd所做的初始化操作包括在"/home"目录下为对应账号建立一个名为同名地方的主目录,并且还为该用户单独建立一个与用户单独建立一个与用户名同名的组。在将普通用户变更为root用户时建议使用 “-” 选项,这样可以将root的环境变量和工作目录同时带入,否则在以后的使用中可能会由于环境变量的原因而出错。SHELL是指当前用户用的是哪种Shell。
2024-08-30 02:16:55
1251
原创 嵌入式Linux应用程序开发-1Linux快速入门
Linux是指一套免费使用和自由传播的类UNIX操作系统。1. ext2和ext3ext3是现在Linux常见的默认的文件系统,它是ext2的升级版本。从ext2转换到ext3主要有以下4个理由:可用性、数据完整性、速度、易于转化。ext3中采用了日志式的管理机制,它使文件系统具有很强的快速恢复能力,并且由于从ext2转换到ext3无须进行格式化,因此,更加推进了ext3文件系统的大大推广。2. swap文件系统该文件系统是Linux中作为交换分区使用的。
2024-08-18 04:31:48
1022
1
原创 2.7数据报与虚电路
在虚电路网络中的每个结点上都维持一张虚电路表,它的每一项记录了一个打开的虚电路的信息,包括在接收链路和发送链路上的虚电路号、前一结点和下一结点的标识。当作为通信子网用户的端系统要发送一个报文时,在端系统中实现的高层协议先把报文拆成若干个带有序号的数据单元,并在网络层加上地址等控制信息后形成数据报分组(即网络层PDU)中间结点存储分组一段很短的时间,找到最佳的路由后,尽快转发每个分组。由于不同时刻的网络状态不一样,因此转发表的内容可能不完全相同,因此有的分组转发给交换结点C,有的分组转发给交换结点D。
2024-06-13 18:53:37
1254
原创 2.6电路交换、报文交换、分组交换
分组交换限制了每次传送的数据块大小的上限,把大的数据块划分为合理的小数据块,再加上一些必要的控制信息(如源地址、目的地址和编号信息等),构成分组(Packet)。从提高整个网络的信道利用率上看,报文交换和分组交换优于电路交换,其中分组交换比报文交换的时延小,尤其适合于计算机之间的突发式的数据通信。每个小数据块都要加上源、目的地址和分组编号等信息,从而构成分组,使传送的信息量大约增大5%~10%,一定程度上降低了通信效率,增加了处理的时间,使控制复杂,时延增加。电路交换的交换设备(交换机等)及控制均较简单。
2024-06-13 18:45:15
1049
原创 osg库的下载和安装
重新打开该项目,如果报LCMapStringEx错误,右键Examples osgviewerMFC进入属性,打开项目配置->c+±> 预处理->预处理器定义 添加。打开Cmake.exe,将上述下载的osg文件下的CMakeLists.txt文件拖入Cmake界面中。再次点击Configure,确认没有报error之后点击Generate,等待完成。如果存在afxwin.h错误时候,需要补充装一下mfc的组件。点击Configure按钮后,进行下一步配置。并配置cmake,点击Configure。
2024-06-04 17:35:17
882
原创 12.6 复习各种技术
5)应定义一个重载赋值运算符的类成员函数,其函数定义如下(其中c_pointer是c_name的类成员,类型为指向type_name的指针)。如果该类提供了能够返回所需内容的公有方法,则可在运算符函数中使用这些方法,这样便不用将它们设置为友元函数了。2)如果析构函数通过对指针类成员使用delete来释放内存,则每个析构函数都应当使用new来初始化指针,或将它设置为空指针。1)对于指向的内存是由new分配的所有类成员,都应在类的析构函数中对其使用delete,该运算符将释放分配的内存。使用转换函数时要小心。
2024-05-26 23:15:52
345
原创 在windows下dat文件转mat
为了支持大文件的.dat文件转换,我们需要考虑如何处理大量数据以避免内存不足的问题。一般的方法是逐块读取.dat文件的数据并逐块写入.mat文件,而不是一次性读取整个文件的内容。需要安装hdf5库,参考https://blog.csdn.net/qq_36314864/article/details/139168631。代码下载:https://download.csdn.net/download/qq_36314864/89349164。
2024-05-24 11:22:31
533
原创 windows安装HDF5 C++库
地址1:https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8/hdf5-1.8.18/bin/windows/地址2:https://portal.hdfgroup.org/display/support/HDF5+1.8.18。地址3:https://download.csdn.net/download/qq_36314864/89348993。查看系统path,是否添加进去。打开vs添加需要配置。
2024-05-24 10:54:15
1266
原创 SCPI控制
SCPIInterface依赖于Boost.Asio、SCPIParser。Boost.Asio为异步网络通信库,用于异步接受客户端请求、向客户端发送响应,SCPIParser为SCPI指令解析器,用于解析SCPI指令。利用SCPIInterface进行客户端与设备通信的过程如下图。客户端向服务端发送的SCPI指令分为查询指令和控制指令,查询指令用于查询设备状态及参数等信息,控制指令用于控制设备。TCPListner接收到客户端SCPI指令后,交给NetParser解析,执行与SCPI指令绑定的处理例程。
2024-05-10 11:13:58
610
原创 用asio::tcp通信的服务端
第三方库下载地址:https://download.csdn.net/download/qq_36314864/89227706。代码下载地址:https://download.csdn.net/download/qq_36314864/89227693。
2024-04-26 17:13:23
511
1
原创 spdlog C++日志管理 安装和下载
点击spdlog.sln,用vs2019打开,进行编译debug x64。每项都编译一下,会生成安装包。
2024-04-18 16:02:07
554
原创 嵌入式系统及应用-1.1嵌入式
嵌入式系统是以应用为中心,以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。定义:看不见的计算机,一般不能被用户编程,它有一些专用的I/O设备,对用户的接口是应用专用的。通常将嵌入式计算机系统简称为嵌入式系统。
2024-04-15 21:59:03
208
原创 通过共享内存方式发送、接受扫频信号
连接一个ursp设备,新建一个exe工程,配置为release x64,注意uhd.lib和uhd.dll版本不然会识别不了。代码下载位置:https://download.csdn.net/download/qq_36314864/89141261。代码下载:https://download.csdn.net/download/qq_36314864/89141239。代码下载:https://download.csdn.net/download/qq_36314864/89141246。
2024-04-15 16:32:42
123
原创 串口通信
打开两个XCOM V2.3,并按照上述虚拟串口进行配置,波特率要保持一致。比如COM3和COM6是连在一起的。打开串口,点击发送,收到正确即可。下载地址:https://download.csdn.net/download/qq_36314864/89139785。下载地址:https://download.csdn.net/download/qq_36314864/89139793。我写了一个动态库,有打开串口,读写串口,根据串口协议来的编写的一个demo,需要自己改一下配置。根据里面文档进行安装。
2024-04-15 11:34:42
445
原创 sdrangel使用说明
首先找一个usrp设备,我找到的是b205进行连接。打开生成的sdrangel.exe,第一次打开会出现空白界面。点击OK后,会响应一段时间,然后弹出两个窗口,一个可以设备相关参数,一个是频谱图,余晖图,瀑布图的显示。然后会弹出一个设备刷新窗口,选择你需要的设备。点击Add Rx Device按钮。
2024-04-03 14:53:06
1560
原创 sdrangel下载与部署for windows
然后在build下面新建bin文件,用vs打开sdrangel.sln,注意是release x64,点击ALL_BUILD进行编译。点击Add Entry,添加CMAKE_PREFIX_PATH为Qt安装路径。点击Add Entry,添加PKG_CONFIG_EXECUTABLE。点击Configure看有无报错,然后点击Generate。点击configure,只出现warning,没有报错了。点击Configure,继续修改报错的问题。如果报错,说明代码没下拉全,重新下拉代码。
2024-03-26 18:44:06
1204
原创 ChatGPT提示词Prompts
在描述问题时,尽量提供尽可能多的信息,例如问题的具体情境、操作步骤、错误提示等。3)投喂示例:根据上个对话的规范,给ChatGPT投喂对应的优秀示例让它进一步学习规范。2)明确规范:告诉ChatGPT应该遵循哪一些既定的业务规则,以及需要按照什么样的规范和格式输出答案。:提出针对性强的问题,可以得到更有价值的答案。:使用简洁明了的语言有助于更好地理解你的问题,并且回答更加精准。不好的问题:你觉得你是否已经掌握了所有必要的技能?不好的问题:这个决策有多大的风险。不好的问题:我的衣服上有污渍,怎么办?
2024-03-13 15:06:59
1278
原创 物联网导论
物联网:是一个基于互联网、传统电信网等信息承载体,让所有能够被独立寻址的普通物理对象实现互联互通的网络。它具有普通对象设备化、自治终端互联化和普适服务智能化三个重要特征。按照规定的协议,将具有感知、通信、计算等功能的智能物体、系统、信息资源互联起来,实现对物理世界泛在感知、可靠传输、智慧处理的智能服务系统。
2024-03-09 13:05:54
443
原创 OpenCL编程快速入门
3.利用clGetDeviceInfo和clGetPlatform和clGetDeviceInfo获得硬件的参数信息。7.在host创建Buffer,利用MapBUffer将数据从内存映射出来。9.创建GPU显存,利用MapBuffer将数据从=显存中映射出来。5.创建context,绑定对应的device,platform。10.利用WriteBuffer,将host中的数据写入显存。2.根据不同的platform获得不同的device。8.对内存上的数据进行初始化。12.释放opencl资源。
2023-12-26 15:22:23
727
原创 OpenCL编程指南-11.1OpenCL嵌入式简档
OpenCL规范定义了两个简档:一个是面向桌面设备的简档(完全简档),另一个是面向手持设备和嵌入式设备的简档(嵌入式简档)。手持和嵌入式设备在屏幕大小和电源方面存在很大限制,需要对完全简档中定义的需求有所放宽。嵌入式简档的着眼点是完全简档所需的OpenCL 1.1规范的一个严格子集。嵌入式简档作为完全简档的一个严格子集,有以下好处:1)可以为两个简档提供一个规范,而不需要单独的规范。2)为嵌入式简档编写的OpenCL程序可以在实现完全简档的设备上运行。
2023-09-15 16:32:50
378
原创 雷达重要概念
雷达,是英文Radar的音译,源于radio detection and ranging的缩写,意思为“无线电探测和测距”,即用无线电的方法发现目标并测定它们的空间位置。因此,雷达也被称为“无线电定位”。雷达是利用电磁波探测目标的电子设备。雷达发射电磁波对目标进行照射并接收其回波,由此获得目标至电磁波发射点的距离、距离变化率(径向速度)、方位、高度等信息。雷达是利用电磁波探测目标的电子设备。
2023-09-08 15:39:09
2089
原创 OpenCL编程指南-10.2使用C++包装器API的矢量相加示例
乍一看可能会让你有些害怕,因为这里使用了一种称为特征类(traits)的C++模板技术(这里用于关联clGetXXInfo()提供的共享功能),不过,由于使用这些getInfo()函数的程序在实际中从来不需要引用特征类组件,所以对于开发人员编写的代码没有任何影响。这些缓冲区对象使用cl::Buffer()创建。对于局部工作大小,使用cl::Range()对象的一个特殊实例cl::NullRange,顾名思义,它对应于C API中传递NULL,允许运行时为设备确定最佳的工作组大小和请求的全局工作大小。
2023-09-07 16:11:57
531
原创 OpenCL编程指南-10.1C++包装器API
C++API划分为多个类,分别映射到一个OpenCL C类型,例如,cl::Memory类就映射到OpenCL C中的cl_mem。不过,C++ API会尽可能使用继承提供额外的一层类型抽象;例如,类cl::Buffer派生自基类cl::Memory,表示所有可能的OpenCL内存对象的1维内存子类。类层次体系结构见图12-1。一般地,C++类类型到底层OpenCL C类型有直接的映射,在这种情况下,底层C类型可以通过操作符()访问。//not safe。
2023-09-07 11:39:34
618
原创 OpenCL编程指南-9.3使用事件完成评测、内核中的事件、OpenCL外部的事件
所以我们完成一个异步复制,将B的一列从全局内存复制到局部内存(使得所有工作项都能使用相同的列),之后再将A的一行复制到私有内存(这里,计算乘积矩阵C的各个元素时工作项可以反复使用这一行)。换句话说,连接OpenCL和OpenGL的命令定义为:在最常见的需要同步的情况下,这些命令会自动执行。要实现这个方法,将A的行与B的列相乘的for循环必须等待,直到异步复制完成。因此,在理想情况下,任何对象如果能够表示为队列中的命令,就应当提供一个事件接口。评测将事件转换为一个包含计时数据的不透明的对象。
2023-09-06 18:29:30
215
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅