FFMEPG常见命令查询
基本参数
表格1:主要参数
参数 | 说明 |
---|---|
-i | 设定输入流 |
-f | 设定输出格式(format) 高于后缀名 |
-ss | 开始时间 |
-t | 时间长度 |
codec | 编解码 |
表格2:音频参数
参数 | 说明 |
---|---|
-aframes | 设置要输出的音频帧数 |
-f | 音频帧深度 |
-b:a | 音频码率 |
-ar | 设定采样率 |
-ac | 设定声音的Channel数 |
-acodec | 设定声音编解码器,如果用copy表示原封不动的复制音频流 |
-an | 不处理音频 |
-af | 音频过滤器 |
表格3:视频参数
参数 | 说明 |
---|---|
-pix_fmt | 提取像素格式 |
-vframes | 设置要输出的视频帧数 |
-framerate | 视频帧率(更多用于与 FFmpeg 的过滤器配合使用,特别是在处理视频时需要指定帧率的场景。) |
r | 显式地设置输出视频的帧率 |
-b | 设定视频码率 |
-s | 指定视频分辨率->直接处理原始视频帧或图像序列 |
video_size | 某些特定的 FFmpeg 过滤器或输出格式中更常见,尤其是在处理封装格式(如 MP4、AVI 等)时。 |
-b:v | 视频码率 |
-vn | 不处理视频 |
-aspect | aspect 设置横纵比 4:3 16:9 或 1.3333 1.7777 |
-vcodec | 设定视频编解码器,如果用copy表示原封不动的复制视频流 |
-vf | 视频过滤器 |
-vbsf | 用于指定视频比特流过滤器(video bitstream filter)。比特流过滤器主要用于在不进行实际解码和重新编码的情况下对视频数据流进行处理和修改。这可以包括修复损坏的数据流、重新组织数据包、或者执行其他比特流级别的操作。 |
实战基本参数
提取音视频
- 保留封装格式
-
- 音频
ffmpeg -i .\test.mp4 -acodec copy -vn audio.mp4
- 音频
注解:只有音频 视频显示波形
-
- 视频
ffmpeg -i .\test.mp4 -vcodec copy -an video.mp4
- 视频
无声音
- 提取视频()
第一要查看输入视频的编解码协议
第二要查看编解码协议的编解码器
ffmpeg -codecs |findstr h264(windows 系统)
一般最右边括号里面选一个就行 一般第一个
ffmpeg -codecs |grep h264(linuxs系统)
-
- 保留格式(查看编码)
ffmpeg -i .\test.mp4 -vcodec copy -an test_copy.h264
- 保留格式(查看编码)
-
- 强制格式(改变编码)
ffmpeg -i .\test.mp4 -vcodec libx264 -an test.h264
- 强制格式(改变编码)
-
- 音频
-
- 保留格式
ffmpeg -i .\test.mp4 -acodec copy -vn test_copy.aac
- 保留格式
-
- 强制格式
ffmpeg -i .\test.mp4 -acodec aac -vn test.aac
- 强制格式
封装命令
- 保持编码格式
ffmpeg -i test.mp4 -codec copy test_copy2.ts
- 改变编码格式
ffmpeg -i test.mp4 -vcodec libx265 -acodec libmp3lame out_h265_mp3.mkv
-修改帧率
ffmpeg -i test.mp4 -r 15 output2.mp4
-修改视频码率
ffmpeg -i test.mp4 -b:v 400k output_bvflv - 修改音频码率:
ffmpeg -i test.mp4 -b:a 192k output_ba.mp4 - 修改音视频码率:
ffmpeg -i test.mp4 -b:v 400k -b:a 192k output_bva.mp4
修改视频分辨率: - ffmpeg -i test.mp4 -s 480x270 output_480x270.mp4
修改音频采样率: - ffmpeg -i test.mp4 -ar 44100 output_44100hz.mp4
一个视频质量由码率 分辨 帧数决定 音频为 音频采样率(一般由决定音频帧) 音频码率 音频深度(分辨率) 通道数
提取和播放数据
提取YUV
- 提取3秒数据,分辨率转为320x240
ffmpeg -i test.mp4 -t 3 -pix_fmt yuv420p -s 320x240 yuv420p_320x240.yuv
提取RGB
- 提取3秒数据,分辨率转为320x240
ffmpeg -i test.mp4 -t 3 -pix_fmt rgb24 -s 320x240 rgb24_320x240.rgb
提取PCM
ffmpeg -i buweishui.mp3 -ar 48000 -ac 2 -f s16le 48000_2_f16le.pcm
RGB和YUV之间的转换
ffmpeg -s 320x240 -pix_fmt yuv420p -i yuv420p_320x240.yuv -pix_fmt rgb24 rgb24_320x240_2.rgb
播放YUV数据
ffplay -pixel_format yuv420p -video_size 320x240 -framerate 5 yuv420p_320x240.yuv
播放RGB数据
ffplay -pixel_format rgb24 -video_size 320x240 -framerate 5 -i rgb24_320x240.rgb
播放PCM数据
ffplay -ar 48000 -ac 2 -f s32le 48000_2_s32le.pcm
过滤器参数
裁剪和拼接 (推荐用ts格式)
ffmpeg -i 1.mp4 -codec copy -vbsf h264_mp4toannexb 1.ts
ffmpeg -i 2.mp4 -codec copy -vbsf h264_mp4toannexb 2.ts
ffmpeg -i 3.mp4 -codec copy -vbsf h264_mp4toannexb 3.ts
- 拼接(用字符串)
(1)ffmpeg -i "concat:1.ts|2.ts|3.ts" -codec copy out_ts.mp4
(2)ffmpeg -f concat -i list.txt -codec copy out_ts2.mp4
这个txt文件为
file ‘1.ts’
file ‘2.ts’
file ‘3.ts’
对于音视频参数不一样的情况
视频分辨率可以不同,但是编码格式需要统一。
音频编码格式需要统一,音频参数(采样率/声道等)也需要统一。
图片和视频
- 单独帧情况(关于动图 后缀名你设置)
ffmpeg -i test.mp4 -y -f image2 -ss 00:00:02 -vframes 1 -s 640x360 test.jpg
-i:指定输入文件。
-y:覆盖输出文件。
-f image2:指定输出格式为图片。
-ss:指定起始时间(00:00:02 表示从视频的第2秒开始)。
-vframes 1:指定截取1帧。
-s:指定输出图片的分辨率(640x360)
-
- (关于动图 后缀名你设置)
你得额外指定-t -r 后缀名为.git
ffmpeg -i test.mp4 -t 5 -s 640x360 -r 15 test.gif
- (关于动图 后缀名你设置)
- 多帧
ffmpeg -i test.mp4 -t 5 -s 640x360 -r 15 frame%03d.jpg
-t 5:指定处理视频的时长(5秒)(持续时长)。不指定 就是整个视频
-s 640x360:指定输出图片的分辨率。
-r 15:指定帧率(每秒15帧)。
frame%03d.jpg:指定输出文件名格式,%03d 表示帧编号,从001开始 C语言的风格
- 多帧转为图片
ffmpeg -f image2 -i frame%03d.jpg -r 25 video.mp4
-f image2:指定输入格式为图片序列。
图片裁剪
基本语法:crop=ow:oh:x:y :keep_aspect
ow(output width):指定输出视频的宽度。
oh(output height):指定输出视频的高度。
x:裁剪区域左上角的 X 坐标(相对于输入视频的左上角)。
y:裁剪区域左上角的 Y 坐标(相对于输入视频的左上角)。
keep_aspect 是一个可选参数,用于保持原始视频的宽高比。
ffmpeg -i input.mp4 -filter:v "crop=640:360:640:360" output.mp4
这个命令会从原始视频的中间位置(640, 360)开始裁剪出一个 640x360 的视频区域。
文字水印
ffmpeg -i input.mp4 -vf "drawtext=fontsize=100/fontfile=FreeSerif.ttf/text='hello world'/fontcolor=green:box=1:boxcolor=yellow"
-i input.mp4:指定输入文件是 input.mp4。
-vf:指定对视频帧应用的视频滤镜(video filter)。
drawtext=fontsize=100:设置文本水印的字体大小为 100。
fontfile=FreeSerif.ttf:指定用于文本水印的字体文件是 FreeSerif.ttf。这个字体文件需要在你的系统中可用,或者提供它的完整路径。
text=‘hello world’:设置文本水印的内容为 ‘hello world’。
fontcolor=green:设置文本水印的颜色为绿色。
box=1:指定为文本水印绘制一个边框。
boxcolor=yellow:设置文本水印边框的颜色为黄色。
图片水印
ffmpeg -i input.mp4 -vf "movie=logo.png[watermark];[in][watermark] overlay=10:10[out]" output.mp4
-i input.mp4:指定输入文件为 input.mp4。
-vf:指定对视频帧应用的视频滤镜链。
movie=logo.png[watermark]:加载名为 logo.png 的图片文件,并将其引用名称设置为 watermark。
[in][watermark] overlay=10:10[out]:
[in]:表示输入视频流。
[watermark]:表示加载的图片水印。
overlay:指定将水印叠加到视频流上。
=10:10:设置水印的起始位置,x 坐标为 10,y 坐标为 10。
[out]:指定叠加后的视频流名称。
ffplay -i input.mp4 -vf " movie=logo.png[watermark];[in][watermark]overlay=x=mod(50*t\,main_w):y=abs(sin(t))*0.7[out]"
movie=logo.png[watermark]:加载 logo.png 图片文件,并将其引用名称设置为 watermark。
[in][watermark]overlay=x=mod(50t,main_w):y=abs(sin(t))0.7[out]:
in:表示输入视频流。
watermark:表示上面加载的图片水印。
overlay:将水印图片叠加到视频流上。
x=mod(50t,main_w):设置水印的 x 坐标,使其在视频宽度内按时间 t (以秒为单位)进行周期性移动。mod(50t,main_w) 表示水印每 50 秒移动一个视频宽度的距离。
y=abs(sin(t))*0.7:设置水印的 y 坐标,使其根据正弦函数 sin(t) 的值在视频高度的 0.7 倍范围内上下波动。
out:指定叠加后的输出视频流。
- 画中画
ffplay -i input.mp4 -vf "movie=sub_320x240.mp4[sub];[in][sub]overlay=x=20:y=20[out]"
-i input.mp4:指定输入文件是 input.mp4。
-vf:指定对视频帧应用的视频滤镜链(video filtergraph)。
movie=sub_320x240.mp4[sub]:加载名为 sub_320x240.mp4 的视频文件,并将其引用名称设置为 sub。这个子视频将被用作水印或覆盖层。
[in][sub]overlay=x=20:y=20:将输入视频流([in])和子视频流([sub])进行叠加(overlay)。x=20 和 y=20 参数指定了子视频在主视频上的起始位置,即子视频左上角的 x 坐标为 20,y 坐标为 20。
[out]:指定叠加后的视频流名称,用于输出。
相关文章:
FFMEPG常见命令查询
基本参数 表格1:主要参数 参数说明-i设定输入流-f设定输出格式(format) 高于后缀名-ss开始时间-t时间长度codec编解码 表格2:音频参数 参数说明-aframes设置要输出的音频帧数-f音频帧深度-b:a音频码率-ar设定采样率-ac设定声音的Channel数-acodec设定…...
欢迎来到 Codigger Store:Boby周边专区
亲爱的 Codigger 用户们,感谢你们一直以来的支持与热爱!你们的每一次代码跳跃、每一次项目成功,都离不开你们对编程的热情和对 Codigger 的信任。为了回馈大家的厚爱,我们在 Codigger Store 中特别开设了 Boby 周边专区࿰…...
决策树模型
决策树(TDS) 注意1:决策树有很多种算法,比如:ID3算法,C4.5算法,CART算法,这三个算法的区别是选择最优划分属性的方法不同,第一个是根据信息增益来选;第二个是找出信息增益高于平均水…...
解锁深度学习激活函数
在深度学习的广袤天地里,激活函数宛如隐匿于神经网络架构中的神奇密码,掌控着模型学习与表达的关键力量。今天,就让我们一同深入探究这些激活函数的奇妙世界,揭开它们神秘的面纱。 一、激活函数为何不可或缺? 想象一…...
Kubernetes 深入浅出系列 | 容器剖析之容器安全
目录 1、容器真的需要privileged权限吗?一、什么是 --privileged 权限?二、privileged 的风险到底有多大?三、常见需求场景及更安全的替代方式四、如何判断容器是否真正需要特权? 2、不以 Root 用户运行容器,真的更安全吗&#x…...
Spring Boot应用中可能出现的Full GC问题
Full GC的原理与触发条件 原理 标记-清除:首先遍历所有对象,标记可达的对象,然后清除不可达的对象。复制算法:将内存分为两部分,每次只使用其中一部分。当这部分内存用完时,将存活的对象复制到另一部分&a…...
Maven 的安装与配置(IDEA)
2025/4/9 向 一、什么是Maven Maven 是一个基于项目对象模型(Project Object Model,POM)概念的项目构建工具(所以就是一个工具),它主要用于自动化项目的构建过程,包括编译、测试、打包、部署等…...
软考中级-软件设计师 2022年下半年上午题真题解析:通关秘籍+避坑指南
📚 目录(快速跳转) 选择题(上午题)(每题1分,共75分)一、 计算机系统基础知识 🖥️💻 题目1:计算机硬件基础知识 - RISC(精简指令集计算…...
全栈开发套件Telerik DevCraft——赋能现代化应用构建
Telerik DevCraft包含一个完整的产品栈来构建您下一个Web、移动和桌面应用程序。它使用HTML和每个.NET平台的UI库,加快开发速度。Telerik DevCraft提供完整的工具箱,用于构建现代和面向未来的业务应用程序,目前提供UI for ASP.NET MVC、Kendo…...
Windows + vmware + ubuntu+docker + docker-android实现Android模拟器构建和启动
文章目录 引言编译启动过程玩下adb最后 引言 Windows vmware ubuntudockerdocker-android实现Android模拟器启动 编译启动过程 #下载docker-android git clone https://github.com/budtmo/docker-android.gitmaqiubuntu:~/docker-android$ git remote -v origin https://…...
远程团队协作效率低,如何优化
在远程工作的环境中,团队协作效率低下成为许多企业面临的一大挑战。随着全球化和技术进步,远程团队的出现成为企业的常态,但由于沟通不畅、任务管理不明确、缺乏团队凝聚力等问题,往往会影响团队的整体效率。为了优化远程团队的协…...
Oracle 19C 通过 ODBC 连接 SQL Server 数据库指南 (Red Hat 7)
前言 本指南详细说明如何在 Red Hat Enterprise Linux 7 系统上配置 Oracle 19C 通过 ODBC 连接 SQL Server 数据库。这种异构数据库连接方式称为 Oracle Heterogeneous Services,允许 Oracle 数据库直接访问非 Oracle 数据源。 系统要求 操作系统:Red Hat Enterprise Linu…...
【MYSQL从入门到精通】数据类型及建表
一些基础操作语句 1.使用客户端工具连接数据库服务器:mysql -uroot -p 2.查看所有数据库:show databases; 3.创建属于自己的数据库: create database 数据库名;create database if not exists 数据库名; 强烈建议大家在建立数据库时指定编…...
鸿蒙开发中的并发与多线程
文章目录 前言异步并发 (Promise和async/await)多线程并发并发能力选择耗时任务并发执行场景常见业务场景 常驻任务并发执行场景常见业务场景 传统共享内存并发业务长时任务并发执行场景常见业务场景 并发任务管理线程间通信同语言线程间通信(ArkTS内)线…...
ruby self
在 Ruby 中,self 是一个指向当前对象的特殊变量,它的值根据代码的上下文动态变化。理解 self 的指向是掌握 Ruby 面向对象编程的关键。以下是详细解析: 一、self 的核心规则 self 始终指向当前方法的执行者(即调用方法的对象&…...
Kotlin 学习-集合
/*** kotlin 集合* List:是一个有序列表,可通过索引(下标)访问元素。元素可以在list中出现多次、元素可重复* Set:是元素唯一的集合。一般来说 set中的元素顺序并不重要、无序集合* Map:(字典)是一组键值对。键是唯一的…...
封装方法的辨析
equals //字符串 str1.equals(str2); //list的两个实现类 list1.equals(list2); //map的两个实现类 //比较所有的键值对是否相同 map1.equals(map2); //数组(包括string类型) //比较内容是否相同 Arrays.equals(array1, array2); contains 基本都有…...
解决 IntelliJ IDEA 中 Maven 项目左侧项目视图未显示顶层目录问题的详细步骤说明
以下是解决 IntelliJ IDEA 中 Maven 项目左侧项目视图未显示顶层目录问题的详细步骤说明: 1. 切换项目视图模式 默认情况下,IDEA 的项目视图可能处于 Packages 模式,仅显示代码包结构,而非物理目录。 操作步骤: 点击…...
CMIP6数据分析与可视化、降尺度技术与气候变化的区域影响、极端气候分析
当前的CMIP6计划相较于前代模型,在空间分辨率、物理过程表达和地球系统组件耦合等方面均有显著提升。 一:气候变化研究的AI新视角 1、气候模型基础与全球气候模型(GCM) 全球气候(环流)模型的基本原理、发…...
如何精准控制大模型的推理深度
论文标题 ThinkEdit: Interpretable Weight Editing to Mitigate Overly Short Thinking in Reasoning Models 论文地址 https://arxiv.org/pdf/2503.22048 代码地址 https://github.com/Trustworthy-ML-Lab/ThinkEdit 作者背景 加州大学圣迭戈分校 动机 链式推理能显…...
1. Git 下载和安装
文章目录 Git 下载Git 安装(以windows为例)Git 使用(以windows为例) Git 下载 1.进 Git 官网 https://git-scm.com/downloads 2.选择对应的操作系统 3.选择对应的操作系统位数 Git 安装(以windows为例)…...
git回滚指定版本并操作
你可以通过以下步骤切换到第三个版本。根据你的需求,有两种主要方法: 方法 1:临时查看第三个版本(不修改当前分支) 适用于仅查看或测试旧版本,不保留后续修改: 找到第三个版本的提交哈希&#…...
FastAdmin和thinkPHP学习文档
介绍 - FastAdmin框架文档 - FastAdmin开发文档https://doc.fastadmin.net/doc目录结构 ThinkPHP5.0完全开发手册 看云ThinkPHP V5.0是一个为API开发而设计的高性能框架——是一个颠覆和重构版本,采用全新的架构思想,引入了很多的PHP新特性,…...
通过HTTP协议实现Git免密操作的解决方案
工作中会遇到这样的问题的。 通过HTTP协议实现Git免密操作的解决方案 方法一:启用全局凭据存储(推荐) 配置凭证存储 执行以下命令,让Git永久保存账号密码(首次操作后生效): git config --g…...
git 查看某一文件夹下所有文件 修改记录
git: 如何查询某个文件或者某个目录的更新历史_git 查看指定文件夹的记录-CSDN博客 git log --follow path/to/your/file git log -p --follow path/to/your/file git log --stat --follow path/to/your/file这是最常用的方法,可以显示指定文件的所有提交历史…...
测试(一)
软件的生命周期: 需求分析——计划——设计——编码——测试——运行维护 常见的开发模型: 瀑布模型: 最基本的开发模型,绝大多数开发模型的基本框架。 特点:线性的开发流程 使用场景:需求固定ÿ…...
解决华硕主板Z890m下载ubuntu20.04后没有以太网问题
问题描述: 华硕主板Z890m下载双系统ubuntu20.04后,发现ubuntu不能打开以太网。 问题原因: 华硕主板的网卡驱动是r8125,而ubuntu20.04的驱动版本是r8169,所以是网卡驱动不匹配造成 解决方案 开机界面按下F2进入BOIS模式&#…...
从零推导飞机小扰动运动线性方程——0. 学习目录
第0期文章——学习目录 如图,本专栏将连载以下学习内容,带你从零开始学习飞机小扰动方程!...
Agentic AI 干货!DeepSeek + OpenAI SDK 构建 Agent 实战
引言: DeepSeek-R1、OpenAI-o1 等具备内化的假设、反思、验证等优秀推理能力的 LLM 大型推理模型将 AI 发展推进到智能体 AI 时代,将使 AI Agent 迸发出远超上一代由外化的手搓式简单推理 Agent 不可比拟的发展势能。 在 GTC2025 大会上,英伟…...
【语法】C++的list
目录 为什么会有list? 迭代器失效: list和vector的迭代器不同的地方: list的大部分用法和vector都很像,例如push_back,构造,析构,赋值重载这些就不再废话了,本篇主要讲的是和vecto…...
Java接口性能优化面试问题集锦:高频考点与深度解析
1. 如何定位接口性能瓶颈?常用哪些工具? 考察点:性能分析工具的使用与问题定位能力。 核心答案: 工具:Arthas(在线诊断)、JProfiler(内存与CPU分析)、VisualVM、Prometh…...
基于STM32与应变片的协作机械臂力反馈控制系统设计与实现---5.2 工业机械臂系统性能测试全方案(专业工程级)
5.2 工业机械臂系统性能测试全方案(专业工程级) 一、测试体系架构设计 1.1 三级测试体系 #mermaid-svg-A55VxjZ7ENKNWAli {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-A55VxjZ7ENKNWAli .error-icon{fill:#55…...
VM——相机拍照失败
1、问题:相机频闪触发,在MVS中正常出图,在VM中出现拍照失败 2、解决: 1、首先排查网络设置(巨帧是否设置) 2、电脑的所有防火墙是否关闭 3、在MVS中恢复相机的设置参数为默认参数,删除VM中的全…...
图解力扣回溯及剪枝问题的模板应用
文章目录 选哪个的问题17. 电话号码的字母组合题目描述解题代码图解复杂度 选不选的问题78. 子集题目描述解题代码图解复杂度 两相转化77. 组合题目描述解题代码法一:按选哪个的思路法二:按选不选的思路 图解选哪个:选不选 复杂度 选哪个的问…...
Trae + LangGPT 生成结构化 Prompt
Trae LangGPT 生成结构化 Prompt 0. 引言1. 安装 Trae2. 克隆 LangGPT3. Trae 和 LangGPT 联动4. 集成到 Dify 中 0. 引言 Github 上 LangGPT 这个项目,主要向我们介绍了写结构化Prompt的一些方法和示例,我们怎么直接使用这个项目,辅助我们…...
模糊测试究竟在干什么
目录 1.软件漏洞和缺陷 2.模糊测试与传统测试 3.汽车领域中的模糊测试 4.常见工具总结 1.软件漏洞和缺陷 提单、上票、拒收,这是开发和测试的日常博弈。大多数时候,我们是根据自己对需求的理解来进行开发和测试,这基本是属于功能层级。 …...
【RTD200P04 MCAL 篇3】 S32M244 PWM PDB ADC控制
【RTD200P04 MCAL 篇3】 S32M244 PWM PDB ADC控制 一,文档简介二,PWMTRGMUXPDBADC 2ch 软件配置与实现2.1 软硬件版本平台2.2 MCAL工程以及模块配置2.2.1 Dio 模块配置2.2.2 Adc模块配置2.2.3 Mcu模块配置2.2.4 Platform模块配置2.2.5 Port模块配置2.2.6…...
03--Deepseek服务器部署与cjson解析
一、ollama部署deepseek模型 1、Ollama 是一个开源的本地大语言模型运行框架,专为在本地机器上便捷部署和运行大型语言模型(LLM)而设计。 Ollama 教程:从 0 到 1 全面指南 教程【全文两万字保姆级详细讲解】 -CSDN博客 1.下载o…...
实现抗隐私泄漏的AI人工智能推理
目录 什么是私人AI? 什么是可信执行环境? TEE 如何在 AI 推理期间保护数据? 使用 TEE 是否存在风险? 有哪些风险? Atoma 如何应对这些风险 为什么去中心化网络是解决方案 人工智能推理过程中还有其他保护隐私的方法吗? 私人人工智能可以实现什么? 隐私驱动的应…...
Kotlin 学习--数组
一、关于数组的基础知识和常用方式 /*** kotlin 数组* 使用arrayOf创建数组,必须指定数组的元素,可以是任意类型* */val arrayNumber arrayOf(1, 2, 3, 4)/*** 集合中的元素可以是任意类型* kotlin 中的Any 等价于 java 中的Object 对象的意思* */val a…...
Spring Boot 启动后自动执行 Service 方法终极指南
**导语:**在 Spring Boot 开发中,我们经常需要在应用启动后立即执行初始化任务(如加载配置、预热缓存、启动定时任务)。本文将深度解析 5 种主流实现方案,包含完整代码示例、执行顺序控制技巧和避坑指南&a…...
STM32 HAL库之GPIO示例代码
LED灯不断闪烁 GPIO初始化,main文件中的 MX_GPIO_Init(); 也就是在 gpio.c文件中 void MX_GPIO_Init(void) {GPIO_InitTypeDef GPIO_InitStruct {0};/* GPIO Ports Clock Enable */__HAL_RCC_GPIOE_CLK_ENABLE();__HAL_RCC_GPIOC_CLK_ENABLE();__HAL_RCC_GPIOA_C…...
中间件-消息队列
SpringAMQP 任何语言只要遵循AMAP协议,都可以与RabbitMQ交互 生产者、队列、交换机、消费者 生产者Publisher:生产消息,发给交换机 交换机Exchange:接收生产者发送的消息。知道如何处理消息,例如递交给某个特别队列、…...
go游戏后端开发32:自摸杠处理逻辑
当我们在自摸杠时,实际上在杠完之后,我们还需要进行一个删除操作。因此,我们需要在上面拷贝一个删除操作。由于这是自摸杠,所以这个地方需要删除四次。在这里,我们需要注意的是,自摸杠时,传过来…...
AI创业风向标:构建下一代「AI叙事创作平台」
随着技术的进步和市场需求的爆发,AI故事叙述平台正成为投资者和创业者关注的焦点。本文将探讨为何这一赛道值得关注,并提供一些关于如何构建成功的AI叙事创作平台的战略建议。 一、为什么这是2025年值得关注的赛道? 1. 底层需求的爆发 人类永恒的故事需求:全球每月有超过…...
拜特科技签约惠生工程,携手打造高效资金管理系统
近日,拜特科技成功签约惠生工程(中国)有限公司(以下简称“惠生工程”)资金管理系统项目。此次双方携手打造一套先进的资金管理系统,为惠生工程的战略发展注入强劲新动力,推动其资金管理迈向更高水平。 惠生工程作为行…...
快瞳宠物肢体关键点检测:让宠物设备更懂“猫言狗语”
在宠物经济高速发展的今天,智能设备已渗透到养宠生活的方方面面。然而,如何让设备真正理解宠物的行为意图?快瞳科技推出的宠物肢体关键点检测技术,通过精准捕捉宠物肢体动作,为智能喂食、健康监测、行为训练等场景提供…...
【安卓】APP生成器v1.0,生成属于你的专属应用
今天作者给大家分享一个超级好用的手机APP。还在为反复搜索常用网站抓狂?今天安利一款颠覆性神器——它能将你所有心头好的网页变成专属按钮,像搭乐高一样DIY你的「软件」,从此告别收藏夹混乱!小说党、资讯控、摸鱼达人集体狂喜&a…...
详细解读react框架中的hooks
React Hooks 是 React 16.8 引入的一项革命性特性,它允许你在函数组件中使用状态(state)和其他 React 特性,而无需编写 class 组件。下面将详细解读 React Hooks 的核心概念、常用 Hooks 及其工作原理。 一、Hooks 的核心概念 1. 什么是 Hooks Hooks …...
机器学习01-支持向量机(SVM)(未完)
参考浙大 胡浩基老师 的课以及以下链接: https://blog.csdn.net/m0_74100344/article/details/139560508 https://blog.csdn.net/2301_78630677/article/details/132657023 https://blog.csdn.net/lsb2002/article/details/131338700 一、一些定义 T是倒置&…...