当前位置: 首页 > news >正文

FFPlay命令全集合

FFPlay是以FFmpeg框架为基础,外加渲染音视频的库libSDL构建的媒体文件播放器。

ffplay工具下载并播放视频,可以辅助卡看流信息。

官网下载地址:http://ffmpeg.org/download.html#build-windows

下载build好的exe程序:

此处下载的是:ffmpeg-20200403-52523b6-win64-static.zip

下载后解压,ffplay.exe就在文件夹bin中

在这里插入图片描述

1 FFPlay

打开命令窗口,进入ffplay.exe的目录中:或者把bin添加到环境变量

命令参考:https://www.cnblogs.com/renhui/p/8458802.html

格式:ffplay [选项] [‘输入文件’] 参考以上链接说明

1.1 播放视频

ffplay http://mp4.res.xxxx.com/mediafiles/wiad_creative/532/1469975702.mp4

可以本地也可以网络流。
在这里插入图片描述

播放网络流:

ffplay rtsp://xxxxxxxxxxxx进行播放

1.2 播放音频

播放mp3

ffplay shy.mp3

播放pcm

ffplay -ar 44100 -ac 1 -f s16le -i xxx.pcm

各个参数:
-ar 表示采样率
-ac 表示音频通道数
单声道是 1,Android 中为 AudioFormat.CHANNEL_IN_MONO
双声道是 2,Android 中为 AudioFormat.CHANNEL_IN_STEREO
-f 表示 pcm 格式,sample_fmts + le(小端)或者 be(大端)
sample_fmts可以通过ffplay -sample_fmts来查询
-i 表示输入文件,这里就是 pcm 文件

1.3 播放日志等级设置

loglevel参数控制:
ffplay -loglevel trace http://mp4.res.xxx.com/mediafiles/wiad_creative/532/1469975702.mp4
想要更详细看到日志,可以看到请求头和网络包
在这里插入图片描述
对应源码定义类型:
在这里插入图片描述
每个级别定义的数值代表了严重程度,数值越小代表越严重。
默认的级别是AV_LOG_INFO。
此外,还有一个级别不输出任何信息,即AV_LOG_QUIET

1.4 ffplay音画同步

ffplay也是一个视频播放器,所以不得不提出来的一个问题是:音画同步。ffplay的音画同步的实现方式其实有三种,分别是:以音频为主时间轴作为同步源,以视频为主时间轴作为同步源,以外部时钟为主时间轴作为同步源。

首先需要说明的是,播放器接收到的视频帧或者音频帧,内部都是会有时间戳(PTS时钟)来标识它实际应该在什么时刻展示,实际的对齐策略如下:

比较视频当前的播放时间和音频当前的播放时间,如果视频播放过快,则通过加大延迟或者重复播放来降低视频播放速度,如果视频播放满了,则通过减小延迟或者丢帧来追赶音频播放的时间点。

关键就在于音视频时间的比较和延迟的计算,当前在比较的过程中会设置一个阈值,如果超过预设的阈值就应该作出调整(丢帧或者重复渲染),这就是整个对齐策略。

在使用ffplay的时候,我们可以明确的指定使用那种对齐方式,比如:

ffplay pm.mp4 -sync audio

上面这个命令显式的指定了使用以音频为基准进行音视频同步的方式播放视频文件,当然这也是ffplay的默认播放设置。

ffplay pm.mp4 -sync video

上面这个命令显式的指定了使用以视频为基准进行音视频同步的方式播放视频文件。

ffplay pm.mp4 -sync ext

上面这个命令显式的指定了使用外部时钟为基准进行音视频同步的方式播放视频文件

2 FFMpeg命令

