mcpField
P
python-ffmpeg

python-ffmpeg

github.com/josiahsiegel创意与媒体5986 次安装19 周前更新
代码仓库

关于 python-ffmpeg

面向使用 Python 处理媒体的开发者,提供 FFmpeg 编码、滤镜、音频、探测和流处理的实践指导。内容按集成方式与任务拆分,并涵盖生产环境故障排查。

主要功能

  1. 01比较 ffmpeg-python、subprocess 与 PyAV
  2. 02处理编码和视频滤镜
  3. 03执行音频处理与媒体探测
  4. 04支持流处理和缩略图生成
  5. 05排查生产环境问题

适用场景

  1. 01通过 Python 批量转码媒体
  2. 02排查滤镜处理后音频丢失
  3. 03为大型媒体处理降低内存占用
  4. 04选择硬件编码路径

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/josiahsiegel/claude-plugin-marketplace --skill python-ffmpeg

安装后在 Claude Code 中输入/python-ffmpeg确认已加载。

附带文件references/ffmpeg-advanced-patterns.mdreferences/ffmpeg-complete-recipes.md

详细介绍

Python FFmpeg 技能

将此技能用于 Python 驱动的 FFmpeg 工作:编码、滤镜、音频处理、元数据探测、流式传输、缩略图、PyAV 帧访问、子进程集成和生产环境故障排查。

何时使用此技能

当用户请求涉及前置信息触发条件涵盖的任务时使用,尤其是此领域的实现指导、调试、架构选择、生产环境加固或对性能敏感的决策。从此编排器开始,然后加载与所需细节相匹配的参考文件。

核心工作流

  1. 首先选择集成层:ffmpeg-python 适用于可读的滤镜图,subprocess 适用于完整的 CLI 功能,PyAV 适用于帧级访问,moviepy 仅适用于简单编辑。
  2. 处理前先探测输入,以了解编解码器、时长、分辨率、FPS、音频流和元数据。
  3. 应用视频滤镜时,务必明确保留音频;经过滤镜处理的视频流不会自动携带音频。
  4. 根据兼容性、压缩率和部署硬件选择输出编解码器与加速路径。
  5. 统一使用覆盖和错误处理模式:ffmpeg-python 使用 overwrite_output(),subprocess 使用 -y,并捕获 stderr 以便诊断。
  6. 处理大型媒体时,使用帧流或临时文件,而不是将所有 stdout 或帧读入内存。

关键注意事项

  • 视频滤镜通常会丢弃音频,除非将音频流传入 ffmpeg.output(...),或明确复制音频流。
  • 如果未读取 stdout/stderr,或者帧读取大小设置不当,子进程管道可能会死锁。
  • Windows 路径最好使用 Path(...).as_posix(),或作为 subprocess 参数列表中的条目传入,而不要手动加引号拼接命令字符串。
  • CRF 值因编解码器而异:H.265 CRF 28 大致相当于 H.264 CRF 23。
  • 硬件编码器以压缩效率换取速度;选择 NVENC、QSV、AMF 或 VAAPI 前,请先确认其可用性。

参考索引

回复指南

  • 除非有明确的兼容性或性能理由建议替代方案,否则保留用户现有的框架、库和工具选择。
  • 仅针对当前具体任务提供可直接复制粘贴的代码;否则,指向相关参考章节。
  • 对生产工作流,说明权衡、故障模式和验证步骤。
  • 优先选择易用、易维护且可衡量的方案,而不是巧妙的微优化。

评论

支持 Markdown