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

【ffmpeg命令入门】获取音视频信息

文章目录

  • 前言
    • 使用ffmpeg获取简单的音视频信息
        • 输入文件信息
        • 文件元数据
        • 视频流信息
        • 音频流信息
    • 使用ffprobe获取更详细的音视频信息
      • 输入文件信息
      • 文件元数据
      • 视频流信息
      • 音频流信息
  • 总结


前言

在处理多媒体文件时,了解文件的详细信息对于调试和优化处理过程至关重要。FFmpeg,作为一个强大的开源多媒体处理工具,提供了多种功能来获取音视频文件的详细信息。本文将简要介绍如何使用 FFmpeg 和其相关工具来获取音视频信息,帮助用户更好地理解和操作多媒体文件。

FFmpeg 的 ffprobe 是一个用于分析多媒体文件的工具,它可以详细列出文件的音视频流信息、编码格式、分辨率、比特率等关键参数。通过 ffprobe 命令,用户可以轻松获取这些信息,从而了解文件的具体结构和特性。除此之外,FFmpeg 还可以通过 ffmpeg 命令获取部分基本的信息,尽管它主要用于多媒体数据的转换和处理。


使用ffmpeg获取简单的音视频信息

我们可以使用下面的命令获取信息,只需要输入文件不需要输出文件:

ffmpeg -i "[板绘版][修补完成]一键三连变成女孩子有多么可爱!  60fps.mp4"

打印结果如下:

ffmpeg version 2024-07-15-git-350146a1ea-full_build-www.gyan.dev Copyright (c) 2000-2024 the FFmpeg developersbuilt with gcc 13.2.0 (Rev5, Built by MSYS2 project)configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libopenjpeg --enable-libquirc --enable-libuavs3d --enable-libxevd --enable-libzvbi --enable-libqrencode --enable-librav1e --enable-libsvtav1 --enable-libvvenc --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxeve --enable-libxvid --enable-libaom --enable-libjxl --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-dxva2 --enable-d3d11va --enable-d3d12va --enable-ffnvcodec --enable-libvpl --enable-nvdec --enable-nvenc --enable-vaapi --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprintlibavutil      59. 28.100 / 59. 28.100libavcodec     61. 10.100 / 61. 10.100libavformat    61.  5.101 / 61.  5.101libavdevice    61.  2.100 / 61.  2.100libavfilter    10.  2.102 / 10.  2.102libswscale      8.  2.100 /  8.  2.100libswresample   5.  2.100 /  5.  2.100libpostproc    58.  2.100 / 58.  2.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '[板绘版][修补完成]一键三连变成女孩子有多么可爱!  60fps.mp4':Metadata:major_brand     : isomminor_version   : 512compatible_brands: isomiso2avc1mp41encoder         : Lavf59.27.100description     : Packed by Bilibili XCoder v2.0.2Duration: 00:00:39.23, start: 0.000000, bitrate: 2532 kb/sStream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1920x960, 2334 kb/s, 60 fps, 60 tbr, 16k tbn (default)Metadata:handler_name    : Bento4 Video Handlervendor_id       : [0][0][0][0]Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 186 kb/s (default)Metadata:handler_name    : Bento4 Sound Handlervendor_id       : [0][0][0][0]
At least one output file must be specified

你提供的 FFmpeg 输出信息包含了关于输入文件的详细音视频信息。下面逐条分析这些信息的含义:

输入文件信息
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '[板绘版][修补完成]一键三连变成女孩子有多么可爱!  60fps.mp4':
  • Input #0:输入文件的编号。FFmpeg 可以处理多个输入文件,这里表示第一个输入文件。
  • mov,mp4,m4a,3gp,3g2,mj2:表示文件的容器格式支持列表。这个文件是 MP4 容器格式,它也可能是 MOV、M4A、3GP、3G2 或 MJ2 格式。
  • from '[板绘版][修补完成]一键三连变成女孩子有多么可爱! 60fps.mp4':输入文件的路径和文件名。
