- 博客(144)
- 资源 (17)
- 收藏
- 关注
原创 git查看远程仓库地址和重定向到新地址(by deepseek)
Git查看和修改远程仓库地址的方法: 查看远程仓库地址: 使用git remote -v查看所有远程仓库地址 使用git remote show origin查看指定仓库详情 修改远程仓库地址: 当服务器IP变更时,使用git remote set-url origin 新地址更新 示例:将192.168.120.218改为192.168.140.100 修改后可通过git remote -v验证 其他相关操作: git fetch测试连接 多个远程仓库需分别修改 确保新地址可访问且端口正确 常用命令简洁明
2026-01-08 09:47:13
242
原创 popen的使用
摘要:popen()是C标准库函数,用于创建管道并执行shell命令,实现父子进程间单向通信。其语法为FILE* popen(const char* command, const char* mode),支持读取("r")或写入("w")模式。典型应用包括读取命令输出(如ls -l)或向命令输入数据(如grep)。需注意:1) 使用pclose()关闭管道;2) 存在shell注入风险,需清理用户输入;3) 仅支持单向通信,双向通信需改用pipe()+fork()。适
2026-01-07 16:00:30
209
原创 linux中backtrace实战
该C程序实现了信号捕获和堆栈跟踪功能,用于调试程序崩溃问题。当程序发生段错误(SIGSEGV)或除零错误(SIGFPE)时,会调用signal_handle函数打印详细的调用栈信息。程序通过backtrace和dladdr函数获取并解析堆栈信息,包括函数名、库文件和偏移量。演示了空指针引用(null_pointer_dereference)和除零操作(division_by_zero)两种常见错误场景。编译时需要-g-rdynamic选项支持堆栈跟踪,-ldl选项支持动态链接库解析。通过objdump和ad
2025-12-12 18:39:41
206
原创 嵌入式中websocket和mqtt的场景对比(deepseek教我学嵌入式)
WebSocket与MQTT协议对比及应用场景分析 WebSocket和MQTT都是基于TCP的实时通信协议,但设计目标和应用场景不同。WebSocket是通用双向通信协议,提供原始数据通道,适合点对点实时交互;MQTT是专为物联网设计的发布/订阅消息协议,支持主题路由和多设备通信。 核心区别: 通信模型:WebSocket是点对点,MQTT采用发布/订阅 数据格式:WebSocket无限制,MQTT有固定报文格式 QoS:MQTT内置三级服务质量,WebSocket需自行实现 应用场景选择: WebSoc
2025-11-20 17:52:05
73
原创 Linux内核KGDB进阶:源码级调试实战演练(转)
不同于入门级的环境搭建,本文聚焦KGDB进阶实战:从串口调试到网络调试的切换技巧,多核环境下断点绑定核心的关键操作,再到驱动模块动态加载后的符号匹配难题,全是一线开发中高频遇到的场景。我们会以真实的网卡驱动异常案例为线索,演示如何用KGDB定位中断处理函数的逻辑漏洞,如何通过观察寄存器状态还原问题现场。无论你是刚接触内核调试的新手,还是被复杂问题困住的资深开发者,这份实战指南都能帮你打通KGDB使用的“任督二脉”,让内核调试不再靠“猜”。
2025-11-17 23:11:40
842
原创 C++原子操作实战:无锁数据结构的实现技巧(转)
本文深入探讨了C++原子操作在多线程编程中的应用与性能优化。文章首先通过比较普通变量与原子变量在高并发场景下的表现,展示了原子操作如何有效解决数据竞争问题。随后详细介绍了std::atomic类模板及其内存模型,包括memory_order_relaxed、memory_order_release等不同级别的顺序保证,并分析了原子操作在硬件层面的实现原理和性能考虑。重点通过无锁队列和栈的实现案例,解析了如何利用CAS(Compare-And-Swap)操作构建高性能的无锁数据结构,相比传统锁机制可显著减少线
2025-11-17 23:09:45
911
原创 c++中shared_from_this的用法(deepseek教我学c++)
摘要:std::enable_shared_from_this和shared_from_this()用于解决在对象内部安全获取自身shared_ptr的问题。直接使用this构造新shared_ptr会导致双重删除,而通过继承enable_shared_from_this并调用shared_from_this(),可获取与外部shared_ptr共享控制块的指针。使用时需确保对象已被shared_ptr管理,且不能在构造函数或栈对象上调用。典型应用包括异步回调、生命周期管理和链式调用等场景。
2025-09-15 15:12:10
871
原创 瑞芯微rv1126 linux内核使用spidev驱动
本文介绍了在Linux系统中通过spidev驱动框架操作SPI设备的方法。主要内容包括:1) 配置内核支持spidev驱动;2) 修改设备树将SPI设备绑定到spidev驱动;3) 编译测试工具spidev_test并修改其显示功能;4) 通过开发板测试读取ICM20608传感器数据。测试结果表明,使用spidev_test工具成功读取到传感器寄存器0x75的数据0xAE,验证了该方法的可行性。该方法无需编写内核驱动,直接在用户空间即可操作SPI设备。
2025-09-03 16:02:19
818
原创 完美转发 std::move和std::forward(转)
摘要:本文深入解析了C++中的std::move和std::forward机制。std::move用于将左值无条件转换为右值引用,优化资源转移,减少拷贝开销。std::forward则实现完美转发,保持参数的左右值属性不变,通过引用折叠规则确保转发过程中类型正确传递。通过类A的示例演示了移动构造函数和拷贝构造函数的区别,说明std::forward在转发右值引用时避免隐式转换为左值的关键作用。两者配合使用能显著提升C++程序的性能表现。
2025-08-26 09:32:48
778
原创 std::move 与 std::forward 的区别(转)
文章摘要:本文深入解析C++中的左值、右值概念及其相关工具std::move与std::forward。左值是有固定内存地址的持久对象,右值则是临时对象。std::move用于将左值强制转换为右值引用以启用移动语义,实现资源高效转移;std::forward则用于模板函数中完美转发参数,保持其原始值类别。两者虽同属C++11特性,但功能不同:std::move是无条件转换,std::forward是有条件转发。通过对比分析,文章阐明了它们在移动语义和完美转发中的具体应用场景及注意事项。
2025-08-26 08:53:14
731
原创 Epoll原理剖析:为什么它是高并发的王者?(转)
Epoll技术原理与性能优势分析 核心机制: 事件驱动架构:采用回调机制,仅当文件描述符状态变化时触发通知,避免无效轮询,显著减少系统开销。 高效数据结构: 红黑树管理注册的fd(O(logN)操作复杂度) 双向链表维护就绪队列,epoll_wait只需遍历活跃连接 零拷贝优化:通过mmap共享内存减少内核态与用户态数据拷贝。 性能对比: 相比select/poll的O(n)遍历,epoll时间复杂度为O(1) 支持百万级并发连接,突破select的1024fd限制 实测吞吐量可达select的5倍以上(1
2025-08-06 21:49:06
591
原创 告别内存烦恼,C++智能指针来救场(转)
C++智能指针解析:内存管理的现代解决方案 本文深入探讨C++智能指针技术,分析其在内存管理中的核心优势。通过对比传统手动内存管理易导致的内存泄漏、悬空指针等问题,详细介绍了三种主要智能指针类型:std::unique_ptr(独占所有权)、std::shared_ptr(共享所有权)和std::weak_ptr(解决循环引用)。文章阐述了智能指针的RAII机制和引用计数原理,并通过文件处理、游戏角色管理等实际案例展示其应用场景。同时指出智能指针的性能考量,建议在不需要共享资源时优先选用std::uniqu
2025-08-06 21:46:20
922
原创 深度解读:基于Libevent实现百万级并发(转)
简单来说,libevent 是一个轻量级的开源高性能网络库 ,用 C 语言编写,犹如一位低调而强大的幕后英雄,为众多网络应用提供了坚实的底层支持。它就像是一个精心构建的舞台,各种网络事件在上面有序上演,开发者则如同导演,通过 libevent 提供的接口,指挥着这些事件的发生与处理。libevent 采用了事件驱动(event-driven)的设计模式,这是它的核心魅力所在。想象一下,你开了一家餐厅,传统的服务方式是服务员逐个询问顾客需求,效率低下。
2025-08-06 21:21:39
862
原创 ov5640摄像头jpeg模式示例配置
本文分享了将OV5640摄像头从RGB565模式切换为JPEG模式的经验。通过修改寄存器配置,启用了YUV422格式和JPEG编码功能,并调整了分辨率、时钟等参数。在STM32H7平台上,只需启用DCMI的JPEG模式即可。数据处理时通过识别0xFFD8和0xFFD9标记来定位JPEG图像起始位置和长度,最后以.jpg格式保存到文件系统。该方法简化了图像采集流程,可直接生成可查看的JPEG图片。
2025-07-21 10:37:54
1149
原创 ffplay显示rgb565格式的文件
摘要:本文介绍了如何使用ffplay工具查看OV5640摄像头拍摄的RGB565格式图片。通过指定像素格式为rgb565、视频尺寸为400x300、帧率为15fps等参数,成功用命令"ffplay -f rawvideo -pixel_format rgb565 -video_size 400x300 -framerate 15 picture.bin"播放了二进制图片文件。内容包含具体命令格式和执行效果说明,适用于需要处理原始视频数据的开发者参考。
2025-07-18 18:13:51
213
原创 fatal: unable to access ‘https://github.com/phz76/rtspserver.git/‘: failed to connect to github.com
摘要:GitHub使用SSH密钥连接成功解决了HTTPS无法克隆仓库的问题。操作步骤:1.生成SSH密钥对;2.将公钥添加到GitHub账户;3.改用SSH链接克隆仓库。该方法比HTTPS更稳定可靠,解决了代理设置无效的连接问题。
2025-07-10 11:20:36
225
原创 stm32h7调试ltdc有黑线问题解决
摘要:调试STM32H7的RGB接口时,使用CubeMX配置LTDC模块的时序和图层参数。主要遇到三个问题:1)图层需设置为不透明才能显示画面;2)显存数组地址超出范围,需定位到正确内存地址;3)刷屏出现黑线,需禁用MPU、I-Cache和D-Cache以确保稳定显示。通过解决这些问题,成功实现了稳定的RGB接口控制。
2025-06-23 17:45:01
300
原创 stm32h7调试cubemx生成的sdcard和fatfs默认代码,进入hardfault问题解决
在STM32H7开发板使用CubeMX生成SD卡和FATFS代码时,运行挂载函数导致hardfault中断。调试发现SD卡初始化后FATFS函数指针异常,指向错误地址。经分析是堆栈溢出所致,SD卡初始化过程消耗较多堆栈空间。将默认堆栈大小从较小值调整为0x800后问题解决。该问题表明CubeMX生成的代码默认堆栈设置可能不足,开发时需根据外设操作复杂度调整堆栈大小以避免溢出。
2025-06-18 16:07:38
444
原创 Linux操作系统实战:进程创建的底层原理(转)
Linux系统在服务器、开发环境等关键场景中占据核心地位,全球超90%的超级计算机和众多大型企业级应用都运行在Linux上。其高稳定性、安全性和开源特性使其成为开发者的首选。Linux进程是系统资源分配和调度的基本单位,驱动着系统的稳定运行。深入理解进程的工作原理,如进程创建、状态管理、调度和进程间通信,是掌握Linux系统的关键。通过优化算法、合理分配内存和优化I/O操作,可以显著提升进程性能和系统效率。Linux进程的并发处理、守护进程的创建以及进程间通信的实例展示了其在实际应用中的强大功能。掌握这些技
2025-05-14 20:13:24
1139
原创 Linux操作系统实战:中断源码的性能分析(转)
Linux中断机制是操作系统响应硬件或软件事件的核心机制,分为硬件中断和软件中断。硬件中断由外部设备触发,如磁盘I/O完成或网络数据包到达;软件中断由CPU内部产生,如除零错误或页面故障。中断发生时,CPU暂停当前任务,根据中断向量表找到相应的处理程序并执行。Linux内核通过驱动程序管理各种硬件设备及其对应的中断处理程序,深入分析中断源码有助于调试和性能优化。中断处理分为上半部和下半部,上半部快速响应硬件,下半部处理耗时任务。软中断、Tasklet和工作队列是实现下半部的三种机制。通过优化中断处理程序、设
2025-05-14 20:10:40
1090
原创 linux驱动中spin_lock和信号量之间有什么区别(deepseek教我写驱动)
在Linux内核驱动开发中,spin_lock和信号量是两种常用的同步机制,用于保护共享资源,但它们在等待机制、使用场景和性能影响等方面有显著区别。spin_lock采用忙等待机制,适用于中断上下文和极短的临界区操作,因为它不会让出CPU,但长时间自旋会浪费CPU资源。信号量则采用睡眠等待机制,适用于较长的临界区操作或允许睡眠的上下文,因为它会主动让出CPU,避免资源浪费。此外,使用spin_lock时禁止调用可能引发睡眠的函数,因为自旋锁的持有期间必须保证原子性和不可中断性,否则可能导致死锁或系统崩溃。
2025-05-14 17:19:27
722
原创 stm32 CubeMX生成的hal代码,i2c一直卡在I2C_WaitOnTXISFlagUntilTimeout问题解决
直接用cubemx生成i2c的hal控制代码,调用HAL_I2C_Mem_Read想去读取一下codec的寄存器,发现一直卡在I2C_WaitOnTXISFlagUntilTimeout。假设你的设备的地址是0x10,那么需要左移一位,否则发送设备地址的时候就会nack,然后txis就一直是0。没想动示波器,就搜了搜,发现这个玩意儿跟linux的i2c一样的,对于7位的设备地址,需要往左移一位。这个txis寄存器说是发送寄存器空闲标志,但是上电后一直为0,比较奇怪,这不可能。
2025-05-06 16:16:04
480
原创 内存 “舞台” 上,进程如何 “翩翩起舞”?(转)
在深入了解进程与内存的关系之前,我们先来认识一下内存这个计算机的关键部件。内存,也被称为内存储器或主存储器,它就像是计算机的 “临时仓库”,在计算机运行程序时扮演着至关重要的角色。内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。内存(Memory)也被称为内存储器,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。
2025-05-01 19:57:07
749
原创 解锁Linux共享内存:进程间通信的超高速通道(转)
在Linux系统的进程间通信 “江湖” 中,众多通信方式各显神通。管道,如同隐秘的地下通道,让有亲缘关系的进程能够悄然传递信息;消息队列则似邮局,进程可投递和接收格式化的消息包裹。然而,有一种通信方式却以其独特的 “高速” 特性脱颖而出,它就是共享内存。想象一下,进程们原本各自生活在独立的 “小天地” 里,有着自己专属的虚拟地址空间。但共享内存却如同神奇的 “任意门”,打破了进程间的隔阂,让多个进程能够直接访问同一块内存区域。
2025-04-25 11:29:28
778
原创 Linux内核追踪神器:perf实现原理剖析(转)
在 Linux 性能分析的广袤领域中,Perf 犹如一颗璀璨的明星,散发着独特的光芒。Perf,即 Performance 的缩写,是一款集成于 Linux 内核的性能分析工具,如同一位技艺精湛的诊断大师,能深入系统的各个角落,精准地剖析系统性能。它以事件驱动为核心机制,如同精密的仪器,能够捕捉到硬件、软件以及内核层面的各种性能事件。随着 Linux 内核的不断演进,Perf 也在持续发展壮大。从最初简单的性能监测,到如今具备丰富多样的功能,Perf 已经成为 Linux 性能分析不可或缺的工具。
2025-04-02 11:18:55
1325
原创 Linux TCP回显服务器实现(deepseek教我写代码)
通过告诉内核"父进程完全不需要子进程的退出信息",使得内核自动回收终止的子进程资源,从而从根本上避免了僵尸进程的产生。这种方式:简洁高效(无需循环调用wait()适合不需要收集子进程状态的场景是现代Linux系统中处理僵尸进程的推荐方式之一这两个close()明确进程职责:父子进程各司其职,关闭不需要的资源引用精细控制生命周期:通过引用计数机制确保资源及时释放系统健壮性保障:预防资源泄漏导致的级联故障这种模式体现了UNIX哲学中"做一件事并做好"的设计思想,是构建可靠网络服务的基础。
2025-03-22 22:43:33
1239
原创 吐血整理 | 肝翻linux内核常用数据结构汇总(转)
在计算机科学的璀璨星空中,数据结构是一颗耀眼的明星,它是计算机存储、组织数据的巧妙方式,如同建筑中的蓝图,规划着数据的布局与管理。简单来说,数据结构就是相互之间存在一种或多种特定关系的数据元素的集合,它涵盖了数据的逻辑结构、物理结构以及相关的操作运算。数据结构主要分为线性结构和非线性结构。线性结构中的数据元素呈现出一对一的线性关系,如同一条整齐排列的队伍,数组、链表、栈和队列等都属于这一范畴;非线性结构则更为复杂,元素之间存在一对多或多对多的关系,像是一张错综复杂的关系网,树和图就是典型的非线性结构。
2025-03-20 09:51:13
1069
原创 Linux C++编程死锁排查:借助Shell与GDB找到真相(转)
在多线程编程的领域中,死锁是一个让人头疼不已的问题。简单来说,死锁就是多个线程因为互相争夺资源,而陷入一种无限期的等待状态,导致所有线程都无法继续执行。就好比两个人过独木桥,独木桥一次只能容纳一个人通过,这两个人同时上了桥,一个从左边往右边走,另一个从右边往左边走,走到桥中间时,谁也不愿意退回去让对方先过,于是就僵持在那里,谁都无法到达对岸,这就是死锁在现实生活中的生动写照。在程序里,死锁通常发生在多个线程需要获取多个共享资源的时候。比如,线程 A 持有资源 1,并且想要获取资源 2;
2025-03-20 09:42:12
873
原创 Linux性能分析神器ftrace:从原理到实战(转)
ftrace,即 Function Trace 的缩写,是 Linux 内核自带的一款强大的跟踪工具。它诞生于 2008 年,由 Steven Rostedt 开发,并在 2.6.27 版本的内核中首次引入。最初,ftrace 只是一个简单的函数跟踪器,主要用于记录内核的函数调用流程,随着不断的发展和完善,如今它已演变成一个功能丰富的跟踪框架,采用插件式的设计,支持开发者添加更多类型的跟踪功能,在 Linux 内核的开发与调试中发挥着不可或缺的作用。
2025-03-20 09:39:18
990
原创 ubuntu中的ens33网卡在ifconfig中被默认关闭了?
突然打开ubuntu虚拟机,发现连不上网,输入ifconfig发现ens33是关闭的状态。systemd中的NetworkManager管理着系统的网络服务,使用:查看服务状态是显示运行的。查看systemd的启动日志:显示如下: 看到关键信息: 使用nmcli工具可以管理NetworkManager:此处主要是打开了NetworkManager的一个全局开关,允许管理所有网络设备,存储位置为:/var/lib/NetworkManager/NetworkManager.state,内容应为:
2025-03-18 16:00:43
1089
原创 linux makefile tutorial
一个makefile的教程,几个小时就能看完,对makefile有个总体加细节的系统了解,非常不错:Learn Makefiles With the tastiest examples中文翻译版:起步 - Makefile 教程 (gavinliu6.github.io)gcc官网手册:GNU make
2025-03-11 16:57:24
394
原创 P2P中NAT穿越方案(UDP/TCP)(转)
转自:P2P中NAT穿越方案(UDP/TCP)_udp反向链接-CSDN博客本文介绍了传统基于udp的打洞方式,更进一步阐述了tcp打洞的原理,是对于打洞原理最完善的讲解。————————————1、P2P简介对等网络,即对等计算机网络,是一种在对等者(Peer)之间分配任务和工作负载的分布式应用架构,是对等计算模型在应用层形成的一种组网或网络形式。因此,从字面上,P2P可以理解为对等计算或对等网络。在P2P网络环境中,彼此连接的多台计算机之间都处于对等的地位,各台计算机有相同的功能,无主从之分,一台计算
2025-03-10 11:59:02
1344
原创 TCP 和 UDP 可以使用同一个端口吗?(转)
当 TCP 服务进程重启时,服务端会出现 TIME_WAIT 状态的连接,TIME_WAIT 状态的连接使用的 IP+PORT 仍然被认为是一个有效的 IP+PORT 组合,相同机器上不能够在该 IP+PORT 组合上进行绑定,那么执行 bind() 函数的时候,就会返回了 Address already in use 的错误。如果客户端都是与同一个服务器(目标地址和目标端口一样)建立连接,那么如果客户端 TIME_WAIT 状态的连接过多,当端口资源被耗尽,就无法与这个服务器再建立连接了。
2025-03-10 10:49:20
683
原创 Tutk P2P的原理和常见的实现方式(转)
例如,当A发送一个UDP数据包给B的公网地址时,数据包最初有源IP地址和端口地址10.0.0.1:1234和目的地址155.99.25.11:62001,NAT收到包后,将其转换为源155.99.25.11:62000(A的公网地址)和目的10.1.1.3:1234,然后再转发给B。在中间件为常见的NAPT的情况下(也是本文主要讨论的),内网中的客户端没有单独的公网IP地址,而是通过NAPT转换,和其他同一内网用户共享一个公网IP。假设客户端A和客户端B的地址都是内网地址,且在不同的NAT后面。
2025-03-07 16:34:20
1274
原创 打破边界,Linux环境下的内存越界调试技巧(转)
在 Linux 系统中,程序的运行依赖于内存的合理分配和使用。当程序发生内存越界时,就好比一个人在自己的房间里肆意妄为,不仅把自己房间搞得乱七八糟,还闯入了别人的房间捣乱。程序会访问到不属于它分配范围内的内存空间,这会导致一系列严重的后果。比如,它可能会改写其他重要数据,就像在别人房间随意涂改别人的东西,使得程序后续使用这些数据时出现错误;也可能会导致内存泄漏,就像一个人不断占用别人的房间却不归还,使得系统内存资源越来越少;更严重的是,直接导致程序崩溃,整个 “居住环境” 都被破坏。
2025-02-18 22:01:35
1142
原创 Linux进程间通信:深度剖析与实战指南(转)
Linux 进程间通信(Inter-Process Communication,IPC)是指在多道程序环境下,进程间进行数据交换和信息传递的一种机制或方法。在现代操作系统中,进程是系统资源分配的基本单位,不同进程之间需要相互合作和通信,才能完成各种任务。进程间通信是实现进程间协作的重要手段。进程间通信在 Linux 系统中至关重要。每个进程在 Linux 环境下都有独立的用户地址空间,一般情况下,进程间的进程空间不能相互访问。但在很多实际应用场景中,进程与进程之间需要进行通信,以共同完成特定的功能需求。
2025-02-18 21:26:33
739
原创 深入内存调试:Valgrind工具的终极指南(转)
tool=<name> 最常用的选项。运行 valgrind中名为toolname的工具。默认memcheck。h –help 显示帮助信息。-version 显示valgrind内核的版本,每个工具都有各自的版本。q –quiet 安静地运行,只打印错误信息。v –verbose 更详细的信息, 增加错误数统计。-trace-children=no|yes 跟踪子线程?[no]-track-fds=no|yes 跟踪打开的文件描述?[no]
2025-02-18 21:18:46
1255
原创 解锁Linux“故障宝藏”:Core Dump分析秘籍(转)
Core Dump 分析在 Linux 程序开发与调试中扮演着举足轻重的角色。通过深入了解 Core Dump 的生成机制,我们能够精准地捕捉程序崩溃瞬间的关键信息,为后续的问题排查工作奠定坚实基础。在实际的开发过程中,无论是指针操作不当、数组越界,还是多线程环境下的数据竞争等问题,都可能引发 Core Dump。
2025-02-18 13:10:24
1584
原创 当Linux程序“跑路”:利用Backtrace快速精准定位“案发现场”(转)
backtrace,中文可译为 “回溯”,是一个用于生成函数调用栈的工具,在程序崩溃或者出现异常时,可以通过 backtrace 来获取函数调用栈信息。这些信息就像是程序运行的 “脚印”,记录了程序执行的路径,能帮助我们了解到程序的执行流程,定位问题发生的位置。在程序运行过程中,函数之间会相互调用,形成一个调用链。当程序出现异常退出时,我们往往不知道问题出在哪里。
2025-02-18 09:22:43
1275
原创 ubuntu中使用ffmpeg库进行api调用开发
上面是我的一个文件夹结构,我把ffmpeg的库放到lib文件夹中,自己的代码放到src里面,顶层有CMakeLists.txt,各个子文件夹有各自的CMakeLists.txt。一般情况下,熟悉了ffmpeg的命令行操作,把他当成一个工具来进行编解码啥的问题不大,不过如果要把功能集成进自己的软件中,还是要调用ffmpeg的api才行。ffmpeg的源码和外带的模块有点太多了,直接用官网别人编译好的库就可以了,下面的操作就是演示使用cmake调用ffmpeg的库,来进行api的开发。
2024-12-06 16:54:53
765
keil Compiler Version 5:ARMCompiler-506-Windows-x86-b960
2024-08-29
Orcad10.3 免安装精简版+可用lic
2024-07-02
Microsoft.HEVCVideoExtension-2.1.451.0-neutral
2024-02-18
易兆微yc1021源码
2019-03-22
嵌入式二维码显示方案,附源码
2018-04-11
source insight 4.0最新版加破解文件
2017-10-31
unicode转gb2312码表
2018-04-02
nxp nfc天线pcb匹配参数设计工具AntennaTool
2020-12-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