使用ffmpeg调整视频中音频采样率及声道
1 原始视频信息
通过ffmpeg -i命令查看视频基本信息
ffmpeg -i example2.mp4
ffmpeg version 6.1-essentials_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developersbuilt with gcc 12.2.0 (Rev10, Built by MSYS2 project)configuration: --enable-gpl --enable-version3 --enable-static --pkg-config=pkgconf --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-sdl2 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-dxva2 --enable-d3d11va --enable-libvpl --enable-libgme --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libtheora --enable-libvo-amrwbenc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-librubberbandlibavutil 58. 29.100 / 58. 29.100libavcodec 60. 31.102 / 60. 31.102libavformat 60. 16.100 / 60. 16.100libavdevice 60. 3.100 / 60. 3.100libavfilter 9. 12.100 / 9. 12.100libswscale 7. 5.100 / 7. 5.100libswresample 4. 12.100 / 4. 12.100libpostproc 57. 3.100 / 57. 3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'example2.mp4':Metadata:major_brand : isomminor_version : 512compatible_brands: isomiso2avc1mp41encoder : Lavf58.29.100Duration: 00:00:11.98, start: 0.000000, bitrate: 2449 kb/sStream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1280x720, 2252 kb/s, 30 fps, 30 tbr, 15360 tbn (default)Metadata:handler_name : VideoHandlervendor_id : [0][0][0][0]Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 191 kb/s (default)Metadata:handler_name : IsoMedia File Produced by Google, 5-11-2011vendor_id : [0][0][0][0]
At least one output file must be specified
2 使用ffmpeg调整视频中音频采样率及声道
ffmpeg -i example2.mp4 -r 25 -ar 16000 -ac 1 -s 224:224 example2.avi
-
-r fps每秒传输帧数,默认为25
-
-s 分辨率
-
-ar 设定采样率
-
-ac 设定声音的Channel数
-
-acodec 设定声音编解码器,未设定时则使用与输入流相同的编解码器
3 转换结果展示
$ ffmpeg -i example2.avi
ffmpeg version 6.1-essentials_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developersbuilt with gcc 12.2.0 (Rev10, Built by MSYS2 project)configuration: --enable-gpl --enable-version3 --enable-static --pkg-config=pkgconf --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-sdl2 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-dxva2 --enable-d3d11va --enable-libvpl --enable-libgme --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libtheora --enable-libvo-amrwbenc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-librubberbandlibavutil 58. 29.100 / 58. 29.100libavcodec 60. 31.102 / 60. 31.102libavformat 60. 16.100 / 60. 16.100libavdevice 60. 3.100 / 60. 3.100libavfilter 9. 12.100 / 9. 12.100libswscale 7. 5.100 / 7. 5.100libswresample 4. 12.100 / 4. 12.100libpostproc 57. 3.100 / 57. 3.100
Input #0, avi, from 'example2.avi':Metadata:software : Lavf60.16.100Duration: 00:00:12.12, start: 0.000000, bitrate: 306 kb/sStream #0:0: Video: mpeg4 (Simple Profile) (FMP4 / 0x34504D46), yuv420p, 224x224 [SAR 1:1 DAR 1:1], 266 kb/s, 25 fps, 25 tbr, 25 tbnStream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 16000 Hz, mono, fltp, 24 kb/s
At least one output file must be specified
4 FFmpeg介绍
FFmpeg项目由 Fabrice Bellard在2000年创立。到目前为止,FFmpeg项目的开发者仍然与VLC、MPV、dav1d、x264等多媒体开源项目有着广泛的重叠。Ffmpeg(FastForward Mpeg)是一款遵循GPL的开源软件,在音视频处理方面表现十分优秀,几乎囊括了现存所有的视音频格式的编码,解码、转码、混合、过滤及播放。作为最受欢迎的视频和图像处理软件,它被来自各行各业的不同公司所广泛使用。同时也是一款跨平台的软件,完美兼容Linux、Windows、Mac OSX等平台。其实它由3大部件组成,号称音视频处理工具三剑客:
- Ffmpeg:由命令行组成,用于多媒体格式转换
- Ffplay:基于ffmpeg开源代码库libraries做的多媒体播放器
- Ffprobe:基于ffmpeg做的多媒体流分析器
Ffmpeg 应该是 FFmpeg 工具集中最核心的利器,支持多种多样的编码器、解码器、封装格式、滤镜功能。FFmpeg框架的基本组成包含AVFormat、AVCodec、AVFilter、AVDevice、AVUtil等模块库,结构图如下:
- AVFormat–FFmpeg的封装模块
AVFormat中实现了目前多媒体领域中的绝大多数媒体封装格式,包括封装和解封装,如MP4、FLV、KV、TS等文件封装格式,RTMP、RTSP、MMS、HLS等网络协议封装格式。FFmpeg是否支持某种媒体封装格式,取决于编译时是否包含了该格式的封装库。根据实际需求,可进行媒体封装格式的扩展,增加自己定制的封装格式,即在AVFormat中增加自己的封装处理模块。
- AVCodec–FFmpeg的编解码模块
AVCodec中实现了目前多媒体领域绝大多数常用的编解码格式,即支持编码,也支持解码。AVCodec除了支持MPEG4、AAC、MJPEG等自带的媒体编解码格式之外,还支持第三方的编解码器,如H.264(AVC)编码,需要使用x264编码器;H.265(HEVC)编码,需要使用x264编码器;MP3(mp3lame)编码,需要使用libmp3lame编码器。如果希望增加自己的编码格式,或者硬件编解码,则需要在AVCodec中增加相应的编解码模块。
- AVFilter–FFmpeg的滤镜模块
AVFilter库提供了一个通用的音频、视频、字幕等滤镜处理框架。在AVFilter中,滤镜框架可以有多个输入和多个输出。
- swresample–FFmpeg的音频转换计算模块
swresample模块提供了高级别的音频重采样API。例如允许操作音频采样、音频通道布局转换与布局调整。
- swscale–FFmpeg的视频图像转换计算模块
swscale模块提供了高级别的图像转换API,例如它允许进行图像缩放和像素格式转换,常见于将图像从1080p转换成720p或者480p等的缩放,或者将图像数据从YUV420p转换成YUYV,或者YUV转RGB等图像格式转换。
5 FFmpeg常用参数
5.1 能力集列表
- -formats:列出支持的文件格式。
- -codecs:列出支持的编解码器。
- -decoders:列出支持的解码器。
- -encoders:列出支持的编码器。
- -protocols:列出支持的协议。
- -bsfs:列出支持的比特流过滤器。
- -filters:列出支持的滤镜。
- -pix_fmts:列出支持的图像采样格式。
- -sample_fmts:列出支持的声音采样格式。
5.2 常用输入选项
- -i filename:指定输入文件名。
- -f fmt:强制设定文件格式,需使用能力集列表中的名称(缺省是根据扩展名选择的)。
- -ss hh:mm:ss[.xxx]:设定输入文件的起始时间点,启动后将跳转到此时间点然后开始读取数据。
对于输入,以下选项通常是自动识别的,但也可以强制设定。
- -c codec:指定解码器,需使用能力集列表中的名称。
- -acodec codec:指定声音的解码器,需使用能力集列表中的名称。
- -vcodec codec:指定视频的解码器,需使用能力集列表中的名称。
- -b:v bitrate:设定视频流的比特率,整数,单位bps。
- -r fps:设定视频流的帧率,整数,单位fps。
- -s WxH : 设定视频的画面大小。也可以通过挂载画面缩放滤镜实现。
- -pix_fmt format:设定视频流的图像格式(如RGB还是YUV)。
- -ar sample rate:设定音频流的采样率,整数,单位Hz。
- -ab bitrate:设定音频流的比特率,整数,单位bps。
- -ac channels:设置音频流的声道数目。
5.3 常用输出选项
- -f fmt:强制设定文件格式,需使用能力集列表中的名称(缺省是根据扩展名选择的)。
- -c codec:指定编码器,需使用能力集列表中的名称(编码器设定为”copy“表示不进行编解码)。
- -acodec codec:指定声音的编码器,需使用能力集列表中的名称(编码器设定为”copy“表示不进行编解码)。
- -vcodec codec:指定视频的编码器,需使用能力集列表中的名称(编解码器设定为”copy“表示不进行编解码)。
- -r fps:设定视频编码器的帧率,整数,单位fps。
- -pix_fmt format:设置视频编码器使用的图像格式(如RGB还是YUV)。
- -ar sample rate:设定音频编码器的采样率,整数,单位Hz。
- -b bitrate:设定音视频编码器输出的比特率,整数,单位bps。
- -ab bitrate:设定音频编码器输出的比特率,整数,单位bps。
- -ac channels:设置音频编码器的声道数目。
- -an 忽略任何音频流。
- -vn 忽略任何视频流。
- -t hh:mm:ss[.xxx]:设定输出文件的时间长度。
- -to hh:mm:ss[.xxx]:如果没有设定输出文件的时间长度的画可以设定终止时间点。
5.4 ffmpeg流标识
FFMPEG的某些选项可以对一个特定的媒体流起作用,这种情况下需要在选项后面增加一个流标识。流标识允许以下几种格式:
- 流序号。譬如“:1”表示第二个流。
- 流类型。譬如“:a“表示音频流,流类型可以和流序号合并使用,譬如“:a:1”表示第二个音频流。
- 节目。节目和流序号可以合并使用。
- 流标识。流标识是一个内部标识号。
假如要设定第二个音频流为copy,则需要指定-codec:a:1 copy
5.5 ffmpeg音频选项
- -aframes:等价于frames:a,输出选项,用于指定输出的音频帧数目。
- -aq:等价于q:a,老版本为qscale:a,用于设定音频质量。
- -atag:等价于tag:a,用于设定音频流的标签。
- -af:等价于filter:a,用于设定一个声音的后处理过滤链,其参数为一个描述声音后处理链的字符串。
5.6 ffmpeg视频选项
- -vframes:等价于frames:v,输出选项,用于指定输出的视频帧数目。
- -aspect:设置宽高比,如4:3、16:9、1.3333、1.7777等。
- -bits_per_raw_sample:设置每个像素点的比特数。
- -vstats:产生video统计信息。
- -vf:等价于filter:v,用于设定一个图像的后处理过滤链,其参数为一个描述图像后处理链的字符串。
- -vtag:等价于tag:v,用于设定视频流的标签。
- -force_fps:强制设定视频帧率。
- -force_key_frames:显式控制关键帧的插入,参数为字符串,可以是一个时间戳,也可以是一个 “expr:”前缀的表达式。如“-force_key_frames 0:05:00”、“-force_key_frames expr:gte(t,n_forced*5)”
5.7 ffmpeg滤镜选项
-filter_simple 添加简单滤镜
-filter_complex FILTER 添加复杂滤镜
5.8 ffmpeg高级选项
- -re:要求按照既定速率处理输入数据,这个速率即是输入文件的帧率。
- -map:指定输出文件的流映射关系。例如 “-map 1:0 -map 1:1”要求将第二个输入文件的第一个流和第二个流写入到输出文件。如果没有-map选项,ffmpeg采用缺省的映射关系。
5.9 ffprobe参数
简单的说,ffprobe 是一个多媒体流分析工具。它从多媒体流中收集信息,并且以人类和机器可读的形式打印出来。它可以用来检测多媒体流的容器类型,以及每一个多媒体流的格式和类型。它可以作为一个独立的应用来使用,也可以结合文本过滤器执行更复杂的处理。
- -f format 强制使用某种格式
- -sexagesimal 时间单元格式化 HOURS:MM:SS.MICROSECONDS
- -pretty 格式美化
- -print_format format 格式化(可选值: default, compact, csv, flat, ini, json, xml)
- -of format -print_format别名
- -select_streams stream_specifier 选择指定流
- -sections 打印节的结构和信息
- -show_data 显示包数据
- -show_data_hash 显示包数据哈希值
- -show_error 显示文件探测/检测错误
- -show_format 显示格式或者容器信息
- -show_frames 显示帧信息
- -show_format_entry entry 根据格式/容器信息显示指定entry
- -show_packets 显示包信息
- -show_programs 显示程序信息
- -show_streams 显示流信息
- -show_chapters 显示章节信息
- -count_frames 统计每个流的帧数
- -count_packets 统计每个流的包数
- -show_program_version 显示ffprobe版本
- -show_library_versions show library versions
- -show_versions show program and library versions
- -show_pixel_formats 显示像素格式
- -show_private_data show private data
- -private same as show_private_data
- -bitexact force bitexact output
- -read_intervals read_intervals set read intervals
- -default generic catch all option
5.10 ffplayer参数
- -x 强制设置视频显示窗口的宽度
- -y 强制设置视频显示窗口的高度
- -S 设置视频显示的宽高
- -fs 强制全屏显示
- -an 屏蔽音频
- -vn 屏蔽视频
- -Sn 屏蔽字幕
- -ss 根据设置的秒进行定位拖动
- -t 设置播放视频/音频长度
- -Bytes 设置定位拖动的策略,0为不可拖动,1为可拖动,-1为自动
- -Nodisp 关闭图形化显示窗口
- -f 强制使用设置的格式进行解析
- -window_title 设置显示窗口的标题
- -af 设置音频的滤镜
- -Codec 强制使用设置的codec进行解码
- -autorotate 自动旋转视频
- -ast 设置将要播放的音频流
- -vst 设置将要播放的视频流
- -sst 设置将要播放的字幕流
- -Stats 输出多媒体播放状态
- -Fast 非标准化规范的多媒体兼容优化
- -sync 音视频同步设置可设置根据音频视频进行参考,视频时间参考,或者外部扩展时间进行参考
- -autoexit 多媒体播放完毕自动退出ffplay,ffplay默认播放完毕不退出播放器
- -exitonkeydown 当有按键按下事件产生时退出ffplay
- -exitonmousedown 当有鼠标按键事件产生时退出ffplay
- -loop 设置多媒体文件循环播放次数
- -framedrop 当CPU资 源占用过高时,自动丢帧
- -infbuf 设置无极限的播放器buffer,这个选项常见于实时流媒体播放场景
- -vf 视频滤镜设置
- -acodec 强制使用设置的音频解码器
- -vcodec 强制使用设置的视频解码器
- -scodec 强制使用设置的字幕解码器
相关文章:

使用ffmpeg调整视频中音频采样率及声道
1 原始视频信息 通过ffmpeg -i命令查看视频基本信息 ffmpeg -i example2.mp4 ffmpeg version 6.1-essentials_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developersbuilt with gcc 12.2.0 (Rev10, Built by MSYS2 project)configuration: --enable-gpl --enable…...

详细分析Java中的Date类以及格式转换
目录 前言1. 基本知识2. 格式化输出3. 格式转换 前言 记录这篇文章的缘由,主要是涉及一个格式转换,对此深挖了这个类 在Java中,Date类是用于表示日期和时间的类。 位于java.util包中,是Java平台中处理日期和时间的基本类之一。…...

【计算机网络】应用层——HTTP 协议(一)
个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【网络编程】 本专栏旨在分享学习计算机网络的一点学习心得,欢迎大家在评论区交流讨论💌 目录 一、什么是 HTTP 协…...

线程和进程的区别
Java面试题 线程和进程的区别 进程是操作系统资源分配的基本单位。 线程是处理器任务调度和执行的基本单位 一个进程可以包含多个线程。进程之间的资源是相互独立,而同一进程下的线程之间可以共享进程中的资源。...

proxy 代理的接口报错301问题
项目系统里仅仅这个接口报错,反向代理错误导致。 默认情况下,不接受运行在HTTPS上,且使用了无效证书的后端服务器。如果你想要接受,修改配置:secure: false(简单意思:如果本地没有进行过https相…...

mysql进阶-执行计划
目录 1. 概念 2. 使用 3. 具体相关字段含义 3.1 id 3.2 select_type 3.3 table 3.4 partition 3.5 type 3.6 possible_key 3.7 key 3.8 key_len 3.9 ref 3.10 row 3.11 filtered 3.12 extra 1. 概念 一条语句通过优化器之后,会生成具体的执行计划用…...

【UE5】第一次尝试项目转插件(Plugin)的时候,无法编译
VS显示100条左右的错误,UE热编译也不能通过。原因可能是[名字.Build.cs]文件的错误,缺少一些内容,比如说如果要写UserWidget类,那么就要在 ]名字.Build.cs] 中加入如下内容: public class beibaoxitong : ModuleRules …...