文件元数据
  Metadata:major_brand     : isomminor_version   : 512compatible_brands: isomiso2avc1mp41encoder         : Lavf59.27.100description     : Packed by Bilibili XCoder v2.0.2
  • major_brand:文件的主要品牌,表示文件使用的主要格式或标准。isom 表示这个文件是符合 ISO 基本媒体文件格式标准的。
  • minor_version:文件的次要版本号。这里是 512
  • compatible_brands:文件兼容的品牌,表示文件可以与其他品牌兼容播放或处理。这里包括 isomiso2avc1(表示 H.264 视频)和 mp41
  • encoder:用于编码这个文件的 FFmpeg 版本。这里是 Lavf59.27.100,表示使用的是 FFmpeg 的 Lavf(Libavformat)库。
  • description:文件的描述信息,这里说明文件是通过 Bilibili XCoder v2.0.2 工具处理的。
视频流信息
  Duration: 00:00:39.23, start: 0.000000, bitrate: 2532 kb/s
  • Duration:视频的时长,这里是 39.23 秒。
  • start:视频流的起始时间,通常为 0。
  • bitrate:视频流的比特率,这里是 2532 kb/s,表示每秒传输的数据量。
  Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1920x960, 2334 kb/s, 60 fps, 60 tbr, 16k tbn (default)
  • Stream #0:0:视频流的编号。#0 表示第一个输入文件,:0 表示第一个流。
  • [0x1](und):流的 ID 和语言。[0x1] 是流的标识符,(und) 表示语言未定义。
  • Video: h264 (High) (avc1 / 0x31637661):视频编解码器和类型。这里使用的是 H.264 编码(High Profile),avc1 是 H.264 的 FourCC 代码。
  • yuv420p(progressive):视频的像素格式和扫描方式。yuv420p 表示 YUV 4:2:0 像素格式,progressive 表示逐行扫描。
  • 1920x960:视频分辨率,即宽度 1920 像素,高度 960 像素。
  • 2334 kb/s:视频流的比特率。
  • 60 fps:视频的帧率,即每秒 60 帧。
  • 60 tbr:视频流的时间基准,tbr 表示时间基准帧率。
  • 16k tbn:时间基准的分母,tbn 表示时间基准。
音频流信息
  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 186 kb/s (default)
  • Stream #0:1:音频流的编号。#0 表示第一个输入文件,:1 表示第二个流。
  • [0x2](und):流的 ID 和语言。[0x2] 是流的标识符,(und) 表示语言未定义。
  • Audio: aac (LC) (mp4a / 0x6134706D):音频编解码器和类型。这里使用的是 AAC 编码(Low Complexity),mp4a 是 AAC 的 FourCC 代码。
  • 48000 Hz:音频的采样率,即每秒 48000 个样本。
  • stereo:音频的声道数,这里是立体声。
  • fltp:音频的样本格式,fltp 表示浮点样本。
  • 186 kb/s:音频流的比特率。
  • (default):标记该音频流为默认流。

使用ffprobe获取更详细的音视频信息

我们可以使用下面这个命令获取更详细音视频的信息:

ffprobe -i "[板绘版][修补完成]一键三连变成女孩子有多么可爱!  60fps.mp4"

它的输出如下:

ffprobe version 2024-07-15-git-350146a1ea-full_build-www.gyan.dev Copyright (c) 2007-2024 the FFmpeg developersbuilt with gcc 13.2.0 (Rev5, Built by MSYS2 project)configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libopenjpeg --enable-libquirc --enable-libuavs3d --enable-libxevd --enable-libzvbi --enable-libqrencode --enable-librav1e --enable-libsvtav1 --enable-libvvenc --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxeve --enable-libxvid --enable-libaom --enable-libjxl --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-dxva2 --enable-d3d11va --enable-d3d12va --enable-ffnvcodec --enable-libvpl --enable-nvdec --enable-nvenc --enable-vaapi --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprintlibavutil      59. 28.100 / 59. 28.100libavcodec     61. 10.100 / 61. 10.100libavformat    61.  5.101 / 61.  5.101libavdevice    61.  2.100 / 61.  2.100libavfilter    10.  2.102 / 10.  2.102libswscale      8.  2.100 /  8.  2.100libswresample   5.  2.100 /  5.  2.100libpostproc    58.  2.100 / 58.  2.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '[板绘版][修补完成]一键三连变成女孩子有多么可爱!  60fps.mp4':Metadata:major_brand     : isomminor_version   : 512compatible_brands: isomiso2avc1mp41encoder         : Lavf59.27.100description     : Packed by Bilibili XCoder v2.0.2Duration: 00:00:39.23, start: 0.000000, bitrate: 2532 kb/sStream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1920x960, 2334 kb/s, 60 fps, 60 tbr, 16k tbn (default)Metadata:handler_name    : Bento4 Video Handlervendor_id       : [0][0][0][0]Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 186 kb/s (default)Metadata:handler_name    : Bento4 Sound Handlervendor_id       : [0][0][0][0]

