200字
用 PyQt5 打造《GIF转MP4》桌面小工具
2025-11-25
2025-11-25

image-HejN.png

用 PyQt5 打造《GIF转MP4》桌面小工具

作者:小庄-Python办公

背景

很多办公/社媒场景会收到 GIF 动图,但在演示或视频平台上更偏好 MP4。MP4 体积更小、兼容性更好、可快进/暂停。于是做了一个简单好用的桌面工具:拖拽/多选 GIF,一键转 MP4。

Github源码: 批量GIF动态图转MP4
Github源码: 批量GIF动态图转MP4
Github源码: 批量GIF动态图转MP4

技术选型

  • 界面:PyQt5(稳定、社区成熟、Windows 体验好)
  • 转码:ffmpeg(业界标准,参数灵活)
  • 平台:Windows 为主;其他系统可用,路径与可执行名略有差异

设计要点

  • 拖拽与多选:列表控件接收文件/文件夹 URL,递归识别 .gif,自动去重
  • 路径输入:提供 ffmpeg路径 输入框与文件浏览按钮,留空走系统 PATH
  • 后台线程:QThread 顺序执行,界面不冻结;状态事件回传到文本输出区
  • 友好参数:
    • -pix_fmt yuv420p 提升播放器兼容性
    • scale=trunc(iw/2)*2:trunc(ih/2)*2 保证宽高为偶数,避免编码失败
    • -movflags faststart 优化网络首帧加载

关键流程

  1. 用户添加 GIF(拖拽/选择);列表仅保留有效 .gif
  2. 获取 ffmpeg 路径(空→ffmpeg;目录→拼接 ffmpeg.exe;文件→直接使用)
  3. 可用性检测:运行 ffmpeg -version 判断是否可执行
  4. 启动线程,逐个执行转码命令,输出 同名.mp4
  5. 实时状态:开始、成功、失败/异常;完成后弹窗统计

使用步骤

  1. 安装依赖:pip install PyQt5
  2. 安装 ffmpeg,并在“ffmpeg路径”中选择 ffmpeg.exe 或将其加入 PATH
  3. 运行:python gif_to_mp4_gui.py
  4. 拖拽或选择 GIF,点击“转换”

异常与鲁棒性

  • 重复文件忽略、非 GIF 忽略、路径不存在忽略
  • ffmpeg 不可用时明确提示用户检查路径/环境
  • 命令失败与异常分开统计,便于定位问题

可扩展方向

  • 并行转换与队列优先级
  • 进度条/剩余时间、取消任务
  • 输出目录选择、文件重命名策略
  • 可调视频参数:码率、帧率、分辨率、H.264/H.265 选择
  • 跨平台适配(Linux/Mac 路径)与一键打包(PyInstaller)

结语

这个工具目标是“够用且简单”,满足日常办公场景的 GIF→MP4 转换。如果你有更多需求(比如参数面板、批量日志、导出报告等),欢迎继续交流与完善。

image-giWK.png

用 PyQt5 打造《GIF转MP4》桌面小工具
作者
一晌小贪欢
发表于
2025-11-25
License
CC BY-NC-SA 4.0

评论