news 2026/5/10 0:10:35

FFmpeg视频批量裁剪工具:自动化处理横竖屏转换与区域提取

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
FFmpeg视频批量裁剪工具:自动化处理横竖屏转换与区域提取

1. 项目概述与核心价值

最近在整理一批视频素材时,遇到了一个挺典型的场景:我需要把一段16:9的横屏视频,快速裁剪成9:16的竖屏版本,用于短视频平台。手动用桌面软件打开、设置裁剪区域、导出,一两个视频还行,但面对几十上百个文件,这效率就太低了。就在我琢磨着是不是要写个脚本时,在GitHub上发现了chemistwang/ffmpeg-video-cropper这个项目。它本质上是一个基于FFmpeg的命令行工具,专门用来批量、自动化地裁剪视频。对于需要处理大量视频、追求效率的开发者、内容创作者或者运维人员来说,这玩意儿就像一把精准的“视频手术刀”。

这个项目的核心价值,在于它把FFmpeg强大的视频处理能力,封装成了一个更专注、更易用的单一功能工具。FFmpeg本身功能庞杂,命令行参数繁多,对于只想做裁剪的用户来说,学习成本不低。而这个裁剪器,通过预设一些常见的裁剪模式(如从横屏到竖屏、从中心裁剪指定区域等)和简单的参数,让你用一行命令就能完成批量操作。它解决的痛点非常明确:批量、自动化、可脚本化地执行视频裁剪任务,把人力从重复的机械操作中解放出来,特别适合媒体处理流水线、社交媒体内容制作、监控视频片段提取等场景。

2. 工具核心设计与思路拆解

2.1 为什么选择FFmpeg作为底层引擎?

这个项目的基石是FFmpeg,这是一个几乎成为行业标准的开源音视频处理库。选择它,是经过充分考量的。首先,格式兼容性无敌。无论是MP4、MOV、AVI、MKV,还是编码格式H.264、H.265、VP9,FFmpeg都能很好地支持,这意味着这个裁剪器能处理你手头几乎任何来源的视频文件。其次,处理稳定可靠。FFmpeg经过多年发展和海量应用验证,其编解码和滤镜处理的稳定性和准确性是毋庸置疑的,这保证了裁剪操作的质量。最后,纯命令行操作,天生就适合自动化和集成到其他脚本或系统中,没有图形界面带来的环境依赖和交互瓶颈。

项目作者chemistwang没有重复造轮子,而是站在FFmpeg这个“巨人”的肩膀上,专注于解决“裁剪”这一个特定问题,这种思路非常务实。他做的,是设计一个更友好的“用户界面”(命令行参数)和“工作流程”(批量处理),来调用FFmpeg的crop滤镜。

2.2 核心工作流程与参数设计逻辑

这个裁剪器的工作流程非常清晰:输入一批视频文件,指定裁剪规则,然后并行或串行地输出裁剪后的新文件。它的参数设计也体现了实用主义:

  1. 输入/输出路径:支持指定单个文件、包含视频的目录,甚至支持通配符匹配,这为批量处理提供了基础。
  2. 裁剪区域定义:这是核心。通常有两种方式:
    • 指定像素坐标:直接告诉工具“从左上角(100,200)的位置开始,裁剪一个宽720像素、高1280像素的矩形区域”。这种方式最精确,适用于已知固定裁剪区域的情况,比如从特定屏幕录制中截取一部分。
    • 指定比例与锚点:例如,“将视频从中心裁剪为9:16的比例”。工具会自动计算原视频尺寸,然后根据目标比例和锚点(如中心、左上角)计算出实际的像素坐标。这种方式在适配社交媒体比例(如抖音竖屏、YouTube Shorts)时特别有用,你不需要关心原视频的具体分辨率。
  3. 输出配置:可以指定输出目录、输出文件名模式(如添加后缀_cropped),以及关键的编码参数。这里有个重要的设计考量:是进行“流拷贝”还是“重新编码”?
    • 流拷贝:如果裁剪边界刚好落在关键帧上,且你不改变编码格式,FFmpeg可以只复制视频流数据而不重新编码,速度极快,几乎是秒级完成,且质量无损。项目通常会优先尝试这种方式。
    • 重新编码:当裁剪边界不在关键帧上,或者你需要改变编码格式、码率时,就必须重新编码。这会消耗大量CPU资源,速度慢,但可以确保裁剪精度和输出质量。工具需要提供选项让用户根据需求权衡。