下面是对你提供的 FFprobe 输出信息的逐条分析和介绍:

输入文件信息

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '[板绘版][修补完成]一键三连变成女孩子有多么可爱!  60fps.mp4':
  • Input #0:表示这是第一个输入文件(编号为 0)。FFprobe 允许分析多个输入文件,这里只涉及一个。
  • mov,mp4,m4a,3gp,3g2,mj2:这是输入文件支持的格式类型。这个文件是 MP4 格式,但也兼容其他格式如 MOV、M4A、3GP、3G2 和 MJ2。
  • from '[板绘版][修补完成]一键三连变成女孩子有多么可爱! 60fps.mp4':输入文件的名称和路径。

文件元数据

  Metadata:major_brand     : isomminor_version   : 512compatible_brands: isomiso2avc1mp41encoder         : Lavf59.27.100description     : Packed by Bilibili XCoder v2.0.2
  • major_brand:表示文件的主要品牌,isom 表示符合 ISO 基本媒体文件标准。
  • minor_version:文件的次要版本号,512
  • compatible_brands:兼容的品牌和格式,表示这个文件兼容 isomiso2avc1(H.264 视频编码)和 mp41
  • encoder:文件编码使用的库和版本,这里是 Lavf59.27.100(FFmpeg 的 Lavf 库)。
  • description:文件的描述信息,说明这个文件是通过 Bilibili XCoder v2.0.2 工具处理的。

视频流信息

  Duration: 00:00:39.23, start: 0.000000, bitrate: 2532 kb/s
  • Duration:视频的时长,为 39.23 秒。
  • start:视频流的起始时间,通常为 0。
  • bitrate:视频流的比特率,为 2532 kb/s,表示每秒传输的数据量。
  Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1920x960, 2334 kb/s, 60 fps, 60 tbr, 16k tbn (default)Metadata:handler_name    : Bento4 Video Handlervendor_id       : [0][0][0][0]
  • Stream #0:0:视频流的编号。#0 表示第一个输入文件,:0 表示第一个流。
  • [0x1](und):流的 ID 和语言。[0x1] 是流的标识符,(und) 表示语言未定义。
  • Video: h264 (High) (avc1 / 0x31637661):视频编解码器和类型。这里使用的是 H.264 编码(High Profile),avc1 是 H.264 的 FourCC 代码。
  • yuv420p(progressive):视频的像素格式和扫描方式。yuv420p 表示 YUV 4:2:0 像素格式,progressive 表示逐行扫描。
  • 1920x960:视频分辨率,即宽度 1920 像素,高度 960 像素。
  • 2334 kb/s:视频流的比特率。
  • 60 fps:视频的帧率,即每秒 60 帧。
  • 60 tbr:视频流的时间基准帧率(tbr)。
  • 16k tbn:时间基准的分母(tbn)。

音频流信息

  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 186 kb/s (default)Metadata:handler_name    : Bento4 Sound Handlervendor_id       : [0][0][0][0]
  • Stream #0:1:音频流的编号。#0 表示第一个输入文件,:1 表示第二个流。
  • [0x2](und):流的 ID 和语言。[0x2] 是流的标识符,(und) 表示语言未定义。
  • Audio: aac (LC) (mp4a / 0x6134706D):音频编解码器和类型。这里使用的是 AAC 编码(Low Complexity),mp4a 是 AAC 的 FourCC 代码。
  • 48000 Hz:音频的采样率,即每秒 48000 个样本。
  • stereo:音频的声道数,这里是立体声。
  • fltp

