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を実行します。同期(ブロッキング)バージョンと、asyncioで使用するための非同期バージョン(ffmpeg.asyncio.FFmpeg)の2つのAPIが利用可能です。また、@ffmpeg.on("progress")でコールバックをデコレートすることでprogressなどのイベントをリッスンでき、frameなどのフィールドを持つProgressオブジェクトを受け取ることができます。これにより、実行中のタスクをプログラムで監視したり終了させたりすることが可能です。

対象ユーザー

動画のトランスコード、RTSPカメラからのストリーミング、メディアパイプラインの構築など、アプリケーションにFFmpeg機能を組み込む必要があり、コマンドラインを直接呼び出すのではなく、よりPythonらしいインターフェースを求めるPython開発者向けです。

ハイライト

  • ブロッキングおよびノンブロッキングの両方のユースケースに対応する同期・非同期API
  • FFmpegコマンドを構築するためのチェーン可能で読みやすいメソッド呼び出し
  • キーワード引数や辞書を介したカスタムオプション、コーデック設定、ビデオフィルタのサポート
  • 進捗更新のためのイベントリスナーメカニズムにより、条件付き終了(例:200フレーム後に停止)が可能
  • pip install python-ffmpeg でインストール可能

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト