update-ffmpeg について
Remotion の FFmpeg ビルド成果物と生成バインディングを更新するためのリポジトリ用スキルです。CI ビルド、成果物の検証と取り込み、クロスプラットフォームの再ビルド、プルリクエスト前の検証を案内します。
主な機能
- 01ソース SHA を指定した CI ビルド
- 02成果物とビルド由来情報の収集
- 03不変アーカイブの検証とアップロード
- 04チェックサムと生成バインディングの取り込み
- 057 対象パッケージの再ビルド
- 06ビルドとスタイルの検証
活用シーン
- 01Remotion の FFmpeg 更新
- 02対応する CI ビルド成果物の検証
- 03対象別 compositor パッケージの再ビルド
- 04検証済み FFmpeg 更新プルリクエストの準備
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ remotion-dev/ remotion --skill update-ffmpegインストール後、Claude Code で/update-ffmpegを入力して読み込まれたか確認します。
同梱ファイルagents/openai.yaml
詳細
Remotion FFmpeg の更新
FFmpeg のビルドレシピ、Rust バインディング、ラッパーは packages/compositor/ffmpeg にあります。コンポジターとラッパーはローカルの Cargo 依存関係を使用しており、更新は 1 つの Remotion プルリクエストでレビューされます。
収集とインポート
対象の FFmpeg ビルドには、完全なソースコミット SHA を使用してください。
そのコミットを含むブランチで、ウェブアプリの Trigger Pipeline ボタンまたは API を使って、CircleCI パイプラインを明示的にトリガーしてください。パラメーターは不要です。このワークフローは pipeline.trigger.type == "api" の場合にのみ実行され、どちらの方法もこれに該当します。トリガー手順を参照してください。5 つのジョブと、同じコミットに対する macOS GitHub Actions のビルドが成功するまで待ちます。その後、Remotion リポジトリのルートでアーティファクトを収集します。
node packages/compositor/ffmpeg/collect-artifacts.mjs --sha <full-source-sha>
コレクターを実行するには、同じ SHA に対する GitHub Actions と CircleCI のビルドが成功している必要があります。複数の実行結果を組み合わせたり、欠けているターゲットを古いビルドで補ったりしないでください。返された MANIFEST.json と SHA256SUMS は、7 つのアーカイブと一緒に保管してください。
Remotion リポジトリの R2 アップロードワークフローを使って、検証済みのアーカイブを remotion.media の新しい不変ディレクトリにアップロードします。既存のリリースディレクトリは上書きしないでください。その後、次を実行します。
node packages/compositor/ffmpeg/import-artifacts.mjs <artifact-directory> <immutable-https-base-url>
インポーターは、assets.json と 7 つの正規生成バインディングを更新する前に、ローカルおよびホスト上のアーカイブのチェックサムを検証します。アーカイブは無視対象のダウンロードファイルのままにしてください。バインディングを手動で編集しないでください。
再ビルドと検証
bun install --frozen-lockfile で依存関係をインストールします。packages/compositor から bun install-toolchain.ts を実行して不足しているクロスコンパイルツールチェーンをインストールし、その後 bun run build-all を実行します。
7 つすべてのターゲットが必要です。Windows x64 GNU、macOS ARM64/x64、Linux ARM64/x64 GNU/musl が対象です。macOS では、MSVCRT をターゲットとする x86_64-w64-mingw32-gcc を使用してください。objdump -p packages/compositor-win32-x64-msvc/remotion.exe を実行し、msvcrt.dll がインポートされ、api-ms-win-crt-* と ucrtbase.dll はインポートされていないことを確認します。
リポジトリのルートから bun run build、bun run stylecheck、git diff --check を実行します。FFmpeg のメタデータ/バインディングの変更と、再ビルドした 7 つすべてのコンポジターパッケージを確認します。無関係な変更は含めないでください。
プルリクエストを作成する場合は、../pr/SKILL.md と ../pr-name/SKILL.md を読んでください。完全なソース SHA、ホスト上のアーカイブディレクトリ、CI の来歴、再ビルドしたターゲット、検証結果を記載します。タイトルには次を使用してください。
`@remotion/compositor`: Update FFmpeg and rebuild binaries
packages/lambda-binaries は Chromium とフォントをパッケージ化するものであり、FFmpeg のみの更新では再ビルドは不要です。