:音频的样本格式,fltp 表示浮点样本。

  • 186 kb/s:音频流的比特率。
  • (default):标记该音频流为默认流。

总结

获取音视频信息是多媒体处理中的重要一步,尤其是在调试和优化多媒体文件时。FFmpeg 的 ffprobe 工具提供了一个强大且详细的接口,用于分析和提取文件的各种参数。掌握如何使用这些工具,可以帮助用户更高效地处理和管理多媒体文件,确保在编码、转换和编辑过程中获得最佳效果。无论是处理专业级的视频项目,还是进行简单的文件检查,了解如何获取和解读这些信息都是至关重要的技能。

相关文章:

【ffmpeg命令入门】获取音视频信息

文章目录 前言使用ffmpeg获取简单的音视频信息输入文件信息文件元数据视频流信息音频流信息 使用ffprobe获取更详细的音视频信息输入文件信息文件元数据视频流信息音频流信息 总结 前言 在处理多媒体文件时,了解文件的详细信息对于调试和优化处理过程至关重要。FFm…...

【IoTDB 线上小课 05】时序数据文件 TsFile 三问“解密”!

【IoTDB 视频小课】持续更新!第五期来啦~ 关于 IoTDB,关于物联网,关于时序数据库,关于开源... 一个问题重点,3-5 分钟详细展开,为大家清晰解惑: IoTDB 的 TsFile 科普! 了解了时序数…...

python-爬虫实例(4):获取b站的章若楠的视频

目录 前言 道路千万条,安全第一条 爬虫不谨慎,亲人两行泪 获取b站的章若楠的视频 一、话不多说,先上代码 二、爬虫四步走 1.UA伪装 2.获取url 3.发送请求 4.获取响应数据进行解析并保存 总结 前言 道路千万条,安全第一条 爬…...

C# yaml 配置文件的用法(一)

目录 一、简介 二、yaml 的符号 1.冒号 2.短横杆 3.文档分隔符 4.保留换行符 5.注释 6.锚点 7.NULL值 8.合并 一、简介 YAML(YAML Aint Markup Language)是一种数据序列化标准,广泛用于配置文件、数据交换和存储。YAML的设计目标是…...

人工智能与机器学习原理精解【4】

文章目录 马尔科夫过程论要点理论基础σ代数定义性质应用例子总结 马尔可夫过程概述一、马尔可夫过程的原理二、马尔可夫过程的算法过程三、具体例子 马尔可夫链的状态转移概率矩阵一、确定马尔可夫链的状态空间二、收集状态转移数据三、计算转移频率四、构建状态转移概率矩阵示…...

Go channel实现原理详解(源码解读)

文章目录 Go channel详解Channel 的发展Channel 的应用场景Channel 基本用法Channel 的实现原理chan 数据结构初始化sendrecvclose使用 Channel 容易犯的错误总结Go channel详解 Channel 是 Go 语言内建的 first-class 类型,也是 Go 语言与众不同的特性之一。Channel 让并发消…...

数据结构-C语言-排序(4)

代码位置: test-c-2024: 对C语言习题代码的练习 (gitee.com) 一、前言: 1.1-排序定义: 排序就是将一组杂乱无章的数据按照一定的规律(升序或降序)组织起来。(注:我们这里的排序采用的都为升序) 1.2-排…...

灰色关联分析【系统分析+综合评价】

系统分析: 判断哪个因素影响最大 基本思想:根据序列曲线几何形状的相似程度来判断其练习是否紧密 绘制统计图并进行分析 确定子序列和母序列 对变量进行预处理(去量纲、缩小变量范围) 熟练使用excel与其公式和固定&#xff08…...

linux 部署flask项目

linux python环境安装: https://blog.csdn.net/weixin_41934979/article/details/140528410 1.创建虚拟环境 python3.12 -m venv .venv 2.激活环境 . .venv/bin/activate 3.安装依赖包(pip3.12 install -r requirements.txt) pip3.12 install -r requirements.txt 4.测试启…...

ES6 数值的扩展(十八)

