jonghwanhyeon/python-ffmpeg

A python binding for FFmpeg which provides sync and async APIs

解决的问题

该库为 Python 开发者提供了一种简洁的编程方式来控制流行的多媒体工具 FFmpeg。无需输入复杂的命令行参数,你可以使用 Python 一步步构建命令、运行它们,甚至对进度事件做出响应。

工作原理

你创建一个 FFmpeg 对象,并通过链式调用 .input()、.output() 和 .option() 等方法来设置转换或录制任务。选项可以通过关键字参数(例如 vf 用于视频滤镜,preset,crf)或作为字典传递以进行编解码器设置。然后调用 execute() 来运行 FFmpeg。该库提供两种 API:同步(阻塞)版本和用于 asyncio 的异步版本(ffmpeg.asyncio.FFmpeg)。你还可以通过使用 @ffmpeg.on("progress") 装饰回调函数来监听 progress 等事件,该回调会接收一个包含 frame 等字段的 Progress 对象。这使你能够以编程方式监控或终止正在运行的任务。

适用人群

需要将 FFmpeg 功能嵌入到应用程序中的 Python 开发者——无论是转码视频、从 RTSP 摄像头流式传输,还是构建媒体管道——并且希望获得更符合 Python 习惯的接口,而无需调用命令行。

主要亮点

  • 支持阻塞和非阻塞用例的同步和异步 API
  • 可链式、易读的方法调用来构建 FFmpeg 命令
  • 通过关键字参数或字典支持自定义选项、编解码器设置和视频滤镜
  • 用于进度更新的事件监听机制,支持条件终止(例如在 200 帧后停止)
  • 可通过 pip install python-ffmpeg 安装

相关

  • 项目
  • 项目
  • 项目
  • 项目