filmcraft は何をしますか?
アップデート: このフォルダに
.installed-fromファイルがある場合(リポジトリからコピーされたときに書き込まれます)、セッションごとにgit ls-remote https://gitlab.com/e1dred/agent-skills.git HEADを1回実行してください。出力行のうち、末尾が正確にHEADである行のハッシュを取得します。そのハッシュがファイルの内容と異なる場合は、新しいバージョンが存在することをユーザーに伝え、更新を提案してください(「更新」については https://gitlab.com/e1dred/agent-skills/-/blob/main/INSTALL.md を参照。ローカルの編集をマージできます)。許可なく更新しないでください。ハッシュは比較する前に空白をトリミングしてください。ファイルがない場合、クローンまたはシンボリックリンクの場合、ネットワークに接続できない場合(空の出力、またはgit ls-remoteからのエラー)は、何もせずスキップしてください。
初回ヘッドレスタスクからのフィールドノート。最終テストは FilmCraft 0.17.1 (Linux AppImage) で実施。FilmCraftはRustで書かれた、Premiereスタイルのビデオエディターの初期アルファ版です。すべてのメニュー項目とボタンはエンジンのコマンドです。CLI、MCPサーバー、アプリの制御チャンネルはすべて同じコマンドを実行します。filmcraft-cli --version が新しい場合は、これに依存する前にここに書かれていることを再確認してください。
セットアップ
- CLI: AppImageから抽出します (
filmcraft.appimage --appimage-extract、usr/bin/filmcraft-cliを安定した場所にコピー)。自己完結型で、ウィンドウは不要です。AppImage自体に対して--versionを実行しないでください。 - ヘッドレス:
filmcraft-cli --project p.fcproj exec <id> key=value …。スクリプトはJSON Lines形式で、1つのセッションを維持します:filmcraft-cli --project p.fcproj run script.jsonl [--save]。各行は{"id":"…","params":{…}}の形式です。または、file.newProjectの後にfilmcraft-cli runを単独で実行します。サブコマンド:commands、describe、inspect、import、export、render、probe。 - ライブアプリ:
filmcraft --control 9876(またはFILMCRAFT_CONTROL_PORT)。リスナーは環境変数FILMCRAFT_CONTROL_TOKEN(64文字の16進数) を必要とします。これがないと接続は閉じたままになります。filmcraft-cli mcp --bridge 127.0.0.1:9876でブリッジします。 - MCP:
filmcraft-cli mcp(ヘッドレス) または--bridge(ライブ)。
参照ファイル一覧
タスクに一致するファイルを読んでください。各ファイルは、どのセクションが含まれているかを示しています。grep -n を reference/ に対して使用して、コマンドIDを見つけてください。
reference/ 内のファイル | 読むべき内容 | セクション |
|---|---|---|
projects-and-timeline.md | プロジェクト、メディアのインポート、シーケンス、プレイヘッド、カミソリとトリミング、マーカー、保存、トランジション、ビデオエフェクトとキーフレーム、フレームホールド、プロジェクトノート | プロジェクトとメディア; シーケンス; カットとトリミング; マーカーと保存; トランジション; ビデオエフェクトとキーフレーム; フレームホールド、選択、プロジェクトノート; その他の編集ツール |
titles-and-graphics.md | テキストレイヤーとシェイプレイヤー、小さいフレームでのサイズ/フィット、レイヤーの読み戻し、縦書きテキストとインポートした画像 | タイトル; サイジングとフィッティング; レイヤープロパティ; その他のレイヤーツール |
audio-mixer.md | ミキサーストリップ、値、サブミックス、インサートとセンド、クリップゲイン、エッセンシャルサウンド | ミキサー; クリップオーディオ |
captions.md | 字幕トラック、キャプションの追加/編集/移動、SRTのインポートとエクスポート | キャプショントラックとSRT |
export.md | エクスポートプリセットとフォーマット、エクスポートキュー、MP4/GIFエクスポート、フレーム静止画、インターエクスチェンジエクスポート、プロービング | プリセット; エクスポート; プリセットとエクスポートキュー; 静止画; プロービング |
command-catalogue.md | その他すべてのコマンドID(クリップ、タイムライン、シーケンス、トリム、グラフィックス、編集、ファイル、プロジェクト、マルチカム、ソース、プリファレンス、ショートカットなど)。各コマンドは検証済み (JSONパス old → new)、結果を返した、実行された、または理由とともに拒否されたことがマークされています。選択依存コマンドを有効にするセットアップについても説明。 | ファミリごとに1セクション |
live-app.md | --bridge を介した実行中のアプリの操作: ui_* ツール、ライブでのみ動作するもの、隠しディスプレイでの実行方法 | 接続; ライブアプリが追加するもの |
newer-commands.md | 各バージョンで追加または変更された内容 | 0.17.0; 0.17.1 |
log.md | 何がいつテストされたかの日付付きログ | ログ |
CLIの基本 (検証済み)
filmcraft-cli commands --json # 716 コマンド: id, label, menu, params, enabled
filmcraft-cli describe file.import # 1つのコマンドのパラメータドキュメント
filmcraft-cli --project p.fcproj inspect # {project:{…}, sequence:{…}} をJSONで出力
filmcraft-cli import clip.mp4 --project p.fcproj
filmcraft-cli --project p.fcproj export out.mp4 --scale 0.5 --quality 70
filmcraft-cli --project p.fcproj render --seconds 2 --out frame.png
filmcraft-cli probe clip.mp4 # 種類、長さ(ティック)、ビデオ/オーディオストリームの詳細
- JSONLスクリプトは状態を維持します:
file.newProject→file.import {"paths":["clip.mp4"]}→{"items":[1]}→file.newSequenceFromClip {"items":[1]}→{"clips":[6,7],"sequence":4}→ … →file.saveAs {"path":"p.fcproj"}。 - 後続のすべてのCLI呼び出しに
--projectを渡してください。これがないと、各呼び出しは新しいセッションになります。
注意点
- 時刻はフレームではなく「ティック」です: シーケンスは3秒間で762,048,000,000と報告します(254,016,000,000 ティック/秒)。
playhead.setはseconds、frame、time、timecodeを受け入れ、最も近いフレームにスナップします(1.5秒 → フレーム37)。 - デフォルトサイズのテキストレイヤーは小さなフレームではみ出します。
graphics.newTextのデフォルトは100pxです。320×180のシーケンスで