# FFmpeg-transcoding **Repository Path**: qrice/ffmpeg-transcoding ## Basic Information - **Project Name**: FFmpeg-transcoding - **Description**: 基于FFmpeg的音视频转码脚本 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-21 - **Last Updated**: 2026-09-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: Q, QRice ## README # 音视频转码工具集 本工具集包含多个实用的音视频处理脚本,可帮助您快速转换音乐格式、提取视频音频、压缩转码视频、制作 GIF 动图、编辑音乐信息和批量重命名文件。支持 macOS 和 Linux 系统。 ## 环境依赖 ### FFmpeg(必需) 本工具集的所有音视频处理功能均依赖 **FFmpeg**,使用前请务必先安装。 **macOS(使用 Homebrew):** ```bash brew install ffmpeg ``` > 如未安装 Homebrew,请先执行: > ```bash > /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" > ``` **Ubuntu/Debian:** ```bash sudo apt update sudo apt install ffmpeg ``` **CentOS/RHEL:** ```bash sudo yum install ffmpeg ``` **验证安装:** ```bash ffmpeg -version ``` 能正常输出版本信息即表示安装成功。 ### exiftool(可选) 以下功能需要 exiftool 支持: - 视频转码工具的「保留元数据」选项(保留拍摄日期、GPS 位置等) - 音乐信息编辑器(编辑 MP3/FLAC/M4A 等格式的标签) ```bash # macOS brew install exiftool # Ubuntu/Debian sudo apt install libimage-exiftool-perl ``` ## 工具列表 | 工具名称 | 功能描述 | |---------|---------| | [music_transcoding_to_mp3.sh] | 将无损音乐/视频转换为 MP3,支持音质与封面设置 | | [extract_audio.sh] | 从视频/音频文件中提取音频,支持多种输出格式 | | [video_transcoding_to_mp4] | 视频压缩转码为 MP4(支持多种模式与高度) | | [video_to_gif.sh] | 将视频批量转换为 GIF 动图 | | [images_to_gif.sh] | 将多张图片合成为 GIF 动图 | | [music_info_editor.sh] | 批量编辑音乐文件的信息(标题、歌手、专辑等) | | [rename_files.sh] | 文件批量重命名(Bash 版,7 种格式) | | [rename_files.py] | 文件批量重命名(Python 版,5 种格式) | --- ## 工具一:音乐转码工具 ### 功能说明 将无损音乐格式(或视频中的音频)转换为适合手机和网络播放的 MP3 格式,支持音质选择和封面图设置。 ### 支持的输入格式 - 音频:FLAC、WAV、APE、WavPack (`.wv`)、AIFF、ALAC、OGG、OPUS、DSF、DFF、TTA、TAK - 视频(自动提取音频转 MP3):MP4、M4V、MKV、AVI、MOV、WMV、FLV、WebM、MPG、MPEG ### 使用方法 ```bash # 使用当前目录 ./music_transcoding_to_mp3.sh # 指定目录 ./music_transcoding_to_mp3.sh /path/to/music/folder ``` 运行后在终端中依次选择音质等级和封面图模式。 ### 音质选择 | 选项 | 参数 | 比特率 | 适用场景 | |-----|------|--------|---------| | 1 | -q:a 0 | 约220-320 kbps | 接近无损音质 | | 2 | -q:a 2 | 约192-256 kbps | 推荐用于手机/网络播放 | | 3 | -q:a 4 | 约140-180 kbps | 适合网络流媒体 | | 4 | -q:a 6 | 约100-130 kbps | 适合移动数据环境 | ### 封面图设置 | 选项 | 说明 | |-----|------| | 1 | 保留原封面图(默认) | | 2 | 移除封面图,文件更小 | | 3 | 使用自定义封面图(输入图片路径或直接拖入图片) | ### 输出位置 转码后的 MP3 文件保存在输入目录下的 `mp3_output` 文件夹中。 --- ## 工具二:视频音频提取工具 ### 功能说明 从视频或音频文件中提取音频轨道,支持多种输出格式选择。 ### 支持的输入格式 - 视频:MP4、M4V、MKV、AVI、MOV、WMV、FLV、WebM、MPG、MPEG - 音频:M4A、MP3、FLAC、OGG、OPUS、WAV、AAC ### 使用方法 ```bash # 使用当前目录 ./extract_audio.sh # 指定目录 ./extract_audio.sh /path/to/video/folder ``` 运行后在终端中选择输出格式和音质。 ### 输出格式选择 | 选项 | 格式 | 参数 | 说明 | |-----|------|------|-----| | 1 | MP3 | -q:a 0 | 高品质,约220-320 kbps | | 2 | MP3 | -q:a 2 | 优质,约192-256 kbps | | 3 | MP3 | -q:a 4 | 中等品质,约140-180 kbps | | 4 | AAC (`.m4a`) | -b:a 256k | 高品质,适合苹果设备 | | 5 | WAV | 无损 | 无损音频格式 | ### 输出位置 提取的音频文件保存在输入目录下的 `audio_output` 文件夹中。 --- ## 工具三:视频转码工具 ### 功能说明 将视频文件压缩转码为 MP4 格式,支持多种压缩模式、高度选择和元数据保留。采用终端交互界面,支持彩色输出。 ### 主要特性 - ✅ **跨平台支持**:macOS 和 Linux 系统通用 - ✅ **终端交互**:在终端中输入数字选择选项 - ✅ **彩色输出**:清晰的彩色终端界面 - ✅ **高度选择**:支持 1080p/720p/480p/360p/原尺寸 - ✅ **自动保持比例**:缩放时自动保持原始宽高比 - ✅ **元数据保留**:可选保留拍摄日期、GPS 位置等信息(需 exiftool) - ✅ **日期前缀**:自动读取拍摄日期作为输出文件名前缀 ### 支持的输入格式 - MP4、MOV、M4V、MKV、AVI、WMV、FLV、WebM、MTS、3GP ### 使用方法 ```bash # 使用当前目录 ./video_transcoding_to_mp4.sh # 指定目录 ./video_transcoding_to_mp4.sh /path/to/video/folder ``` 运行后在终端中依次选择压缩模式、输出高度和元数据保留选项。 ### 压缩模式选择 | 选项 | 模式 | 编码器 | CRF | 音频比特率 | 适用场景 | |-----|------|--------|-----|-----------|---------| | 1 | 标准画质 H.264 | libx264 | 23 | 128k | 通用兼容首选 | | 2 | 更高画质 H.264 | libx264 | 20 | 192k | 收藏/原片 | | 3 | 小体积 H.264 | libx264 | 26 | 96k | 流量/微信分享 | | 4 | 超级缩容 H.265 | libx265 | 24 | 96k | 网盘/手机存档,体积最小 | ### 高度选择 | 选项 | 高度 | 说明 | |-----|------|------| | 1 | 1080p | 全高清,推荐使用 | | 2 | 720p | 高清,体积较小 | | 3 | 480p | 标清,适合手机流量 | | 4 | 360p | 小尺寸,适合分享 | | 5 | 保持原尺寸 | 仅转码不缩放 | ### 元数据保留选择 | 选项 | 说明 | |-----|------| | 1 | 保留元数据(拍摄日期、GPS 位置、设备信息等,需 exiftool) | | 2 | 不保留元数据(创建日期为转码日期,速度更快) | ### 输出位置 转码后的视频文件保存在输入目录下的对应文件夹中: - `qrice_标准H264_1080p` - `qrice_高画质H264_720p` - `qrice_小体积H264_原尺寸` 文件名格式:`{拍摄日期}_{原文件名}.mp4` ### 界面预览 ``` ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 请选择压缩模式: 1) 标准画质 H.264 (通用兼容首选) 2) 更高画质 H.264 (收藏/原片) 3) 小体积 H.264 (流量/微信分享) 4) 超级缩容 H.265 (网盘/手机存档,体积最小) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 请输入选项 [1-4]: 1 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 请选择输出视频高度: 1) 1080p (全高清,推荐) 2) 720p (高清,体积较小) 3) 480p (标清,适合手机流量) 4) 360p (小尺寸,适合分享) 5) 保持原尺寸 (仅转码不缩放) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 请输入选项 [1-5]: 1 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 视频转码工具 - 配置信息 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 处理目录:/Users/xxx/Videos 输出目录:/Users/xxx/Videos/qrice_标准H264_1080p 输出高度:1080p 日期前缀:2026-05-28 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 开始转码处理... [1] 正在处理:video.mp4 ✓ 转换成功 ``` --- ## 工具四:视频转GIF工具 ### 功能说明 将视频文件批量转换为 GIF 动图,使用优化的调色板算法,画质清晰。 ### 支持的输入格式 - MP4、MOV、M4V、MKV、AVI、WMV、FLV、WebM ### 使用方法 ```bash # 使用当前目录 ./video_to_gif.sh # 指定目录 ./video_to_gif.sh /path/to/video/folder ``` 运行后在终端中依次选择画质和循环设置。 ### 画质选择 | 选项 | 参数 | 说明 | |-----|------|------| | 1 | 320px 宽度,15 fps | 高画质,文件较大 | | 2 | 320px 宽度,10 fps | 平衡画质与文件大小 | | 3 | 240px 宽度,8 fps | 文件最小,适合预览 | | 4 | 自定义宽度和帧率 | 手动设置 | ### 循环设置 | 选项 | 说明 | |-----|------| | 1 | 无限循环(背景图、动态效果) | | 2 | 不循环(一次性播放) | | 3 | 指定循环次数(如 3 次) | ### 输出位置 转换后的 GIF 文件保存在输入目录下的 `gif_output` 文件夹中。 --- ## 工具五:图片转GIF工具 ### 功能说明 将目录中的多张图片合成为一个 GIF 动图。 ### 支持的输入格式 - JPG、JPEG、PNG、GIF、BMP、WebP ### 使用方法 ```bash # 使用当前目录 ./images_to_gif.sh # 指定目录 ./images_to_gif.sh /path/to/images/folder ``` 运行后在终端中依次选择动画速度、循环设置和输出尺寸。 ### 动画速度选择 | 选项 | 帧率 | 说明 | |-----|------|------| | 1 | 10 fps | 快速动画(表情、快速切换) | | 2 | 5 fps | 中速动画(幻灯片、图片展示) | | 3 | 2 fps | 慢速动画(长图浏览、慢放) | | 4 | 自定义 | 手动设置每帧间隔 | ### 输出尺寸选择 | 选项 | 说明 | |-----|------| | 1 | 保持原尺寸(使用最大图片尺寸作为画布) | | 2 | 固定宽度(等比例缩放) | | 3 | 固定高度(等比例缩放) | | 4 | 固定尺寸(强制缩放到指定宽高) | ### 输出位置 生成的 GIF 保存为输入目录下的 `output.gif`(如已存在则自动加时间戳命名)。 --- ## 工具六:音乐信息编辑器 ### 功能说明 批量编辑音乐文件的元数据信息,每个字段均可选择保留、移除或自定义。 ### 支持的输入格式 - exiftool 编辑:MP3、FLAC、M4A、OGG、OPUS(需安装 exiftool) - WAV:通过 macOS Finder 元数据方式编辑 ### 可编辑字段 标题、作者(歌手)、专辑、音乐类型、曲目编号、发行年份 ### 使用方法 ```bash # 使用当前目录 ./music_info_editor.sh # 指定目录 ./music_info_editor.sh /path/to/music/folder ``` 运行后在终端中依次为各字段选择「保留 / 移除 / 自定义」。 --- ## 工具七:文件批量重命名工具 ### 功能说明 批量重命名当前目录下的文件,支持按编号选择文件(如 1,3,5),可直接回车全选。 ### 支持的重命名格式 | 选项 | 格式 | 示例 | |-----|------|------| | 1 | 当前日期 + 源文件名 | `20260921_photo.jpg` | | 2 | 文件创建日期 + 源文件名 | `20250101_photo.jpg` | | 3 | 指定前缀 + 源文件名 | `旅行_photo.jpg` | | 4 | 原文件名 + 指定后缀 | `photo_备份.jpg` | | 5 | 替换源文件名内的字符串 | `photo.jpg` → `picture.jpg` | | 6 | 名称 + 索引(仅 Bash 版) | `照片001.jpg`、`照片002.jpg` | | 7 | 索引 + 名称(仅 Bash 版) | `001照片.jpg`、`002照片.jpg` | ### 使用方法 ```bash # Bash 版(7 种格式) ./rename_files.sh # Python 版(5 种格式,前 5 项与 Bash 版相同) python3 rename_files.py ``` > Bash 版直接重命名当前目录下的文件;Python 版会交互式选择处理目录。 --- ## 首次使用提示 ### 手动赋予权限 如果脚本无法运行,请先赋予执行权限: ```bash chmod +x music_transcoding_to_mp3.sh chmod +x extract_audio.sh chmod +x video_transcoding_to_mp4.sh chmod +x video_to_gif.sh chmod +x images_to_gif.sh chmod +x music_info_editor.sh chmod +x rename_files.sh ``` --- ## 系统要求 ### 支持的系统 - ✅ macOS (10.14 及以上版本) - ✅ Linux (支持 bash 和 ffmpeg) - ❌ Windows (不支持) ### 必需软件 - **ffmpeg**:音视频处理核心工具(见文档开头的「环境依赖」章节) ### 可选软件 - **exiftool**:视频元数据保留、音乐信息编辑功能需要 - **python3**:仅使用 Python 版重命名工具时需要 --- ## 注意事项 1. 脚本会自动跳过已存在的输出文件,避免重复处理 2. 建议将待处理的文件或文件夹放在工具所在目录,方便操作 3. 处理大文件时可能需要较长时间,请耐心等待 4. Windows 用户可以通过安装 WSL (Windows Subsystem for Linux) 来使用这些工具