常见的多媒体框架(FFmpeg GStreamer DirectShow AVFoundation OpenMax)

1.FFmpeg

FFmpeg是一个非常强大的开源多媒体处理框架,它提供了一系列用于处理音频、视频和多媒体流的工具和库。它也是最流行且应用最广泛的框架!

官方网址:https://ffmpeg.org/

FFmpeg 的主要特点和功能:

  1. 编解码器支持: FFmpeg 支持众多音视频编解码器,包括常见的 H.264、H.265、AAC、MP3 等,也支持一些不常见的编解码器。
  2. 格式支持: 它支持多种多媒体格式的解析和封装,包括 AVI、MP4、MKV、FLV、MOV 等。
  3. 转码和处理: FFmpeg 可以进行音视频的转码、裁剪、拼接、水印添加等处理操作,使其在不同格式、分辨率和编码方式之间进行转换。
  4. 流媒体处理: 它支持从摄像头、文件或网络流等源接收多媒体流,并能进行实时处理和转发,用于流媒体直播和视频会议等场景。
  5. 滤镜和特效: FFmpeg 提供了丰富的滤镜和特效,可以实现图像处理、色彩调整、模糊、锐化等效果。
  6. 音频处理: 它能够进行音频的分割、合并、音量调整、混音等操作。
  7. 跨平台性: FFmpeg 是跨平台的,可以在 Windows、MacOS、Linux 等操作系统上运行。
  8. 开源和免费: FFmpeg 是完全开源的,可以免费使用,并且具有活跃的社区支持和持续的更新和改进。

1.1 安装FFmpeg

在 Ubuntu 上安装 FFmpeg 可以通过包管理器 apt 来完成。以下是在 Ubuntu 上安装 FFmpeg 的步骤:

  1. 更新软件包列表
sudo apt update
  1. 安装 FFmpeg
sudo apt install ffmpeg -y

安装完成后,你可以通过以下命令验证是否成功安装了 FFmpeg:

ffmpeg -version

如需安装FFmpeg拓展开发包可执行如下所示命令:

sudo apt install libavcodec-dev -y
sudo apt install libavformat-dev -y
sudo apt install libavcodec-extra -y

FFmpeg开发文档:https://ffmpeg.org/ffmpeg.html

1.2 使用命令行执行ffmpeg

转换视频格式

ffmpeg -i input.mp4 output.avi

这个命令将输入的 MP4 文件转换为 AVI 格式。

合并视频和音频

ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a aac -strict experimental output.mp4

这个命令将一个视频文件和一个音频文件合并为一个 MP4 文件,视频流不变,音频流重新编码为 AAC 格式。

调整视频大小

ffmpeg -i input.mp4 -vf scale=1280:720 output.mp4

这个命令将输入的 MP4 文件调整为 1280x720 分辨率的输出。

改变视频帧率

ffmpeg -i input.mp4 -r 24 output.mp4

这个命令将输入的 MP4 文件的帧率改为 24 帧每秒。

提取视频中的帧

ffmpeg -i input.mp4 -vf "select=eq(n\,100)" -vsync vfr output.png

这个命令将从输入的 MP4 文件中提取第 100 帧,并将其保存为 PNG 图像文件。

添加水印

ffmpeg -i input.mp4 -i test.jpg -filter_complex "overlay=10:10" output.mp4

这个命令将一个水印图像叠加到输入的 MP4 文件的左上角。

1.3 代码实现视频格式转换

C++代码实现MP4视频格式转换AVI,程序主要内容如下图所示:

1.4 FFmpeg核心库介绍

2.GStreamer