MeterSphere本地化部署实践
项目结构 搭建本地环境 安装JDK11,配置好JDK环境,系统同时支持JDK8和JDK11安装IEAD,配置JDK环境配置maven环境,IDEA配置(解压可以直接使用)无限重置IDEA试用期配置redis环境(解压可以直接使用) 配置kafka环境 安装mysql-5.7环境ÿ…...

巨变!如何理解中国发起的“数据要素X”计划?
作者 张群(赛联区块链教育首席讲师,工信部赛迪特聘资深专家,CSDN认证业界专家,微软认证专家,多家企业区块链产品顾问)关注张群,为您提供一站式区块链技术和方案咨询。 刘烈宏在第25届北大光华新…...

CS8370错误,这是由于使用了C# 7.3中不支持的功能
目录 背景: 第一种方法: 第二种办法: 背景: 在敲代码的时候,程序提示报错消息提示:CS8370错误,那么这是什么原因导致的,这是由于使用了C# 7.3中不支持的功能,不支持该功能,那就是版本太低我们就需要升级更高的版本&…...

Raspbian安装云台
Raspbian安装云台 1. 源由2. 选型3. 组装4. 调试4.1 python3-print问题4.2 python函数入参类型错误4.3 缺少mjpg-streamer可执行文件4.4 缺失编译头文件和库4.5 python库缺失4.6 图像无法显示,但libcamera-jpeg测试正常4.7 异常IOCTL报错4.8 Git问题 5. 效果5.1 WEB…...