主要是视频流转换输出用
命令格式:
ffmpeg -i [输入文件名] [参数选项] -f [格式] [输出文件]
ffmpeg [[options][`-i’ input_file]]… {[options] output_file}…
1、参数选项:
(1) -an: 去掉音频
(2) -acodec: 音频选项, 一般后面加copy表示拷贝
(3) -vcodec:视频选项,一般后面加copy表示拷贝
2、格式:
(1) h264: 表示输出的是h264的视频裸流
(2) mp4: 表示输出的是mp4的视频
(3)mpegts: 表示ts视频流

2.1 转流

H264视频转ts视频流

ffmpeg -i test.h264 -vcodec copy -f mpegts test.ts

H264视频转mp4

ffmpeg -i test.h264 -vcodec copy -f mp4 test.mp4

ts视频转mp4

ffmpeg -i test.ts -acodec copy -vcodec copy -f mp4 test.mp4

mp4视频转flv

ffmpeg -i test.mp4 -acodec copy -vcodec copy -f flv test.flv

2.2 转音频

转MP3为wav

ffmpeg -i input.mp3 -acodec pcm_s16le -ac 2 -ar 44100 output.wav

m4a为wav

ffmpeg -i input.m4a -acodec pcm_s16le -ac 2 -ar 44100 output.wav

wav与PCM的相互转换

ffmpeg -i input.wav -f s16le -ar 44100 -acodec pcm_s16le output.raw

PCM转wav

ffmpeg -f s16le -ar 44100 -ac 2 -acodec pcm_s16le -i input.raw output.wav

ffmpeg -i ad.m4a -ar 48000 -ac 2 -f s16le ad_48000_2_s16le.pcm

ffmpeg -i ad.m4a -ar 48000 -ac 2 -f s16le ad_48000_2_s16le.pcm

aac to ac3:

ffmpeg -i audio.aac -acodec ac3 audio.ac3

ffmpeg -i input.wav -acodec ac3 output.ac3

提取左右声道的视频

ffmpeg -i ad.mp4 -af “pan=stereo|c1=FR” -y ad-right.mp4

ffmpeg -i ad.mp4 -af “pan=stereo|c0=FL” -y d-left.mp44

2.3 拉流

网络流转本地文件:

ffmpeg -i http://www.xxx.com/xxx.m3u8 name.mp4

ffmpeg强制使用TCP方式处理rtsp流 ,输出都cc.ts

ffmpeg -rtsp_transport tcp -i rtsp://182.131.121.48:12059/CMSBK/0021.ts cc.ts

2.4 推流

本机推流:UDP封装的MPEG-TS

ffmpeg -re -i sintel.ts -f mpegts udp://127.0.0.1:8880

ffmpeg -stream_loop 3 -re -i D:\apache\Apache24\htdocs\chongsheng1.mp4 -f mpegts udp://172.31.10.9:8880

本机推流:首先经过RTP封装,然后经过UDP封装的MPEG-TS

ffmpeg -re -i sintel.ts -f rtp_mpegts udp://127.0.0.1:8880

ffmpeg -stream_loop 3 -re -i D:\apache\Apache24\htdocs\chongsheng1.mp4 -f rtp_mpegts udp://172.31.10.9:8880

本地推流:RTP协议流(视频流)

ffmpeg -re -i D:\apache\Apache24\htdocs\chongsheng1.mp4 -c:v copy -an -f rtp_mpegts rtp://172.31.10.9:8881

本地推流:RTP协议流(音频流)

ffmpeg -re -i D:\apache\Apache24\htdocs\chongsheng1.mp4 -vn -acodec copy -f rtp_mpegts rtp://172.31.10.9:8881

本地推流:RTP协议流(音视频流)

参考:https://www.codenong.com/cs106467422/

ffmpeg -re -i D:\apache\Apache24\htdocs\chongsheng1.mp4 -c:v copy -an -f rtp_mpegts rtp://172.31.10.9:8881 -vn -acodec copy -f rtp rtp://172.31.10.9:8882

2.3 抽帧

每隔10秒抽帧:

ffmpeg -skip_frame nokey -i D:\videos\jljt_hevc_aac_60fps.ts -vf select=‘not(mod(floor(t-start_t),10))+gt(t-start_t,selected_n*10)’,scale=128:72,tile=8x8 -an -vsync 0 keyframes%03d.png

每隔5秒抽帧:

ffmpeg -skip_frame nokey -i http://xxxx.m3u8 -vf select=‘(isnan(prev_selected_t)+gte(t-prev_selected_t,5))(not(mod(floor(t-start_t),10))+gt(floor(t-start_t),selected_n10))’,scale=400:200,tile=6x6 -an -vsync 0 vod_new/test3_1/%d.jpg

2.5 图像转换

图片转yuv:

ffmpeg -i C:\Users\Administrator\Desktop\screenshot1.png -s 1920x1080 -pix_fmt yuvj420p C:\Users\Administrator\Desktop\screenshot1.yuv

yuv转JPG:

ffmpeg -pix_fmt yuvj420p -s 1920x1080 -i C:\Users\Administrator\Desktop\screenshot1.yuv C:\Users\Administrator\Desktop\b.jpg

2.6 编码

YUV编码H264:

ffmpeg -s 1920x1080 -i src01_1920x1080.yuv -b:v 7776k -r 25 -vcodec libx264 -x264opts ssim src01_1920x1080_0.150.h264

YUV编码mpg:

ffmpeg -s 1920x1080 -i src01_1920x1080.yuv -b:v 7776k -r 25 -vcodec mpeg2video src01_1920x1080_0.150.mpg

2.7 MP4转H264

ffmpeg -i D:\zhibo\video\douyin.mp4 -vcodec copy -bsf h264_mp4toannexb -f h264 douyin.h264

说明:

-i douyin.mp4 :是输入的MP4文件

-vcodec copy:从MP4封装中进行拷贝

-bsf h264_mp4toannexb:从MP4拷贝到annexB封装

-f h264:采用h.264格式

douyin:输出的文件名称

ffmpeg.exe -i http://mobaliyun.res.mgxx.com/new_video/2022/05/10/1295/60DF4C8228F500CE5584E23968DE2739_20220510_1_1_1241.mp4?sftc=vnds1_vtp4 -vcodec copy -bsf h264_mp4toannexb -f h264 douyin.h264

H264转Mp4

ffmpeg -i test.264 -vcodec copy -f mp4 test.mp4

2.8 H264 转YUV

ffmpeg -i src01_1920x1080_0.150.h264 src01_1920x1080_0.150_264.yuv

ffmpeg -i src01_1920x1080_0.150.mpg src01_1920x1080_0.150_mpg2.yuv

2.9 图片和yuv 转换

ffmpeg -s 1280x720 -pix_fmt yuv420p -i yuv420p_1280x720.yuv -pix_fmt rgb24 rgb24_1280x720.rgb

ffplay -pixel_format rbg24 -video_size 1280x720 -i rgb24_1280x720.rgb

ffmpeg -i a.jpg -s 640x480 -pix_fmt yuv422p a.yuv

ffmpeg -pix_fmt yuv422p -s 640x480 -i a.yuv b.jpg

3 推流

3.1 打包成HLS点播流

ffmpeg -i ad.mp4 -c:v libx264 -c:a copy -f hls m3u8\ad.m3u8
打包后的流放到服务器即可访问

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:4
#EXT-X-MEDIA-SEQUENCE:1
#EXTINF:1.920000,
ad1.ts
#EXTINF:3.680000,
ad2.ts
#EXTINF:2.560000,
ad3.ts
#EXTINF:1.800000,
ad4.ts
#EXTINF:1.680000,
ad5.ts
#EXT-X-ENDLIST

-segment_time每隔十秒切一个文件

ffmpeg -i dnf.mp4 -codec:v libx264 -codec:a mp3 -map 0 -f ssegment -segment_format mpegts -segment_list video/index.m3u8 -segment_time 10 video/%03d.ts

4 获取帧信息

ffprobe -show_frames We_Are_Young.mp4 > frames.info

在这里插入图片描述

统计I帧数量

keyframe=1 : key frame

pict_type=I : I-frame

cat frames.info | grep “pict_type=I” |wc -l

统计视频帧数量

cat frames.info | grep “media_type=video” |wc -l

ffprobe -show_format -show_streams filename

相关文章:

FFPlay命令全集合

FFPlay是以FFmpeg框架为基础,外加渲染音视频的库libSDL构建的媒体文件播放器。 ffplay工具下载并播放视频,可以辅助卡看流信息。 官网下载地址:http://ffmpeg.org/download.html#build-windows 下载build好的exe程序: 此处下载…...

AI编程工具使用技巧:在Visual Studio Code中高效利用阿里云通义灵码

AI编程工具使用技巧:在Visual Studio Code中高效利用阿里云通义灵码 前言一、通义灵码介绍1.1 通义灵码简介1.2 主要功能1.3 版本选择1.4 支持环境 二、Visual Studio Code介绍1.1 VS Code简介1.2 主要特点 三、安装VsCode3.1下载VsCode3.2.安装VsCode3.3 打开VsCod…...

开源的Text-to-SQL工具WrenAI

WrenAI是一个开源的Text-to-SQL工具,旨在通过自然语言交互界面,帮助用户更便捷地查询数据库。以下是对WrenAI的详细介绍: 一、主要功能 自然语言交互:用户可以通过对话方式提出问题,WrenAI能够理解和解析复杂的查询需…...

python创建一个httpServer网页上传文件到httpServer

一、代码 1.server.py import os from http.server import SimpleHTTPRequestHandler, HTTPServer import cgi # 自定义请求处理类 class MyRequestHandler(SimpleHTTPRequestHandler):# 处理GET请求def do_GET(self):if self.path /:# 响应200状态码self.send_response(2…...

Linux中page、buffer_head、bio的关系

在Linux中,page、buffer_head、bio这三个概念紧密相关,共同构成了块设备I/O和内存管理的重要部分,它们的联系主要体现在以下方面: page与buffer_head 基于page构建:buffer_head通常是基于page来构建的,一…...

C++11新特性之decltype

1.decltype的作用 decltype是C11新增的一个关键字,与auto的功能一样,都是在编译期间推导变量类型的。不了解auto的可以转到——C11新特性之auto。 为什么引入decltype?看过上边那篇博客的读者应该知道auto在有些场景中并不适用,所以引入declt…...

对神经网络基础的理解

目录 一、《python神经网络编程》 二、一些粗浅的认识 1) 神经网络也是一种拟合 2)神经网络不是真的大脑 3)网络构建需要反复迭代 三、数字图像识别的实现思路 1)建立一个神经网络类 2)权重更新的具体实现 3&am…...

后端开发Web

Maven Maven是apache旗下的一个开源项目,是一款用于管理和构建java项目的工具 Maven的作用 依赖管理 方便快捷的管理项目依赖的资源(jar包),避免版本冲突问题 统一项目结构 提供标准、统一的项目结构 项目构建 标准跨平台(…...

QT 通过ODBC连接数据库的好方法:

效果图: PWD使用自己的,我的这是自己的,所以你用不了。 以下是格式。 // 1. 设置数据库连接 QSqlDatabase db QSqlDatabase::addDatabase("QODBC");// 建立和QMYSQL数据库的连接 // 设置数据库连接名称(DSN&am…...

【Feature Scaling】:加速梯度下降法的利器

目录 特征缩放的目的常见的特征缩放方法1. 最小-最大缩放(Min-Max Scaling)2. 标准化(Standardization 或 Z-Score Normalization)3. 最大绝对值缩放(Max Abs Scaling) Rescale的使用场景结论 在机器学习中…...

QT:控件属性及常用控件(3)-----输入类控件(正则表达式)

输入类控件既可以进行显示,也能让用户输入一些内容! 文章目录 1.Line Edit1.1 用户输入个人信息1.2 基于正则表达式的文本限制1.3 验证两次输入的密码是否一致1.4 让输入的密码可以被查看 2.Text Edit2.1 输入和显示同步2.1 其他信号出发情况 3.ComboBox…...

计算机网络 (59)无线个人区域网WPAN

前言 无线个人区域网(WPAN,Wireless Personal Area Network)是一种以个人为中心,采用无线连接方式的个人局域网。 一、定义与特点 定义:WPAN是以个人为中心,实现活动半径小、业务类型丰富、面向特定群体的无…...

Python Typing: 实战应用指南

文章目录 1. 什么是 Python Typing?2. 实战案例:构建一个用户管理系统2.1 项目描述2.2 代码实现 3. 类型检查工具:MyPy4. 常见的 typing 用法5. 总结 在 Python 中,静态类型检查越来越受到开发者的重视。typing 模块提供了一种方式…...

Redis存储③Redis基本命令+内部编号和架构

目录 1. Redis 命令行客户端 1.1 与 Redis 服务器交互 1.2 set 和 get 命令 2. 基本全局命令 2.1 keys 2.2 exists 2.3 del 2.4 expire 2.5 ttl 2.6 type 3. 数据结构和内部编码 4. 单线程架构 本篇完。 1. Redis 命令行客户端 1.1 与 Redis 服务器交互 根据上篇…...

Vivado生成X1或X4位宽mcs文件并固化到flash

1.生成mcs文件 01.在vivado里的菜单栏选择"tools"工具栏 02.在"tools"里选择"生成内存配置文件" 03.配置参数 按照FPGA板上的flash型号进行选型,相关配置步骤可参考下图。 注意:Flash数据传输位宽如果需要选择X4位宽&am…...

07 区块链安全技术

概述 区块链的安全特性 区块链解决了在不可靠网络上可靠地传输信息的难题,由于不依赖与中心节点的认证和管理,因此防止了中心节点被攻击造成的数据泄露和认证失败的风险。 区块链安全防护的三大特点 共识机制代替中心认证机制数据篡改“一发动全身”…...

第84期 | GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区,集成了生成预训练Transformer(GPT)、人工智能生成内容(AIGC)以及大语言模型(LLM)等安全领域应用的知识。在这里,您可以找…...

柔性数组与c/c++程序中内存区域的划分

1.柔性数组 1.1柔性数组的定义 柔性数组是指在结构体中定义的,其大小在编译时未确定,而在运行时动态分配的数组。这种数组允许结构体的大小根据需要动态变化。语法如下: struct D {int a;int arry1[0]; };struct F {int a;int arry2[]; };…...

react页面定时器调用一组多个接口,如果接口请求返回令牌失效,清除定时器不再触发这一组请求

为了实现一个React页面使用定时器调用一组多个接口,并在任意一个接口请求返回令牌失效时清除定时器且不再触发这一组请求,可以遵循以下步骤: 1. 定义API调用函数:创建一个函数来处理一组API调用。每个API调用都应该检查响应状态以…...

使用 .NET Core 6.0 Web API 上传单个和多个文件

示例代码: https://download.csdn.net/download/hefeng_aspnet/90138968 介绍 我们将在 IFormFile 接口和 .NET 提供的其他接口的帮助下,逐步讨论单个和多个文件上传。 .NET 提供了一个 IFormFile 接口,代表 HTTP 请求中传输的文件。 此外…...

AJAX笔记入门篇

黑马程序员视频地址: 黑马程序员前端AJAX入门到实战全套教程https://www.bilibili.com/video/BV1MN411y7pw?vd_source0a2d366696f87e241adc64419bf12cab&spm_id_from333.788.videopod.episodes&p2 目录 AJAX 概念和axios 使用 什么是AJAX? …...

RoHS 简介

RoHS(Restriction of Hazardous Substances Directive,限制有害物质指令)是欧盟制定的一项环保法规,旨在限制电气和电子设备中某些有害物质的使用,以减少这些产品对环境和人体健康的危害。 RoHS限制的有害物质及其限量…...

C# 中 default 使用详解

总目录 前言 在C#中,default 关键字用于表示类型默认值。它可以根据上下文推断出适用的类型,并返回该类型的默认值。随着C#版本的发展,default 的用法也变得更加丰富和灵活。本文将详细介绍 default 在不同场景下的使用方法及其最佳实践。 一…...

无人机在城市执法监管中的应用:技术革新与监管挑战

随着科技的不断进步,无人机技术在城市管理中的应用越来越广泛。无人机以其灵活性、高效性和低成本的优势,正在逐渐成为城市执法监管的得力助手。本文将探讨无人机在城市执法监管中的应用现状、技术优势以及面临的挑战。 无人机技术在城市执法监管中的应用…...

[ACTF2020 新生赛]Upload1

题目 以为是前端验证&#xff0c;试了一下PHP传不上去 可以创建一个1.phtml文件。对.phtml文件的解释: 是一个嵌入了PHP脚本的html页面。将以下代码写入该文件中 <script languagephp>eval($_POST[md]);</script><script languagephp>system(cat /flag);&l…...

ASP.NET代码审计 SQL注入篇(简单记录)

sql注入&#xff0c;全局搜索 Request QueryString ToString() select select * aspx是设计页面&#xff0c;而aspx.cs是类页面&#xff0c;也就是说设计页面用到的类信息在这个页面里面&#xff0c;其实就是把设计和实现分离开来。 源码 using System; using System.Collect…...

数据结构 链表2

目录 前言&#xff1a; 一&#xff0c;反转一个链表(迭代) 二&#xff0c;打印一个链表&#xff08;递归&#xff09; 三&#xff0c;反转一个链表(递归) 四&#xff0c;双向链表 总结 前言&#xff1a; 我们根据 [文章 链表1] 可以知道链表相比较于数组的优缺点和计算机…...

【leetcode100】二叉树的层序遍历

1、题目描述 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;[[3],[9,20],[15,7]] 2、初始思路…...

MyBatis进阶

1. 动态SQL 1.1 <if>标签的使用(xml版本) 动态 SQL 是Mybatis的强⼤特性之⼀&#xff0c;能够完成不同条件下不同的 sql 拼接。 现在有一个需求.注册分为两种字段&#xff1a;必填字段和⾮必填字段&#xff0c;那如果在添加用户的时候有不确定的字段传⼊&#xff0c;程…...

迅为RK3568开发板驱动指南Linux中通用SPI设备驱动

在前面的章节中我们从0开始编写了一个mcp2515的驱动程序&#xff0c;而跟I2C设备类似&#xff0c;在Linux内核中也有着通用SPI设备驱动&#xff0c;在本章节将会讲解通用SPI设备驱动的使用&#xff0c;并讲解如何在应用程序中通过ioctl对SPI进行配置和使用。 硬件&#xff1a;迅…...

DDD架构实战第五讲总结:将领域模型转化为代码

云架构师系列课程之DDD架构实战第五讲总结:将领域模型转化为代码 一、引言 在前几讲中,我们讨论了领域模型的重要性及其在业务分析中的渐进获得方法。本讲将聚焦于如何将领域模型转化为代码,使得开发人员能够更轻松地实现用户的领域模型。 二、从模型到代码:领域驱动设计…...

C++----STL(list)

介绍 list的数据结果是一个带头双向链表。 使用 有了前面string、vector的基础&#xff0c;后续关于list使用的讲解主要提及与string和vector的不同之处。 使用文档&#xff1a;cplusplus.com/reference/list/list/?kwlist 迭代器问题 insert以后迭代器不失效 #include…...

软件测试 —— 性能测试(jmeter)

软件测试 —— 性能测试&#xff08;jmeter&#xff09; 什么是jmeter安装jmeterjmeter常用组件线程组取样器结果树 我们之前学习了接口测试工具Postman&#xff0c;我们今天要学习的是性能测试工具——jmeter 什么是jmeter Apache JMeter 是一个开源的性能测试工具&#xff…...

Zemax 非序列模式下的颜色检测器和颜色混合

在 Zemax 的非序列模式中&#xff0c;探测器用于捕获系统中射线的信息。可以使用各种类型的探测器来捕获光学系统性能的不同方面&#xff0c;例如矩形探测器&#xff0c;它存储撞击它的 NSC 源射线的能量数据。 另一种经常使用的探测器类型是 Detector Color&#xff0c;它是一…...

DBO优化最近邻分类预测matlab

蜣螂优化算法&#xff08;Dung Beetle Optimizer&#xff0c;简称 DBO&#xff09;作为一种新兴的群智能优化算法&#xff0c;于 2022 年末被提出&#xff0c;其灵感主要来源于蜣螂的滚球、跳舞、觅食、偷窃以及繁殖等行为。 本次使用的数据为 Excel 格式的分类数据集。该数据…...

【第二天】零基础入门刷题Python-算法篇-数据结构与算法的介绍-五种常见的排序算法(持续更新)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、Python数据结构与算法的详细介绍1.Python中的常用的排序算法1.排序算法的介绍2.五种详细的排序算法代码 总结 前言 提示&#xff1a;这里可以添加本文要记…...

合并两个有序数组(Leetcode)

解题思路&#xff1a; 三个指针&#xff1a; $p1: 指向 nums1 中的最后一个非零元素。$p2: 指向 nums2 的最后一个元素。$p: 指向 nums1 的最后一位&#xff0c;用于存储合并后的元素。 从后往前填充&#xff1a; 比较 nums1[$p1] 和 nums2[$p2]&#xff0c;较大的放入 nums1[…...

特殊类设计

[本节目标] 掌握常见特殊类的设计方式 1.请设计一个类&#xff0c;不能被拷贝 拷贝只会放生在两个场景中&#xff1a;拷贝构造函数以及赋值运算符重载&#xff0c;因此想要让一个类禁止拷贝&#xff0c;只需让该类不能调用拷贝构造函数以及赋值运算符重载即可。 C98 将拷贝构…...

2025.1.20——一、[RCTF2015]EasySQL1 二次注入|报错注入|代码审计

题目来源&#xff1a;buuctf [RCTF2015]EasySQL1 目录 一、打开靶机&#xff0c;整理信息 二、解题思路 step 1&#xff1a;初步思路为二次注入&#xff0c;在页面进行操作 step 2&#xff1a;尝试二次注入 step 3&#xff1a;已知双引号类型的字符型注入&#xff0c;构造…...

【esp32-uniapp】uniapp小程序篇02——引入组件库

一、引入组件库&#xff08;可自行选择其他组件库&#xff09; 接下来介绍colorUI、uview plus的安装&#xff0c;其他的安装可自行查找教程 1.colorUI weilanwl/coloruicss: 鲜亮的高饱和色彩&#xff0c;专注视觉的小程序组件库 下载之后解压&#xff0c;将\coloruicss-ma…...

基于单片机的智能小区门禁系统设计(论文+源码)

1总体架构 智能小区门禁系统以STM32单片机和WiFi技术为核心&#xff0c;STM32单片机作为主控单元&#xff0c;通过WiFi模块实现与手机APP的连接&#xff0c;构建整个门禁系统。系统硬件包括RFID模块、指纹识别模块、显示屏、按键以及继电器。通过RFID绑定IC卡、APP面部识别、指…...

tkinter绘制组件(44)——浮出ui控件

tkinter绘制组件&#xff08;44&#xff09;——浮出ui控件 引言布局函数结构ui框架对齐方向绑定已有控件出现和隐藏逻辑出现和隐藏动画完整代码函数 效果测试代码最终效果 github项目pip下载 引言 TinUI的浮出ui控件&#xff08;flyout&#xff09;其实是一个之间创建在UI框架…...

CDSN 2024博客之星总评选-主题文章创作,我的AI之路-起手篇

CDSN 2024博客之星总评选-主题文章创作&#xff0c;我的AI之路-起手篇 一. 回顾自己的机器学习之路二. 2024年的大模型学习三. 对自己的期望 一. 回顾自己的机器学习之路 自2019年起&#xff0c;我开始涉足机器学习领域&#xff0c;最初接触的是通过模型实现自动化的任务&…...

LLM基础知识

代替你的不是ai&#xff0c;而是会使用ai的人。而在这之上还有会打造ai的人。 1、大语言模型的大体现在哪里 LLM&#xff08;Large Language Model 大语言模型&#xff09;的大不仅仅是指训练数据巨大&#xff0c;更指参数数量巨大。 参数即模型内部的变量&#xff0c;…...

Linux 网络:交换芯片 EDSA 以太网帧简介

文章目录 1. 前言2. EDSA 协议以太网帧的发送和接收2.1 什么是 EDSA &#xff1f;2.2 EDSA 以太网帧的发送2.3 EDSA 以太网帧的接收 3. 验证 1. 前言 限于作者能力水平&#xff0c;本文可能存在谬误&#xff0c;因此而给读者带来的损失&#xff0c;作者不做任何承诺。 2. EDS…...

【Git版本控制器--3】Git的远程操作

目录 理解分布式版本控制系统 创建远程仓库 仓库被创建后的配置信息 克隆远程仓库 https克隆仓库 ssh克隆仓库 向远程仓库推送 拉取远程仓库 忽略特殊文件 为什么要忽略特殊文件&#xff1f; 如何配置忽略特殊文件&#xff1f; 配置命令别名 标签管理 理…...

深入理解GPT底层原理--从n-gram到RNN到LSTM/GRU到Transformer/GPT的进化

从简单的RNN到复杂的LSTM/GRU,再到引入注意力机制,研究者们一直在努力解决序列建模的核心问题。每一步的进展都为下一步的突破奠定了基础,最终孕育出了革命性的Transformer架构和GPT大模型。 1. 从n-gram到循环神经网络(RNN)的诞生 1.1 N-gram 模型 在深度学习兴起之前,处理…...

【2024年华为OD机试】 (E卷,200分) - 最优资源分配芯片资源占用(JavaScriptJava PythonC/C++)

一、问题描述 题目解析 题目描述 某块业务芯片的最小容量单位为 1.25G&#xff0c;总容量为 M * 1.25G。芯片资源编号为 1, 2, …, M。该芯片支持 3 种不同的配置&#xff0c;分别为 A、B、C&#xff1a; 配置 A&#xff1a;占用容量为 1.25G&#xff08;1 个单位&#xff…...

Spring Boot(6)解决ruoyi框架连续快速发送post请求时,弹出“数据正在处理,请勿重复提交”提醒的问题

一、整个前言 在基于 Ruoyi 框架进行系统开发的过程中&#xff0c;我们常常会遇到各种有趣且具有挑战性的问题。今天&#xff0c;我们就来深入探讨一个在实际开发中较为常见的问题&#xff1a;当连续快速发送 Post 请求时&#xff0c;前端会弹出 “数据正在处理&#xff0c;请…...

【开源免费】基于Vue和SpringBoot的常规应急物资管理系统(附论文)

本文项目编号 T 159 &#xff0c;文末自助获取源码 \color{red}{T159&#xff0c;文末自助获取源码} T159&#xff0c;文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…...