GStreamer 是一个功能强大的开源多媒体框架,用于创建、处理和播放音频和视频流。官方网址:GStreamer: open source multimedia framework

  1. 模块化架构: GStreamer 的设计是基于模块化的架构,可以根据需要添加或移除各种插件和元件,从而实现灵活的功能扩展和定制。
  2. 跨平台性: GStreamer 可以在多种操作系统上运行,包括 Linux、Windows、macOS 等。
  3. 丰富的插件支持: GStreamer 提供了大量的插件,用于处理各种多媒体格式、编解码器、滤镜、特效等,可以满足各种多媒体处理需求。
  4. 流式处理: GStreamer 支持流式处理,可以处理实时音视频流,适用于流媒体直播、视频会议等场景。
  5. 音视频编解码支持: 它支持多种常见的音视频编解码器,包括 H.264、H.265、AAC、MP3 等,也支持一些不常见的编解码器。
  6. 容器格式支持: GStreamer 支持多种多媒体容器格式的解析和封装,包括 AVI、MP4、MKV、FLV、MOV 等。
  7. 图形界面和命令行工具: GStreamer 提供了图形界面和命令行工具,用于配置和管理多媒体处理流程。
  8. 多语言支持: GStreamer 可以通过各种语言的绑定进行使用,包括 C、C++、Python、Java 等。

GStreamer的核心是基于管道(Pipeline)的概念,这意味着你可以将多个处理步骤(称为元素或Element)连接起来,以实现复杂的媒体处理任务。

2.1 安装GStreamer

  1. 更新软件包列表

    在终端中执行以下命令,确保系统的软件包列表是最新的:

    sudo apt update
    
  2. 安装 GStreamer

    安装 GStreamer 的基本运行时库和插件。你可以根据需要选择不同的插件包,如 gstreamer1.0-plugins-basegstreamer1.0-plugins-goodgstreamer1.0-plugins-bad 和 gstreamer1.0-plugins-ugly

    sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio -y
    

    这些插件包括了各种常见的音视频编解码器、文件格式支持以及其他的功能扩展。

  3. 安装额外的 GStreamer 插件(可选):

    如果你需要更多特定功能的插件,你可以根据需要安装额外的插件包。例如,如果你需要使用 GStreamer 的 Python 绑定,可以安装 gir1.2-gst-plugins-base-1.0 包。

    sudo apt install gir1.2-gst-plugins-base-1.0
    
  4. 验证安装

    安装完成后,你可以通过运行以下命令来验证 GStreamer 是否正确安装:

    gst-inspect-1.0 --version
    

    这将显示 GStreamer 版本信息。

GStreamer开发文档:https://gstreamer.freedesktop.org/documentation

2.2 使用命令行执行

转换视频格式

gst-launch-1.0 -e filesrc location=input.mp4 ! qtdemux name=demux \demux.video_0 ! queue ! decodebin ! videoconvert ! \avenc_mpeg4 ! matroskamux name=mux \demux.audio_0 ! queue ! decodebin ! audioconvert ! \audioresample ! audioconvert ! mux. \mux. ! filesink location=output.mkv

这个命令将输入的 MP4 文件转换为 MKV格式。

合并视频和音频

gst-launch-1.0 -e filesrc location=video.mp4 ! qtdemux name=demux \
demux.video_0 ! queue ! h264parse ! mux. \
filesrc location=audio.mp3 ! decodebin ! audioconvert ! voaacenc ! aacparse ! mux. \
qtmux name=mux ! filesink location=output.mp4

这个命令将一个视频文件和一个音频文件合并为一个 MP4 文件,视频流不变,音频流重新编码为 AAC 格式。

调整视频大小

gst-launch-1.0 filesrc location=input.mp4 ! decodebin ! videoscale ! video/x-raw,width=1280,height=720 ! videoconvert ! x264enc ! mp4mux ! filesink location=output.mp4

这个命令将输入的 MP4 文件调整为 1280x720 分辨率的输出。

改变视频帧率

gst-launch-1.0 filesrc location=input.mp4 ! decodebin ! videorate ! video/x-raw,framerate=24/1 ! videoconvert ! x264enc ! mp4mux ! filesink location=output.mp4

这个命令将输入的 MP4 文件的帧率改为 24 帧每秒。

提取视频中的帧

gst-launch-1.0 filesrc location=input.mp4 ! qtdemux ! decodebin ! videorate ! video/x-raw,framerate=1/1 ! videoconvert ! pngenc ! filesink location=output.png

这个命令将从输入的 MP4 文件中提取视频中的图像,并保存为 PNG 图像文件。

视频叠加文字

gst-launch-1.0 filesrc location=input.mp4 ! decodebin ! videoconvert ! textoverlay text="Hello, World!" valignment=top halignment=left ! x264enc ! mp4mux ! filesink location=output.mp4