蓝桥杯理历年真题 —— 数学
1. 买不到的数目 这道题目,考得就是一个日常数学的积累,如果你学过这个公式的话,就是一道非常简单的输出问题;可是如果没学过,就非常吃亏,在考场上只能暴力求解,或是寻找规律。这就要求我们什么…...

自然语言处理--双向匹配算法
自然语言处理作业1--双向匹配算法 一、概述 双向匹配算法是一种用于自然语言处理的算法,用于确定两个文本之间的相似度或匹配程度。该算法通常使用在文本对齐、翻译、语义匹配等任务中。 在双向匹配算法中,首先将两个文本分别进行处理,然后…...

IDEA 2023.3.2 安装教程
1.下载2023.3.2版本IDEA 链接:https://pan.baidu.com/s/1RkXBLz6qxsd8VxXuvXCEMA?pwd5im6 提取码:5im6 2.安装 3.解压文件,进入,选择方式3 4.将下面文件夹复制到任意位置(不要有中文路径) 5.进入下面文…...

C语言常见面试题:什么是宏,宏的作用是什么?
宏在计算机科学中是一种批量处理程序命令,它是一种抽象的规则或模式,用于说明某一特定输入(通常是字符串)如何根据预定义的规则转换成对应的输出(通常也是字符串)。在编译时,预处理器会对宏进行…...