这个设计逻辑,使得工具既满足了简单场景的快捷操作(一句命令搞定比例裁剪),又为复杂场景保留了精细控制的可能性(自定义坐标和编码参数)。

3. 环境准备与工具部署详解

3.1 系统依赖与FFmpeg安装

这个工具本身可能是一个Shell脚本(如Bash)、Python脚本或其他包装脚本,但其唯一的核心依赖就是FFmpeg。因此,部署的第一步是确保你的系统上安装了正确版本的FFmpeg。

对于Linux/macOS用户:通常可以通过包管理器轻松安装。在Ubuntu/Debian上,使用sudo apt update && sudo apt install ffmpeg -y。在macOS上,使用Homebrew:brew install ffmpeg。安装后,在终端输入ffmpeg -version来验证安装是否成功,并查看支持的编解码器。

对于Windows用户:推荐从FFmpeg官网下载编译好的静态版本,解压到一个目录(例如C:\ffmpeg),然后将该目录的bin文件夹路径(如C:\ffmpeg\bin)添加到系统的环境变量PATH中。这样,你就可以在任意位置的命令行或PowerShell中调用ffmpeg命令了。

注意:有些Linux发行版自带的FFmpeg版本可能较老,或者缺少某些编码器(如libx264)。如果你需要处理H.264编码,请确保你的FFmpeg是完整编译的,或者通过官方渠道安装较新版本。一个简单的测试是运行ffmpeg -codecs | grep h264,查看是否有libx264编码器。

3.2 获取与配置视频裁剪器

chemistwang/ffmpeg-video-cropper项目通常托管在GitHub上。部署方式取决于它具体的实现形式。

如果它是一个独立的可执行脚本:

# 克隆仓库或直接下载脚本 git clone https://github.com/chemistwang/ffmpeg-video-cropper.git cd ffmpeg-video-cropper # 赋予脚本执行权限(如果是Shell/Python脚本) chmod +x video_cropper.sh # 或 video_cropper.py # 检查脚本是否需要其他依赖,例如Python环境 # 如果是Python脚本,可能需要:pip install -r requirements.txt

如果它是一个需要安装的包(例如Python包):

# 通过pip从GitHub直接安装 pip install git+https://github.com/chemistwang/ffmpeg-video-cropper.git # 或者克隆后本地安装 git clone https://github.com/chemistwang/ffmpeg-video-cropper.git cd ffmpeg-video-cropper pip install .

安装或下载完成后,最好运行一下工具的帮助命令,例如./video_cropper.sh -hvideo_cropper --help,来熟悉其参数列表。这能让你快速了解它支持哪些裁剪模式、输入输出选项和编码参数。

4. 核心功能实操与参数详解

4.1 基础裁剪:按固定比例裁剪

这是最常见的需求,比如将横屏视频(16:9)转换为竖屏视频(9:16)。假设工具名为vcrop,一个典型的命令可能如下:

vcrop -i input.mp4 -o output.mp4 --aspect 9:16 --anchor center
  • -i input.mp4: 指定输入文件。
  • -o output.mp4: 指定输出文件。
  • --aspect 9:16: 这是核心参数,定义目标宽高比。工具会计算如何从原视频中切出这个比例的区域。
  • --anchor center: 指定锚点为中心。这意味着裁剪框会以视频画面中心为基准向四周扩展,直到满足9:16的比例。其他常见锚点可能是top-left(左上角)、top(顶部居中)、bottom-right(右下角)等,用于控制裁剪区域的定位。

背后的计算:假设原视频是1920x1080(16:9)。工具要计算一个9:16的裁剪框。首先,确定以哪条边为基准。如果以高度为基准,裁剪宽度应为1080 * (9/16) = 607.5(通常取整为608)。如果以宽度为基准,裁剪高度应为1920 * (16/9) ≈ 3413.33,这超过了原高度1080,不可行。因此,工具会智能地选择以高度为基准,计算出裁剪尺寸为608x1080。然后,根据--anchor center,从原画面水平方向的中心点(1920/2=960)向左右各延伸304像素(608/2),得到裁剪区域为(960-304, 0)(656, 0)(656+608, 1080)。最终,你得到了一个608x1080的竖屏视频,内容保留了原视频的核心中部区域。