这个命令将从输入的 MP4 视频上叠加文字并将结果保存到输出文件中。

2.3 第一个GStreamer 应用程序

C代码实现MP4文件的播放,程序主要内容如下图所示:

编译运行程序后,可以看到程序会读取指定路径下的文件并弹出一个窗口播放视频:

$ ls
basic-tutorial input.mp4 main.c
$ ./basic-tutoria

Copy

She

2.4 创建并连接管道

C代码实现创建元素并将元素相互连接,程序主要内容如下图所示:

编译运行程序后,可以看到程序会读取指定路径下的文件并弹出一个窗口播放默认视频:

$ ls
concepts-tutorial  main.c
$ ./concepts-tutorial

Copy

She

3.DirectShow

Microsoft® DirectShow® 是 Microsoft Windows® 平台上流媒体的体系结构。 DirectShow 提供多媒体流的高质量捕获和播放。 它支持多种格式,包括高级系统格式 (ASF) 、电影专家组 (MPEG) 、Audio-Video交错 (AVI) 、MPEG 音频层 3 (MP3) 和 WAV 声音文件。 它支持基于 Windows 驱动程序模型 (WDM) 或视频从数字和模拟设备捕获。 它会自动检测并使用视频和音频加速硬件(如果可用),但也支持没有加速硬件的系统。

3.1 架构

按照功能来分,Filter 大致分为三类:Source Filters、Transform Filters 和 Rendering Filters。

  • Source Filters 主要负责取得数据,数据源可以是文件、因特网、或者计算机里的采集卡、数字摄像机等,然后将数据往下传输;
  • Transform Fitlers 主要负责数据的格式转换、传输;
  • Rendering Filtes 主要负责数据的最终去向,我们可以将数据送给声卡、显卡进行多媒体的演示,也可以输出到文件进行存储。

在 DirectShow 系统上,我们看到的,即是我们的应用程序(Application)。应用程序要按照一定的意图建立起相应的 Filter Graph,然后通过 Filter Graph Manager 来控制整个的数据处理过程。DirectShow 能在 Filter Graph 运行的时候接收到各种事件,并通过消息的方式发送到我们的应用程序。这样,就实现了应用程序与 DirectShow 系统之间的交互。

现对于面向 Windows 7 或更高版本的 DirectX,是集成在Windows SDK里,感兴趣的同学可自行尝试安装与学习。

Windows SDK下载地址:Windows SDK和模拟器存档 | Microsoft Developer

DirectShow开发文档:DirectShow - Win32 apps | Microsoft Learn

3.2 分析AVI视频播放程序

在 DirectShow 中,应用程序通过将筛选器链连接在一起来执行任何任务,以便一个筛选器的输出成为另一个筛选器的输入。 一组连接的筛选器称为 筛选器图。 例如,下图显示了用于播放 AVI 文件的筛选器图。

代码地址:如何播放文件 - Win32 apps | Microsoft Learn

代码实现AVI文件的播放,程序主要内容如下图所示:

上面的程序演示了DirectShow的基本用法,包括初始化COM库(DirectShow 库)、创建过滤器图形、播放视频文件以及资源的释放。

4.AVFoundation

AVFoundation 是苹果开发的一个全功能框架,用于在iOS、macOS、watchOS和tvOS上处理基于时间的音视频媒体。使用AVFoundation,您可以轻松播放、创建和编辑QuickTime电影和MPEG-4文件,播放HLS流,并在您的应用中构建强大的媒体功能。

它是Objective-C/Swift接口的一部分,允许开发者在详细级别上处理基于时间的音视频数据。例如,您可以使用AVFoundation来检查、创建、编辑或重新编码媒体文件。它还允许从设备获取输入流,并在实时捕捉和回放过程中操作视频。

AVFoundation 官方网址:AVFoundation Overview - Apple Developer

4.1 核心框架

Core Animation 是 iOS 和 OS X 上提供的图形渲染和动画基础架构,可用于对 App 的视图和其他视觉元素进行动画处理。使用 Core Animation,绘制动画每一帧所需的大部分工作都为您完成。您所要做的就是配置一些动画参数(例如起点和终点)并告诉 Core Animation 开始。Core Animation 将完成剩下的工作,将大部分实际绘图工作交给板载图形硬件以加速渲染。这种自动图形加速可实现高帧率和流畅的动画,而不会增加 CPU 负担并降低应用程序速度。

如果您使用AVFoundation进行开发,可以从Mac App Store下载并安装最新版本的Xcode,感兴趣的同学可自行尝试安装与学习

4.2 分析MOV视频播放程序

代码地址:AVFoundationSimplePlayer-iOS:使用 AVFoundation 播放媒体 (apple.com)

代码实现MOV文件的播放,程序主要内容如下图所示:

AVFoundation框架通过创建和配置AVPlayer(播放器)及其关联的AVPlayerLayer(视频图层)来播放MOV文件,实现了媒体资源的加载、管理和用户界面展示的整合。

5.OpenMAX

5.1背景

随着消费者对智能手机、音频和视频媒体播放器和游戏机等平台上的视频、音频、语音和3D等应用程序的功能改进需求的增长,多媒体硬件平台的开发步伐正在加快。一般来说,这类产品需要高性能的处理和高数据吞吐能力。因此,出现了各种解决方案,每个解决方案都旨在加快多媒体应用的速度。示例包括:

  • 具有特定多媒体扩展的通用处理器
  • 低级硬件加速器,
  • 多种处理器架构,包括 DSP

  • 专用硬件视频解码器

所有这些架构改变的主要挑战之一是开发高效的代码。尽管通常提供编译器,但很少能够从高级编程语言中挖掘整个架构的全部潜力。

结果是,应用程序的大部分内容通常是用汇编语言编写的,专门针对硬件平台。不同多媒体硬件解决方案的快速增长意味着必须针对其移植到的每个新平台重新编写和优化软件。

这种实施效率低下的后果是延迟了新产品的推出,增加了开发成本并降低了产品质量,最终在市场需求增长的时候减缓了多媒体领域的创新。

5.2 底层架构

OpenMAX AL 是多媒体应用程序(如媒体播放器)和平台媒体框架之间的接口。它允许开发应用程序的公司轻松地将其应用程序迁移到支持 OpenMAX AL 应用程序编程接口 (API) 的不同平台(客户)。

OpenMAX IL 是媒体框架(如 Android 上的 StageFright 或 MediaCodec API、Windows 上的 DirectShow、Linux 上的 FFmpeg 或 GStreamer)与一组多媒体组件(如音频或视频编解码器)之间的接口。它允许构建平台的公司(例如允许实现 MP3 播放器)轻松更改 MP3 解码器和均衡器效果等组件,并从不同供应商处为其平台购买组件。