1. 二进制和八进制字面量 特性:可以直接在代码中使用二进制(0b 或 0B)和八进制(0o 或 0O)字面量。 用法:简化二进制和八进制数值的表示。 const binaryNumber 0b1010; // 二进制表示 10 const octalNumb…...

面试知识储备-redis和redission

1.redis的使用 引入依赖,自动注解redistemplate即可使用, 默认的redistemplate存入到redis中是字符流的形式,需要配置redistemplate, 如果不想配置,可以使用stringRedistemplate 可以使用string类型,但是…...

【5本可选】保证知网检索,现在投稿可在8月见刊,对文科领域友好

AEPH出版社旗下有5本学术期刊,专门出版自然科学、社会科学研究与教育领域论文的高影响力期刊,拥有正规ISSN号,出版类型涉及应用和理论方面的原创和未曾公开发表的研究论文,分配独立DOI号。 期刊1 Philosophy and Social Science…...

SpringBoot入门:如何新建SpringBoot项目(保姆级教程)

在本文中,我们将演示如何新建一个基本的 Spring Boot 项目。写这篇文章的时候我还是很惊讶的,因为我发现有些java的初学者,甚至工作10年的老员工居然并不会新建一个SpringBoot项目,所以特别出了一篇文章来教大家新建一个SpringBoo…...

数据恢复篇:适用于 Android 视频恢复的 6 个工具

在智能手机这个动态的世界里,每一刻都被捕捉并以数字方式存储,丢失珍贵的视频可能是一种令人心碎的经历。不必担心,因为 Android 生态系统提供了大量旨在挽救这些珍贵回忆的视频恢复应用程序。 这些应用程序是强大的工具,旨在挽救…...

Android笔试面试题AI答之控件Views(6)

答案来着文心一言,仅供参考 目录 1.简述什么是RemoteViews?使用场景有哪些?RemoteViews的特性使用场景总结 2.获取View宽高的几种方法?1. 在onWindowFocusChanged方法中获取2. 使用ViewTreeObserver.OnGlobalLayoutListener3. 使用ViewTreeObserver.OnPreDrawLi…...

扭蛋机潮玩小程序搭建,扭蛋机行业的创新

在当下潮玩市场中,扭蛋机具有盲盒的未知性和惊喜体验感,商品丰富,并且价格相对低廉,获得了极高的人气。年轻人开始对扭蛋机逐渐“上头”,为了扭到喜欢的商品不断地进行复购下单,在这场随机性的扭蛋游戏中&a…...

supOS赋能千行百业

推进制造业数字化转型是促进数字经济和实体经济深度融合的重点领域。在长期摸索和实践过程中,蓝卓打造了工厂操作系统、行业云操作系统、产业大脑操作系统三大产品,形成了企业侧、行业侧、产业侧的立体化赋能体系,全面赋能工业企业&#xff0…...

Vue中filter的使用

在 Vue.js 中,filter() 方法用于创建一个新数组,其中包含通过所提供函数实现的测试的所有元素。filter() 不会改变原数组,而是返回一个新的数组。 语法 array.filter(callback(element[, index[, array]])[, thisArg])callback:…...

案例研究|柯尼卡美能达软件开发(大连)有限公司基于DataEase构筑内部数据可视化体系

柯尼卡美能达软件开发(大连)有限公司于2007年5月25日注册成立。公司以“洞悉在工作的人们真实情况,探寻他们的愿望,持续提供使人们更加幸福的服务”为使命,致力于系统品质测试服务、软件开发服务、IT安全服务、高级BPO…...

PHP框架详解- symfony框架

文心一言 Symfony框架是一个用PHP语言编写的开放源代码的Web应用框架,旨在加速Web应用程序的开发过程,提高代码的可维护性和可扩展性。以下是对Symfony框架的详细解析: 一、框架概述 起源与开发者: Symfony由SensioLabs&#…...

React Native 开发环境搭建(全平台详解)

React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统

医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍

文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结: 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析: 实际业务去理解体会统一注…...

Caliper 配置文件解析:config.yaml

Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...

Map相关知识

数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...

AGain DB和倍数增益的关系

我在设置一款索尼CMOS芯片时,Again增益0db变化为6DB,画面的变化只有2倍DN的增益,比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析: 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...