【0248】Background Writing实现机制分析
文章目录 1. 前言2. 有了checkpoint,为何还需要background writing?2.1 checkpoint和background writing有何差异? 如何协同工作?2.2 background writing如何工作? 职责是什么?1. 前言 本文是Background Writing进程理论篇,源码剖析实战篇会在后面给出。本文的主要内容…...

基于springboot+vue的教师工作量管理系统(前后端分离)
博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目背景…...

4-新建子模块(尝鲜)
新建子模块 Maven多模块下新建子模块流程案例。 1、新建业务模块目录,例如:ruoyi-test。 2、在ruoyi-test业务模块下新建pom.xml文件以及src\main\java,src\main\resources目录。 <?xml version"1.0" encoding"UTF-8&…...

反序列化字符串逃逸(上篇)
首先,必须先明白,这个点并不难,我给大家梳理一遍就会明白。 反序列化字符串逃逸就是序列化过程中逃逸出来字符,是不是很简单,哈哈哈! 好了,不闹了,其实: 这里你们只要懂…...

[C++]使用yolov5的onnx模型结合onnxruntime和bytetrack实现目标追踪
【官方框架地址】 yolov5框架:https://github.com/ultralytics/yolov5 bytetrack框架:https://github.com/ifzhang/ByteTrack 【算法介绍】 Yolov5与ByTetrack:目标追踪的强大组合 Yolov5和ByTetrack是两种在目标追踪领域具有显著影响力…...

