Communitygithub.com

Zekiog/media-pipeline

ローカルCPUで動画、音声、画像を処理します。動画の正規化、音声認識、画像OCR、抽出したテキストの翻訳を行います。

media-pipeline とは?

Media Pipelineは、FFmpeg、faster-whisper(int8)、RapidOCRなどの軽量なCPU向けツールを活用し、ローカルマシン上で動画・音声・画像の一連の処理を実行するAIエージェントスキルです。主にClaude CodeやPrime Agent向けに設計されており、`mp process`や`mp watch`などのコマンドラインインターフェースに加え、MCPプロトコルに対応したツール群(`media_process`、`media_translate`など)を提供します。入力ファイルを自動的に探索し、音声認識(Whisperモデルはデフォルトで`tiny`)、画像文字認識(OCR)、翻訳(Pollinations/Gemini/LiteLLM)を行い、結果を整理されたoutboxディレクトリに出力します。`tiny`以外のWhisperモデルや環境変数による動作のカスタマイズも可能で、マルチモーダルなメディアパイプラインをオフラインで実現します。

対応~Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/Zekiog/media-pipeline/tree/HEAD/skills/media-pipeline

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

メディアパイプライン

このマシン上のファイルに対するCPUでの音声認識とOCR。FFmpeg、faster-whisper(int8)、RapidOCR。Whisperモデルのデフォルトはtiny。

配置

パスはmedia-pipelineのチェックアウトからの相対パス。

bin/mp              調査、処理、翻訳、一覧表示、監視、セルフテスト、診断
bin/mp-mcp          stdio MCPサーバー
inbox/              `mp watch`用のファイル
work/               16kHz wavおよびwork/processed.json
outbox/<epoch>_<stem>/
                    normalized.mp4、thumbnail.jpg、transcript.txt、
                    transcript.srt、transcript.vtt、ocr.txt、
                    translation.<lang>.txt、manifest.json
failures/           `mp watch`が処理できなかった入力

install.shは、$MP_SKILLS_DIR/media-pipelineディレクトリが既に存在する場合に、このスキルをそのディレクトリにコピーします。デフォルトは$HOME/.local/share/prime-agent/0.9.6/skillsです。

エンジン

ジョブエンジン備考
調査ffprobeフォーマット、長さ、ストリーム
動画FFmpegH.264 + AAC、yuv420p、faststart、CRF 28;1秒目のサムネイル、幅1280
モデル用音声FFmpeg16kHzモノラルPCM、work/下に保存
音声テキスト変換faster-whisperCPU、MP_WHISPER_COMPUTEのデフォルトはint8、モデルMP_WHISPER_MODELのデフォルトはtiny
画像テキストRapidOCRONNX RuntimeによるPP-OCRv4、ocr.txtに書き込み
翻訳Pollinations、Gemini、またはLiteLLMリクエストがあった場合のみ。詳細はreferences/engines.mdを参照

コマンド

bin/mp selftest
bin/mp probe FILE
bin/mp process FILE
bin/mp process FILE --translate --target tr
bin/mp translate FILE --target tr
bin/mp watch
bin/mp doctor

processは入力ファイルを元の場所に残します。watchはファイルをoutbox/またはfailures/に移動します。sha256が既にwork/processed.jsonにあるファイルはinbox/に残ります。

doctorは重要なチェックに失敗すると終了コード1で終了します。チェックの1つに$HOME/bin/prime-tgがありますが、このリポジトリには含まれていません。

MCPツール

media_engines、media_probe、media_process、media_translate、media_batch。

media_processはpath、transcribe、ocr、translate、target_languageを受け付けます。media_batchはinbox/をトランスクリプションとOCRをオン、翻訳をオフで処理します。

ルール

  • MP_LITELLM_KEYとMP_GEMINI_KEYは環境変数に残しておいてください。これらを表示しないでください。
  • tinyがデフォルトです。録音で必要な場合はMP_WHISPER_MODELをbaseまたはsmallに設定してください。mediumとlarge-v3は大きなダウンロードサイズです。
  • probe.duration_sが0の空のトランスクリプトは、音声がデコードされなかったことを意味します。
  • 翻訳がエラーを返した場合、テキストは翻訳されていません。その旨を伝えてください。
  • リポジトリのテキストは英語のままにしてください。

リファレンス

  • references/engines.md:プロバイダーの優先順位、OCRの制限、ARMホストに関する注意
  • references/triggers.md:inboxパスユニットとmp watchについて
  • references/recipes.md:venv、ffmpeg、OCRコマンドについて

関連スキル