项目简介
pyMediaTools 是一个基于 PySide6 构建的跨平台桌面应用,集成了强大的媒体批处理能力与先进的 AI 音视频创作工具。它利用 FFmpeg 进行核心媒体处理,并集成 ElevenLabs 和 Groq API 以实现高质量的语音合成与智能字幕生成,为视频创作者和开发者提供了一个功能全面的本地化工具箱。
核心功能
你是否曾为批量转换视频格式而烦恼?这个模块能高效处理大量视频与音频文件,支持多种转换模式,彻底解放你的双手:
- 格式转换:支持转换为 H.264 (MP4)、DNxHR (MOV)、ProRes 等常用专业格式。
- 音频提取:一键批量从视频中提取音频,并保存为 MP3 或 WAV 格式。
- 水印与处理:支持添加图片或文字水印、模糊背景、裁剪画面等常见操作。
- 多线程处理:充分利用多核 CPU 优势,支持并发转换多个文件,极大提升处理效率。
2. 智能语音合成 (ElevenLabs TTS)
厌倦了机械的电子合成音?该功能集成了 ElevenLabs 先进的语音合成模型,能够生成媲美真人、富有情感的声音:
- 文本转语音:支持选择多种预设声音模型,生成自然流畅、富有表现力的语音。
- 多语言支持:完美支持中英文等多语言混合文本的语音生成。
- 音效生成 (SFX):只需输入简单的文本描述(如“下雨声”、“人群欢呼”),即可生成逼真的环境音效,为你的视频增色不少。
3. 智能字幕与翻译
手动制作字幕耗时费力?借助 人工智能 能力,pyMediaTools 可以自动生成专业级的字幕文件:
- SRT 生成:自动识别语音内容,生成时间轴精准对齐的
.srt 格式字幕文件。
- 逐词字幕:除了整句字幕,还支持生成逐词 (Word-level) 高亮字幕,这种动态效果非常适合快节奏的短视频。
- 智能翻译:利用 Groq API(支持调用 Llama3、Mixtral 等大模型)的强大能力,自动将生成的字幕翻译为中文或其他语言。
4. 视频剪辑工程导出 (XML)
想让 AI 生成的字幕直接进入专业剪辑流程吗?这个功能实现了从工具到工作流的无缝对接:
- FCPXML 导出:一键导出包含所有字幕轨道和样式信息的
.fcpxml 工程文件,可直接导入 DaVinci Resolve 或 Final Cut Pro 等专业软件进行进一步编辑。
- 智能高亮:利用 LLM 分析文本的情感与重点,自动为关键词、关键句应用高亮样式,突出重点内容。
- 样式自定义:在导出前,你可以完全自定义字幕的外观:
- 原文字幕:独立设置字体、颜色、描边、阴影和背景。
- 翻译字幕:为翻译字幕设置另一套独立的样式。
- 高亮样式:单独设置高亮单词的颜色与效果(例如设置为醒目的黄色粗体)。
5. 下载管理(aria2c)
集成 aria2c,提供高效的多线程下载管理功能。
6. 视频下载(yt-dlp)
集成 yt-dlp,方便从支持的网站下载视频资源。
快速开始
系统要求
- 操作系统:Windows 10/11 或 macOS 12+
- Python:3.10 或更高版本(建议使用虚拟环境进行管理)
- 依赖工具:FFmpeg (需包含
ffmpeg 和 ffprobe 可执行文件)
- 依赖工具:aria2c (需包含
aria2c 可执行文件)
安装步骤
-
克隆项目
git clone https://github.com/your-repo/pyMediaTools.git
cd pyMediaTools
-
安装依赖
推荐使用虚拟环境以隔离依赖:
python -m venv venv
# Windows
venv\Scripts\activate
# macOS/Linux
source venv/bin/activate
pip install -r requirements.txt
-
配置 FFmpeg
将 ffmpeg 和 ffprobe 可执行文件放入项目根目录下的 bin 文件夹中(如果没有请新建)。
- Windows:
bin\ffmpeg.exe, bin\ffprobe.exe
- macOS:
bin/ffmpeg, bin/ffprobe
-
运行程序
python MediaTools.py
配置说明
API 设置
你需要在 GUI 界面或直接编辑 config.toml 配置文件来填入你的 API Key:
- ElevenLabs:用于语音合成功能,你需要在其官网申请 API Key。
- Groq:用于智能翻译和关键词提取功能,同样需要在其平台获取 API Key。
样式自定义
在应用程序的 “XML 样式设置” 标签页中,你可以通过直观的控件可视化地调整字幕的字体、颜色、位置等所有外观设置。所有修改都会实时预览并自动保存到本地配置中。
打包指南
如果你想将项目分享给他人,或者制作一个独立的可执行文件,本项目支持使用 Nuitka 进行打包。
macOS 打包
nuitka --standalone \
--macos-app-icon=Icon.icns \
--macos-create-app-bundle \
--output-dir=dist-nuitka \
--plugin-enable=pyside6 \
--include-qt-plugins=multimedia,platforms,styles,imageformats \
--include-package=pyMediaTools \
--include-data-dir=bin=bin \
--include-data-files=config.toml=config.toml \
--include-data-dir=assets=assets \
MediaTools.py
Windows 打包
nuitka --standalone --windows-console-mode=disable --output-dir=dist-nuitka --windows-icon-from-ico=MediaTools.ico --include-package=pyMediaTools --plugin-enable=pyside6 --include-qt-plugins=multimedia,platforms,styles,imageformats --include-data-files=bin\aria2c.exe=bin\aria2c.exe --include-data-files=bin\ffmpeg.exe=bin\ffmpeg.exe --include-data-files=bin\ffprobe.exe=bin\ffprobe.exe --include-data-files=config.toml=config.toml --include-data-dir=assets=assets MediaTools.py
项目地址
你可以访问该项目的 GitHub 仓库获取最新源码和详细文档:https://github.com/timcode-cmyk/pyMediaConvert/blob/main/README.md。欢迎开发者们前往 开源实战 板块交流更多关于桌面应用开发与 AI 工具集成的心得。
|