4.2 高级裁剪:指定精确像素区域

当你知道需要裁剪的确切位置时,可以使用像素坐标模式。这在处理游戏录像(只裁剪游戏UI区域)、监控视频(固定区域移动侦测)或移除视频边缘黑边/水印时非常有用。

vcrop -i input.mov -o cropped.mov --crop "width=1280:height=720:x=100:y=200"
  • --crop参数直接传递了FFmpeg crop滤镜的过滤器字符串。
  • width=1280:height=720: 定义裁剪区域的宽度和高度。
  • x=100:y=200: 定义裁剪区域左上角相对于原视频左上角的坐标(以像素为单位)。

这个命令会从原视频的(100, 200)坐标点开始,截取一块1280x720大小的矩形区域。这种方式给予了你完全的控制权,但前提是你必须清楚需要裁剪的精确位置和尺寸。你可以通过视频播放器或编辑软件先预览并确定这些坐标。

4.3 批量处理与输出管理

工具的强大之处在于批量处理。假设你有一个文件夹videos/里面全是需要处理的MP4文件。

vcrop -i videos/*.mp4 -o outputs/ --aspect 1:1 --anchor center --suffix "_square"
  • -i videos/*.mp4: 使用通配符匹配videos目录下所有MP4文件。
  • -o outputs/: 指定一个输出目录。工具会自动为每个输入文件在输出目录下生成对应的文件。
  • --suffix "_square": 在输出文件名后添加后缀。例如,input.mp4会变成input_square.mp4。这避免了覆盖原文件,也便于区分。

工具内部可能会串行处理每个文件,也可能利用并行处理来加速(如果实现时考虑了这一点)。对于大量文件,并行处理能显著节省时间。你需要查看工具的文档或帮助信息,看是否支持--jobs-j参数来指定并行任务数。

输出编码控制: 为了平衡速度和质量,工具通常会提供编码参数。一个完整的例子可能像这样:

vcrop -i input.mp4 -o output_hq.mp4 --aspect 9:16 --anchor center --codec libx264 --crf 23 --preset medium
  • --codec libx264: 指定视频编码器为H.264。
  • --crf 23: 恒定速率因子,控制视频质量。范围通常是0-51,值越小质量越高、文件越大。23是公认的“视觉无损”和文件大小的良好平衡点。
  • --preset medium: 编码速度与压缩率的预设。从快到慢有:ultrafast,superfast,veryfast,faster,fast,medium,slow,slower,veryslow。越慢的预设压缩率越高(同质量下文件更小),但编码时间越长。medium是一个不错的默认值。

如果工具检测到可以流拷贝,它可能会忽略这些编码参数以极速完成。你可以通过强制重新编码的参数(如--re-encode)来确保使用你指定的高质量编码设置。

5. 实战场景与脚本化集成

5.1 场景一:社交媒体内容批量适配

假设你是一个内容创作者,每周需要将多个横屏的vlog视频裁剪成竖屏(9:16)和方形(1:1)版本,分别发布到抖音和Instagram。

你可以编写一个Shell脚本batch_crop_for_social.sh

#!/bin/bash INPUT_DIR="./weekly_vlogs" OUTPUT_DIR="./social_ready" # 创建输出子目录 mkdir -p "$OUTPUT_DIR/vertical" mkdir -p "$OUTPUT_DIR/square" # 处理为竖屏 (9:16) for video in "$INPUT_DIR"/*.mp4; do if [ -f "$video" ]; then filename=$(basename "$video" .mp4) vcrop -i "$video" -o "$OUTPUT_DIR/vertical/${filename}_9x16.mp4" --aspect 9:16 --anchor center --preset fast fi done # 处理为方形 (1:1) for video in "$INPUT_DIR"/*.mp4; do if [ -f "$video" ]; then filename=$(basename "$video" .mp4) vcrop -i "$video" -o "$OUTPUT_DIR/square/${filename}_1x1.mp4" --aspect 1:1 --anchor center --preset fast fi done echo "批量裁剪完成!文件已保存至 $OUTPUT_DIR"

这个脚本自动化了整个流程。你只需要把每周的视频扔进weekly_vlogs文件夹,运行脚本,就能得到整理好的、适配不同平台的视频。--preset fast在保证可接受质量的前提下,加快了处理速度,适合内容制作的快速迭代。

5.2 场景二:监控视频固定区域提取

假设有一个固定视角的监控摄像头,你只关心画面中大门区域(假设坐标区域为 x=400, y=100, width=800, height=600)的活动,需要每天夜间自动提取该区域的视频片段进行分析。

你可以结合定时任务(Cron)和裁剪工具。首先,用一个脚本extract_door_region.sh来处理当天的视频:

#!/bin/bash # 假设监控视频按日期命名,如 surveillance_20231027.mp4 TODAY=$(date +%Y%m%d) INPUT_VIDEO="/mnt/surveillance/surveillance_${TODAY}.mp4" OUTPUT_VIDEO="/mnt/processed/door_${TODAY}.mp4" # 检查输入文件是否存在 if [ -f "$INPUT_VIDEO" ]; then # 精确裁剪大门区域 vcrop -i "$INPUT_VIDEO" -o "$OUTPUT_VIDEO" --crop "width=800:height=600:x=400:y=100" --codec libx264 -crf 28 -preset ultrafast # 使用较高的CRF和最快的预设,因为监控视频对压缩不敏感,速度优先。 echo "$(date): 成功提取 ${TODAY} 大门区域视频。" >> /var/log/video_crop.log else echo "$(date): 错误:未找到输入文件 ${INPUT_VIDEO}" >> /var/log/video_crop.log fi

然后,在Linux系统的crontab中添加一条定时任务,每天凌晨2点执行这个脚本:

0 2 * * * /path/to/extract_door_region.sh

这样,系统就会每天自动完成视频区域裁剪,生成只包含关键区域的视频文件,大大减少了后续人工查看或分析的数据量。

5.3 集成到更复杂的媒体处理流水线

在专业的媒体处理系统中,这个裁剪工具可以成为一个组件。例如,一个用Python编写的自动化流水线:

import subprocess import os from pathlib import Path def process_video_pipeline(input_path, output_dir, config): """ 视频处理流水线示例 config: 字典,包含裁剪参数、编码参数等 """ # 步骤1: 视频裁剪 cropped_path = os.path.join(output_dir, "cropped_" + os.path.basename(input_path)) crop_cmd = [ "vcrop", "-i", input_path, "-o", cropped_path, "--aspect", config.get("aspect", "16:9"), "--anchor", config.get("anchor", "center"), "--crf", str(config.get("crf", 23)) ] # 执行裁剪命令 result = subprocess.run(crop_cmd, capture_output=True, text=True) if result.returncode != 0: print(f"裁剪失败: {result.stderr}") return None # 步骤2: (可选) 可以在这里添加其他处理,比如调用另一个工具添加水印、转码等 # watermarked_path = add_watermark(cropped_path, output_dir) # 步骤3: 返回最终文件路径 return cropped_path # 使用示例 config = {"aspect": "9:16", "anchor": "center", "crf": 25} final_video = process_video_pipeline("input_video.mp4", "./output", config)

通过子进程调用命令行工具,可以轻松地将ffmpeg-video-cropper集成到任何自动化脚本或应用中,作为视频预处理的关键一环。

6. 性能调优、常见问题与排查技巧

6.1 处理速度优化指南

视频处理通常是CPU密集型任务,处理速度至关重要。

  1. 优先尝试流拷贝:如果裁剪边界刚好在关键帧(I帧)上,且不改变编码格式,使用流拷贝模式(如果工具支持并自动判断)可以瞬间完成。你可以先用工具试处理一个文件,观察输出日志,看是否触发了流拷贝。
  2. 选择合适的编码预设:重新编码时,--preset参数对速度影响巨大。对于需要快速出片的场景(如社交媒体每日更新),使用veryfastfaster。对于最终成品存档,可以使用slow以获得更好的压缩率。不要盲目使用veryslow,除非你追求极限压缩且不介意等待。
  3. 利用硬件加速:如果工具支持,可以传递参数给底层的FFmpeg,使用硬件编码器。例如,对于支持Intel Quick Sync Video的CPU,可以尝试-c:v h264_qsv;对于NVIDIA GPU,可以尝试-c:v h264_nvenc。这能极大提升编码速度,但需要你的FFmpeg编译时包含了这些硬件编码器支持,并且输出质量可能与软件编码略有不同。
  4. 并行处理:如果工具本身不支持并行,对于大量文件,你可以自己用Shell脚本或Python的multiprocessing库实现并行。例如,使用GNU Parallel命令:
    find ./videos -name "*.mp4" | parallel -j 4 vcrop -i {} -o ./output/{} --aspect 1:1
    这个命令会同时处理4个视频(-j 4)。

6.2 输出质量与文件大小平衡

裁剪通常不应对画质造成损失,但重新编码会。

  1. 理解CRF值:CRF是H.264/265编码中控制质量的主要参数。一般建议:
    • 18-22: 接近无损,用于母带或高要求存档。
    • 23-28: 标准范围,在质量和文件大小间取得良好平衡,适用于大多数网络分发。
    • 30+: 低质量,文件小,适用于预览或对画质要求不高的场景。建议从23开始测试,如果觉得文件太大,尝试提高到25或26,观察画质是否可接受。
  2. 避免多次编码:视频每经过一次有损编码(重新编码),质量都会下降。应尽量规划好处理流程,争取一次编码完成所有操作(裁剪、缩放、添加水印等)。这个裁剪工具如果设计得好,可以在一次FFmpeg调用中完成裁剪和编码,避免中间文件带来的质量损失。
  3. 检查裁剪精度:有时指定像素裁剪后,发现输出视频的尺寸不是预期的,或者内容有轻微偏移。这通常是因为裁剪的宽度或高度不是编码器要求的偶数。大多数编码器要求视频的宽和高是偶数。FFmpeg的crop滤镜会自动调整。例如,你指定width=721,它可能会调整为width=720。这是正常行为。如果你需要精确控制,请确保指定的宽高是偶数。

6.3 常见错误与解决方案实录

在实际使用中,你可能会遇到以下问题:

问题现象可能原因解决方案
运行命令后报错:FFmpeg not foundCommand ‘ffmpeg’ not found系统未安装FFmpeg,或未正确添加到PATH环境变量。参考本文第3.1节,正确安装并配置FFmpeg。在终端直接运行ffmpeg -version测试。
错误:Invalid crop dimensions指定的裁剪区域超出了原视频的画面范围。例如,原视频宽1920,你指定x=1800, width=200,那么右边界就是2000,超出了1920。检查你的裁剪坐标和宽高设置。确保x + width <= 原视频宽度,且y + height <= 原视频高度。使用视频播放器或编辑软件确认坐标。
处理过程异常缓慢,CPU占用100%正在执行重新编码,且编码预设(preset)设置较慢(如slow),或者原视频分辨率很高。1. 确认是否必须重新编码。尝试调整裁剪位置到关键帧附近。2. 使用更快的preset,如fastmedium。3. 考虑使用硬件加速编码。
输出视频没有声音工具可能只处理了视频流,没有正确复制或编码音频流。检查工具的帮助文档,看是否有关于音频处理的参数(如-c:a copy来复制音频)。一个完整的FFmpeg裁剪命令应该包含对音频流的处理。你可能需要手动补充音频参数,或者确认工具是否默认包含。
批量处理时,中间某个文件失败导致脚本停止脚本没有做错误处理。在循环体内添加错误判断。例如在Shell脚本中,可以在命令后添加 `
输出文件体积异常大使用了很低的CRF值(如18),或者编码预设(preset)非常慢,导致压缩率不高。调整CRF到23-28的合理范围。对于不需要极高画质的网络视频,25-28通常足够。

一个我踩过的坑:曾经用脚本批量裁剪一批手机拍摄的竖屏视频(9:16)为方形(1:1),锚点设为center。结果发现有些视频的主体(人脸)被切掉了顶部或底部。原因是手机视频的实际存储分辨率可能是带黑边的。例如,一个2160x3840的视频,上下可能有黑边,实际画面区域可能只有2160x3600左右。如果工具直接按整个画面计算中心裁剪,就会切到黑边里的画面。解决方案:对于这类来源不确定的视频,先进行一步“去黑边”检测,或者使用更智能的裁剪方式(如基于内容识别的裁剪),或者先手动预览几个文件,确定一个安全的、通用的裁剪区域。对于自动化流程,输入视频的规范性非常重要。

7. 扩展思路与工具对比

7.1 除了裁剪,还能做什么?

ffmpeg-video-cropper专注于裁剪,但它的思路可以扩展到其他FFmpeg常见任务。你可以基于类似的架构,创建一系列“单功能武器”:

  • 视频缩放器:专注于批量调整视频分辨率。
  • 格式转换器:专注于批量转换视频容器或编码格式。
  • 静音检测与剪切器:专注于自动切除视频中的静音片段。
  • 帧提取器:专注于按间隔或时间点批量提取视频帧为图片。

这些工具都可以遵循同样的设计哲学:一个清晰的命令行接口、对批量处理的支持、合理的默认参数,以及底层调用FFmpeg的强大功能。这比让每个用户都去记忆复杂的FFmpeg原生命令要友好得多。

7.2 与图形界面工具及FFmpeg原生命令对比

特性ffmpeg-video-cropper(命令行工具)图形界面软件 (如HandBrake, 剪映)FFmpeg 原生命令
学习成本中等。需要学习命令行参数,但比FFmpeg原生命令简单。低。直观的可视化操作。高。参数繁多,语法复杂。
处理效率。易于脚本化、批量化、自动化,适合处理大量文件。低。通常需要手动一个个文件操作,或批量功能有限。。但需要自己编写复杂脚本。
精确控制高。可以通过参数精确控制裁剪区域、编码设置等。中。通常通过滑块和预览框控制,精度尚可。极高。可以控制每一个细节。
适用场景服务器端处理、媒体流水线、定期自动化任务、大量文件批量处理。个人偶尔编辑、需要精细预览和调整的创作。极客、开发者、需要实现高度定制化复杂处理的场景。
资源占用低。纯命令行,无GUI开销。高。需要运行完整的图形界面程序。低。

如何选择?

  • 如果你需要处理成百上千个视频,或者需要将视频处理集成到自动化系统(如网站上传后自动处理),那么ffmpeg-video-cropper这类命令行工具是你的最佳选择。
  • 如果你只是偶尔处理几个视频,并且对效果有直观预览的需求,那么图形界面软件更合适。
  • 如果你是一个开发者或高级用户,需要实现非常特殊或复杂的视频处理逻辑,那么直接学习并使用FFmpeg原生命令是必经之路。

chemistwang/ffmpeg-video-cropper的价值,正是在于它在易用性和强大功能之间找到了一个很好的平衡点,为特定场景下的效率提升提供了一个优雅的解决方案。下次当你面对一堆需要统一裁剪的视频时,不妨试试它,或许能为你节省下不少喝杯咖啡的时间。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/10 0:10:16

句法:语言的形式

原文&#xff1a;towardsdatascience.com/syntax-the-language-form-612257c4aa5f?sourcecollection_archive---------3-----------------------#2024-03-21 人类和计算机中的语言处理&#xff1a;第二部分 你怎么知道这是一个句子&#xff1f; https://medium.com/dusko_p?…

作者头像 李华
网站建设 2026/5/10 0:05:25

VSCode扩展离线下载器:原理、部署与内网开发实践

1. 项目概述&#xff1a;一个解决离线安装痛点的实用工具 作为一名长期在多种网络环境下工作的开发者&#xff0c;我深知离线安装开发工具的痛点。尤其是在内网开发、网络受限或需要批量部署开发环境的场景下&#xff0c;如何获取并安装VSCode扩展&#xff0c;常常是一个令人头…

作者头像 李华
网站建设 2026/5/10 0:05:22

cc-connect:本地AI代理与聊天平台的无缝连接方案

1. 项目概述&#xff1a;一个连接本地AI代理与聊天平台的桥梁 如果你和我一样&#xff0c;每天大部分时间都泡在飞书、钉钉、微信或者Telegram里&#xff0c;但同时又需要频繁地跟Claude Code、Cursor Agent这类本地运行的AI代理打交道&#xff0c;那你肯定也经历过那种“割裂…

作者头像 李华
网站建设 2026/5/10 0:05:21

5分钟让小爱音箱变身AI语音助手:MiGPT智能家居改造方案

5分钟让小爱音箱变身AI语音助手&#xff1a;MiGPT智能家居改造方案 【免费下载链接】mi-gpt &#x1f3e0; 将小爱音箱接入 ChatGPT 和豆包&#xff0c;改造成你的专属语音助手。 项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gpt 你是否曾对着家里的智能音箱叹…

作者头像 李华