i2c接口验证
用i2cdetect命令。 1,检测有几组i2c总线在系统上 i2cdetect -l 2,查询i2c总线上挂接的设备及设备的地址 i2cdetect -y <number> i2cdetect -y 0命令用于扫描I2C总线/dev/i2c-0,并列出所有在该总线上存在的有效I2C设备地址。...

1、Pandas 数据结构:从 Series 到 DataFrame
目录 Series 创建 Series Series 索引和选择 DataFrame 创建 DataFrame DataFrame 索引和选择 DataFrame 操作和转换 数据结构转换 Series Series 是 Pandas 中的一维数组形式的数据结构,它可以包含任何数据类型(整数、字符串、浮点数、Python对象…...

MySQL函数—字符串函数
MySQL函数—字符串函数 函数功能CONCAT(s1,s2,...sn)字符串拼接,将s1,s2,...sn拼接成一个字符串LOWER(str)将字符串全部转为小写UPPER(str)将字符串全部转为大写LPAD(str,n,pad)左填充,用字符串pad对str左边进行填充,达到n个字符串长度RPAD(s…...

PLC从HTTP服务端获取JSON文件,解析数据到寄存器
智能网关IGT-DSER集成了多种PLC协议,方便实现各种PLC与HTTP服务端之间通讯。通过网关的参数配置软件绑定JSON文件的字段与PLC寄存器地址,配置URL,即可采用POST命令,将JSON文件提交给HTTP的服务端; 服务端有返回的JSON&…...

LeetCode 46. 全排列
46. 全排列 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1: 输入:nums [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2: 输入&#…...

NVMe TCG安全数据存储简介
NVMe(非易失性内存主机控制器接口规范)与TCG(可信计算组)的集成主要体现在数据安全、固件验证和硬件信任根等方面,以确保存储设备的数据保护能力和安全性。 TCG Opal定义了一套针对自加密硬盘(SED, Self-En…...

Linux命令-ab命令(Apache服务器的性能测试工具 )
Apache服务器的性能测试工具 ab命令 是一个测试你 Apache http 服务器的工具,你可以通过这个工具,指定一个单位时间内向 apache 发出的请求数量来看看你的 Apache 和机器配合的性能如何。 语法 []内容为ab命令后跟的语法,eg:ab …...

蓝桥杯java基础
数组的倒序与隔位输出 时间限制:1.000S 空间限制:128MB 题目描述 给定一个整数数组,编写一个程序实现以下功能: 1. 将输入的整数数组倒序输出,每个数之间用空格分隔。 2. 从正序数组中,每隔一个单位&a…...

Unity3d引擎中使用AIGC生成的360全景图(天空盒)
前言 在这里与Skybox AI一起,一键打造体验无限的360世界,这是这个AIGC一键生成全景图的网站欢迎语。 刚使用它是23年中旬,在没有空去给客户实地拍摄全景图时,可以快速用它生成一些相关的全景图,用作前期沟通的VR de…...

React Router v6 改变页面Title
先说正事再闲聊 1、在路由表加个title字段 2、在index包裹路由 3、在App设置title 闲聊: 看到小黄波浪线了没 就是说默认不支持title字段了 出来的提示, 所以我本来是像下面这样搞的,就是感觉有点难维护,就还是用上面的方法了 …...