当前位置: 首页 > 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&#…...

springboot系列十一:Thymeleaf

文章目录 官方文档基本介绍Thymeleaf机制说明Thymeleaf语法表达式运算符th属性迭代条件运算使用Thymeleaf th属性需要注意点 Thymeleaf综合案例需求说明思路分析代码实现 作业布置 官方文档 在线文档: https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html 离线…...

51单片机嵌入式开发:12、STC89C52RC 红外解码数码管显示

STC89C52RC 红外解码数码管显示 1 概述2 HX1838原理2.1 原理概述2.2 原理概述 3 HX1838代码实现3.1 工程整理3.2 工程代码3.3 演示 4 HX1838总结 1 概述 HX1838是一种常见的红外接收模块,用于接收和解码红外遥控器发送的红外信号。 HX1838具有以下特点和功能&#…...

数据结构--二叉树详解

一,概念 1,结点的度:一个结点含有子树的个数称为该结点的度 2, 树的度:一棵树中,所有结点度的最大值称为树的度; 3,叶子结点或终端结点:度为0的结点称为叶结点&#x…...

最短路径 | 743. 网络延迟时间之 Dijkstra 算法和 Floyd 算法

目录 1 基于 Dijkstra 算法1.1 代码说明1.2 完整代码 2 基于 Floyd 算法2.1 代码说明2.2 完整代码 前言:我在做「399. 除法求值」时,看到了基于 Floyd 算法的解决方案,突然想起来自己还没有做过最短路径相关的题。因此找来了「743. 网络…...

LLM模型与实践之基于 MindSpore 实现 BERT 对话情绪识别

安装环境 # 该案例在 mindnlp 0.3.1 版本完成适配,如果发现案例跑不通,可以指定mindnlp版本,执行!pip install mindnlp0.3.1 !pip install mindnlp 模型简介 BERT是一种由Google于2018年发布的新型语言模型,它是基于Transforme…...

单例模式学习cpp

现在我们要求定义一个表示总统的类型。presented可以从该类型继承出French present和American present的等类型。这些派生类型都只能产生一个实例 为了设计一个表示总统的类型,并从该类型派生出只能产生一个实例的具体总统(如法国总统和美国总统&#x…...

第5讲:Sysmac Studio中的硬件拓扑

Sysmac Studio软件概述 一、创建项目 在打开的软件中选择新建工程 然后在工程属性中输入工程名称,作者,类型选择“标准工程”即可。 在选择设备处,类型选择“控制器”。 在版本处,可以在NJ控制器的硬件右侧标签处找到这样一个版本号。 我们今天用到的是1.40,所以在软…...

使用GoAccess进行Web日志可视化

运行网站的挑战之一是了解您的 Web 服务器正在做什么。虽然各种监控应用程序可以在您的服务器以高负载或页面响应缓慢运行时提醒您,但要完全了解正在发生的事情,唯一的方法是查看 Web 日志。阅读日志数据页面并了解正在发生的事情可能需要花费大量时间。…...

GD 32 流水灯

前言: 通过后面的学习掌握了一些逻辑架构的知识,通过复习的方式将学到的裸机任务架构的知识运用起来,同时巩固前面学到的知识,GPIO的配置等。 开发板上LED引脚使用示意图 注:此次LED灯的点亮凡是是高电平点亮&#xff…...

数据结构之栈详解

1. 栈的概念以及结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。 压栈…...