OpenMAX DL 是物理硬件(如数字信号处理器 (DSP) 芯片、CPU、GPU 和软件(如视频编解码器和 3D 引擎)之间的接口。它允许公司轻松集成支持 OpenMAX DL 的新硬件,而无需重新优化其低级软件。

参考链接:OpenMAX AL Overview - The Khronos Group Inc

5.2.1 OpenMAX AL应用层

OpenMAX AL(Open Media Acceleration Layer)是一个用于移动设备和嵌入式系统的多媒体应用程序接口(API)。它的设计目标是提供一种统一的方式来访问移动设备上的多媒体硬件加速功能,包括音频、视频和图形处理。通过提供一致的编程接口,开发人员可以更轻松地利用设备的硬件加速功能,从而实现更高效的多媒体应用程序开发。

OpenMAX AL的主要组成部分包括:

  1. 音频对象:允许开发人员管理音频数据的播放、录制和处理。这包括音频解码、混音、音频效果处理等功能。
  2. 视频对象:提供对视频数据的处理和渲染功能,包括视频解码、视频渲染、视频效果处理等。
  3. 图像对象:用于处理图像数据,包括图像编解码、图像处理等功能。
  4. I/O对象:用于管理输入输出流,例如文件、网络流等。

OpenMAX AL通过定义一系列标准接口和功能来实现设备无关性,这使得开发人员可以编写一次代码,然后在支持OpenMAX AL的各种移动设备上运行,而无需针对特定设备进行修改。

此外,OpenMAX AL还支持异步处理,这意味着应用程序可以同时执行多个多媒体任务,从而提高了系统的性能和响应速度。

总的来说,OpenMAX AL为移动设备上的多媒体应用程序提供了一个统一的、高效的编程接口,使开发人员能够更轻松地利用设备的多媒体硬件加速功能,从而实现更好的用户体验。

参考文档:OpenMAX Application Layer 1.1 Specification (khronos.org)

5.2.2 OpenMAX IL集成层

OpenMAX IL(Integration Layer)是一种跨平台的多媒体应用程序接口标准,旨在简化多媒体应用程序的开发过程并实现跨不同硬件平台的兼容性。它由Khronos Group开发和维护,该组织也是OpenGL和Vulkan等其他图形和多媒体标准的创建者。

OpenMAX IL的设计目标是提供一个统一的接口,使开发者能够轻松地访问和控制各种硬件加速的多媒体处理功能,包括音频、视频、图像和其他多媒体数据的编解码、处理和渲染等。它为开发者提供了一组标准化的功能调用,这些调用可以用于创建和管理多媒体处理管道,从而使应用程序能够高效地利用底层硬件资源。

OpenMAX IL的主要特点和功能包括:

  1. 跨平台兼容性:OpenMAX IL被设计为跨不同硬件平台和操作系统的标准接口,使开发者能够编写具有良好可移植性的多媒体应用程序。
  2. 多媒体处理管道:OpenMAX IL提供了一种灵活的方式来构建和管理多媒体处理管道,使开发者能够将各种处理单元(例如解码器、编码器、滤镜等)组合起来以实现复杂的多媒体处理任务。
  3. 硬件加速:OpenMAX IL支持利用硬件加速功能来提高多媒体处理的性能和效率,包括使用GPU进行图像处理和使用DSP进行音频处理等。
  4. 低延迟处理:OpenMAX IL旨在实现低延迟的多媒体数据处理,使其适用于实时音视频应用程序和交互式多媒体应用程序。
  5. 灵活的配置和控制:OpenMAX IL提供了丰富的配置选项和控制接口,使开发者能够根据应用程序的需求进行定制和优化。

尽管OpenMAX IL提供了强大的功能和灵活性,但它也有一些限制和挑战,例如在不同平台上的实现可能存在差异,开发者需要考虑不同硬件和驱动程序的兼容性,并且对于初学者来说学习曲线可能较陡峭。然而,对于需要高性能多媒体处理的应用程序来说,OpenMAX IL仍然是一个重要的选择。

参考文档:The OpenMAX Integration Layer Specification (khronos.org)

5.2.3 OpenMAX DL开发层

OpenMAX DL(Development Layer)是OpenMAX标准的一部分,它提供了一组用于硬件加速的低级图像和信号处理功能的API。OpenMAX DL的目标是为多媒体应用程序提供一种标准化的接口,使它们能够利用硬件加速器来执行各种图像和信号处理任务,例如图像解码、编码、滤波、变换等。

OpenMAX DL的主要特点和功能包括:

  1. 硬件加速:OpenMAX DL旨在利用硬件加速器来执行图像和信号处理任务,以提高处理速度和效率。
  2. 低级API:OpenMAX DL提供了一组低级的图像和信号处理函数,开发者可以使用这些函数来执行各种处理任务,如图像解码、编码、滤波、变换等。
  3. 跨平台兼容性:OpenMAX DL被设计为跨不同硬件平台和操作系统的标准接口,使开发者能够编写具有良好可移植性的多媒体应用程序。
  4. 灵活性和定制性:OpenMAX DL提供了丰富的功能和配置选项,使开发者能够根据应用程序的需求进行定制和优化。
  5. 高性能:通过利用硬件加速器,OpenMAX DL能够实现高性能的图像和信号处理,适用于对处理速度要求较高的多媒体应用程序。

尽管OpenMAX DL提供了一种强大的图像和信号处理API,但它也有一些限制和挑战,例如在不同平台上的实现可能存在差异,开发者需要考虑不同硬件和驱动程序的兼容性,并且对于初学者来说学习曲线可能较陡峭。然而,对于需要高性能图像和信号处理的应用程序来说,OpenMAX DL仍然是一个重要的选择。

参考文档:omx_dl_v1_0_2 (khronos.org)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/893723.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.NET MAUI进行UDP通信(二)

上篇文章有写过一个简单的demo&#xff0c;本次对项目进行进一步的扩展&#xff0c;添加tabbar功能。 1.修改AppShell.xaml文件&#xff0c;如下所示&#xff1a; <?xml version"1.0" encoding"UTF-8" ?> <Shellx:Class"mauiDemo.AppShel…

计算机网络之链路层

本文章目录结构出自于《王道计算机考研 计算机网络_哔哩哔哩_bilibili》 02 数据链路层 在网上看到其他人做了详细的笔记&#xff0c;就不再多余写了&#xff0c;直接参考着学习吧。 1 详解数据链路层-数据链路层的功能【王道计算机网络笔记】_wx63088f6683f8f的技术博客_51C…

YOLOv11改进,YOLOv11检测头融合DSConv(动态蛇形卷积),并添加小目标检测层(四头检测),适合目标检测、分割等任务

前言 精确分割拓扑管状结构例如血管和道路,对各个领域至关重要,可确保下游任务的准确性和效率。然而,许多因素使任务变得复杂,包括细小脆弱的局部结构和复杂多变的全局形态。在这项工作中,注意到管状结构的特殊特征,并利用这一知识来引导 DSCNet 在三个阶段同时增强感知…

Flutter android debug 编译报错问题。插件编译报错

下面相关内容 都以 Mac 电脑为例子。 一、问题 起因&#xff1a;&#xff08;更新 Android studio 2024.2.2.13、 Flutter SDK 3.27.2&#xff09; 最近 2025年 1 月 左右&#xff0c;我更新了 Android studio 和 Flutter SDK 再运行就会出现下面的问题。当然 下面的提示只是其…

扣子平台音频功能:让声音也能“智能”起来

在数字化时代&#xff0c;音频内容的重要性不言而喻。无论是在线课程、有声读物&#xff0c;还是各种多媒体应用&#xff0c;音频都是传递信息、增强体验的关键元素。扣子平台的音频功能&#xff0c;为开发者和内容创作者提供了一个强大而灵活的工具&#xff0c;让音频的使用和…

RubyFPV开源代码之系统简介

RubyFPV开源代码之系统简介 1. 源由2. 工程架构3. 特性介绍&#xff08;软件&#xff09;3.1 特性亮点3.2 数字优势3.3 使用功能 4. DEMO推荐&#xff08;硬件&#xff09;4.1 天空端4.2 地面端4.3 按键硬件Raspberry PiRadxa 3W/E/C 5. 软件设计6. 参考资料 1. 源由 RubyFPV以…

将 OneLake 数据索引到 Elasticsearch - 第二部分

作者&#xff1a;来自 Elastic Gustavo Llermaly 及 Jeffrey Rengifo 本文分为两部分&#xff0c;第二部分介绍如何使用自定义连接器将 OneLake 数据索引并搜索到 Elastic 中。 在本文中&#xff0c;我们将利用第 1 部分中学到的知识来创建 OneLake 自定义 Elasticsearch 连接器…

PMP–一、二、三模–分类–14.敏捷

文章目录 敏捷中的角色职责与3个工件--题干关键词角色职责3个工件 高频考点分析&#xff08;一、过程&#xff1b;二、人员&#xff09;一、过程&#xff1a;1.1 变更管理&#xff1a;1.1.1 瀑布型变更&#xff08;一次交付、尽量限制、确定性需求 &#xff1e;风险储备&#x…

Vue2下篇

插槽&#xff1a; 基本插槽&#xff1a; 普通插槽&#xff1a;父组件向子组件传递静态内容。基本插槽只能有一个slot标签&#xff0c;因为这个是默认的位置&#xff0c;所以只能有一个 <!-- ParentComponent.vue --> <template> <ChildComponent> <p>…

【科研建模】Pycaret自动机器学习框架使用流程及多分类项目实战案例详解

Pycaret自动机器学习框架使用流程及项目实战案例详解 1 Pycaret介绍2 安装及版本需求3 Pycaret自动机器学习框架使用流程3.1 Setup3.2 Compare Models3.3 Analyze Model3.4 Prediction3.5 Save Model4 多分类项目实战案例详解4.1 ✅ Setup4.2 ✅ Compare Models4.3 ✅ Experime…

Linux学习笔记——网络管理命令

一、网络基础知识 TCP/IP四层模型 以太网地址&#xff08;MAC地址&#xff09;&#xff1a; 段16进制数据 IP地址&#xff1a; 子网掩码&#xff1a; 二、接口管命令 ip命令&#xff1a;字符终端&#xff0c;立即生效&#xff0c;重启配置会丢失 nmcli命令&#xff1a;字符…

手撕Diffusion系列 - 第九期 - 改进为Stable Diffusion(原理介绍)

手撕Diffusion系列 - 第九期 - 改进为Stable Diffusion&#xff08;原理介绍&#xff09; 目录 手撕Diffusion系列 - 第九期 - 改进为Stable Diffusion&#xff08;原理介绍&#xff09;DDPM 原理图Stable Diffusion 原理Stable Diffusion的原理解释Stable Diffusion 和 Diffus…

JAVAweb学习日记(八) 请数据库模型MySQL

一、MySQL数据模型 二、SQL语言 三、DDL 详细见SQL学习日记内容 四、DQL-条件查询 五、DQL-分组查询 聚合函数&#xff1a; 分组查询&#xff1a; 六、DQL-分组查询 七、分页查询 八、多表设计-一对多&一对一&多对多 一对多-外键&#xff1a; 一对一&#xff1a; 多…

微信小程序1.1 微信小程序介绍

1.1 微信小程序介绍 内容提要 1.1 什么是微信小程序 1.2 微信小程序的功能 1.3 微信小程序使用场景 1.4 微信小程序能取代App吗 1.5 微信小程序的发展历程 1.6微信小程序带来的机会

音频入门(一):音频基础知识与分类的基本流程

音频信号和图像信号在做分类时的基本流程类似&#xff0c;区别就在于预处理部分存在不同&#xff1b;本文简单介绍了下音频处理的方法&#xff0c;以及利用深度学习模型分类的基本流程。 目录 一、音频信号简介 1. 什么是音频信号 2. 音频信号长什么样 二、音频的深度学习分…

Midjourney中的强变化、弱变化、局部重绘的本质区别以及其有多逆天的功能

开篇 Midjourney中有3个图片“微调”&#xff0c;它们分别为&#xff1a; 强变化&#xff1b;弱变化&#xff1b;局部重绘&#xff1b; 在Discord里分别都是用命令唤出的&#xff0c;但如今随着AI技术的发达在类似AI可人一类的纯图形化界面中&#xff0c;我们发觉这样的逆天…

【Linux】命令为桥,存在为岸,穿越虚拟世界的哲学之道

文章目录 Linux基础入门&#xff1a;探索操作系统的内核与命令一、Linux背景与发展历史1.1 Linux的起源与发展1.2 Linux与Windows的对比 二、Linux的常用命令2.1 ls命令 - "List"&#xff08;列出文件)2.2 pwd命令 - "Print Working Directory"&#xff08…

[护网杯 2018]easy_tornado1

题目 、 依次点击文件查看 /flag.txt flag in /fllllllllllllag /welcome.txt render /hints.txt md5(cookie_secretmd5(filename)) tornado模板注入 报cookie /error?msg{{handler.settings}} cookie_secret: 6647062b-e68d-4406-90d3-06e307fa955c} 使用python脚本…

STM32+W5500+以太网应用开发+003_TCP服务器添加OLED(u8g2)显示状态

STM32W5500以太网应用开发003_TCP服务器添加OLED&#xff08;u8g2&#xff09;显示状态 实验效果3-TCP服务器OLED1 拷贝显示驱动代码1.1 拷贝源代码1.2 将源代码添加到工程1.3 修改代码优化等级1.4 添加头文件路径1.5 修改STM32CubeMX工程 2 修改源代码2.1 添加头文件2.2 main函…

基于微信小程序的英语学习交流平台设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…