Skip to content

Latest commit

 

History

History
131 lines (104 loc) · 4.11 KB

File metadata and controls

131 lines (104 loc) · 4.11 KB

FFmpeg UI 工具规格文档

1. 项目概述

  • 项目名称: FFmpeg UI
  • 项目类型: Qt6 C++ 桌面应用程序
  • 核心功能: 提供图形化界面调用 FFmpeg 进行音视频处理
  • 目标用户: 需要进行音视频转换、提取等操作的用户

2. UI/UX 规格

2.1 窗口布局

  • 窗口尺寸: 800 x 600 像素 (最小尺寸)
  • 窗口标题: FFmpeg UI
  • 主布局: 垂直布局,分区展示

2.2 界面分区

+--------------------------------------------------+
|                    标题栏                         |
+--------------------------------------------------+
|  [文件选择区]                                      |
|  输入文件: [_______选择文件_______] [浏览按钮]        |
|  输出目录: [_______选择目录_______] [浏览按钮]    |
|  输出名称: [____________输入名称____________]      |
+--------------------------------------------------+
|  [快速功能区]                                     |
|  [音视频转换 ▼] [提取音频] [提取视频] [播放测试]  |
+--------------------------------------------------+
|  [参数输入区]                                      |
|  FFmpeg参数: [_______________________________]      |
|  (此处显示快速功能自动填充的参数,用户可修改)    |
+--------------------------------------------------+
|  [执行区]                                         |
|  [执行]  [查看输出]  [取消]                        |
|  进度: [=============>                    ] 50%    |
+--------------------------------------------------+
|  [日志区]                                         |
|  (实时显示FFmpeg执行输出)                         |
+--------------------------------------------------+

2.3 各区域详细设计

文件选择区

  • 输入文件: LineEdit + PushButton, 点击浏览打开文件对话框
  • 输出目录: LineEdit + PushButton, 点击浏览打开目录对话框
  • 输出名称: LineEdit, 默认与输入文件同名(不含扩展名)

快速功能区

  • 转换下拉框: 常见格式转换
    • MP4 转 MP3
    • MP4 转 WAV
    • MP4 转 AVI
    • MP4 转 MKV
    • MP3 转 WAV
    • WAV 转 MP3
  • 提取音频: 从视频中提取音频流
  • 提取视频: 从视频中提取视频流(仅视频)
  • 截图: 从视频中截取指定时间的图片

参数输入区

  • 参数输入: TextEdit, 显示当前FFmpeg命令参数
  • 支持手动修改

执行区

  • 执行按钮: 开始执行FFmpeg
  • 查看输出按钮: 打开输出文件所在目录
  • 取消按钮: 取消正在执行的FFmpeg进程
  • 进度条: 显示执行进度 (通过FFmpeg输出解析)

日志区

  • 日志文本框: QTextEdit, 只读, 显示FFmpeg的标准输出和错误输出
  • 自动滚动到底部

2.4 视觉设计

  • 主题: 浅色主题
  • 字体: 系统默认字体
  • 按钮风格: 扁平化
  • 间距: 8px 边距, 4px 间距

3. 功能规格

3.1 核心功能

  1. 文件选择

    • 选择输入文件 (支持常见音视频格式: mp4, avi, mkv, mov, mp3, wav, flac, aac 等)
    • 选择输出目录
    • 输入自定义输出文件名
  2. 快速功能

    • 格式转换: 自动生成对应FFmpeg参数
    • 提取音频: -vn -acodec copy
    • 提取视频: -vcodec copy -an
    • 截图: -ss {time} -vframes 1
  3. 参数编辑

    • 自动填充快速功能生成的参数
    • 支持手动修改参数
  4. 执行FFmpeg

    • 使用 QProcess 执行 FFmpeg 命令
    • 实时捕获输出并显示
    • 解析进度信息
    • 支持取消执行

3.2 错��处理

  • 输入文件不存在: 提示错误
  • 输出目录不存在: 提示错误
  • FFmpeg未安装: 提示用户安装FFmpeg
  • 执行失败: 在日志区显示错误信息

4. 技术实现

  • Qt版本: Qt6
  • 构建系统: CMake
  • FFmpeg调用: QProcess
  • 编码: UTF-8

5. 验收标准

  1. 程序可以正常启动
  2. 可以选择输入文件和输出目录
  3. 快速功能可以正确生成FFmpeg参数
  4. 执行按钮可以启动FFmpeg并显示输出
  5. 进度条可以显示进度
  6. 取消按钮可以停止FFmpeg执行