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

css实现圆环展示百分比,根据值动态展示所占比例

代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...

3.3.1_1 检错编码(奇偶校验码)

从这节课开始&#xff0c;我们会探讨数据链路层的差错控制功能&#xff0c;差错控制功能的主要目标是要发现并且解决一个帧内部的位错误&#xff0c;我们需要使用特殊的编码技术去发现帧内部的位错误&#xff0c;当我们发现位错误之后&#xff0c;通常来说有两种解决方案。第一…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

在Ubuntu中设置开机自动运行(sudo)指令的指南

在Ubuntu系统中&#xff0c;有时需要在系统启动时自动执行某些命令&#xff0c;特别是需要 sudo权限的指令。为了实现这一功能&#xff0c;可以使用多种方法&#xff0c;包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法&#xff0c;并提供…...

C# 类和继承(抽象类)

抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

Linux --进程控制

本文从以下五个方面来初步认识进程控制&#xff1a; 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程&#xff0c;创建出来的进程就是子进程&#xff0c;原来的进程为父进程。…...

LLMs 系列实操科普(1)

写在前面&#xff1a; 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容&#xff0c;原视频时长 ~130 分钟&#xff0c;以实操演示主流的一些 LLMs 的使用&#xff0c;由于涉及到实操&#xff0c;实际上并不适合以文字整理&#xff0c;但还是决定尽量整理一份笔…...

淘宝扭蛋机小程序系统开发:打造互动性强的购物平台

淘宝扭蛋机小程序系统的开发&#xff0c;旨在打造一个互动性强的购物平台&#xff0c;让用户在购物的同时&#xff0c;能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机&#xff0c;实现旋转、抽拉等动作&#xff0c;增…...

认识CMake并使用CMake构建自己的第一个项目

1.CMake的作用和优势 跨平台支持&#xff1a;CMake支持多种操作系统和编译器&#xff0c;使用同一份构建配置可以在不同的环境中使用 简化配置&#xff1a;通过CMakeLists.txt文件&#xff0c;用户可以定义项目结构、依赖项、编译选项等&#xff0c;无需手动编写复杂的构建脚本…...

深度剖析 DeepSeek 开源模型部署与应用:策略、权衡与未来走向

在人工智能技术呈指数级发展的当下&#xff0c;大模型已然成为推动各行业变革的核心驱动力。DeepSeek 开源模型以其卓越的性能和灵活的开源特性&#xff0c;吸引了众多企业与开发者的目光。如何高效且合理地部署与运用 DeepSeek 模型&#xff0c;成为释放其巨大潜力的关键所在&…...