100個のAVIをMP4にエンコードしたい、かつ状態も確認したかったので、Media EncoderではなくAfter Effectsで出力するスクリプトを作成しました。
[追記]動画を直接レンダーキューに入れるほうが早かったです
スクリプトを使わなくても標準機能で対応可能でした。
プロジェクトパネルの動画素材をレンダーキューへドラッグすると、個別の出力項目として登録できます。
登録しただけではレンダリングは始まらないため、形式・出力先・対象項目を確認して開始します。

2026年10月13日に撮影した、After Effectsのレンダーキューです。
「IndividualClip4971_A」「IndividualClip4971_B」「IndividualClip4971_C」の3項目が、別々の出力項目として並んでいました。

各項目の出力モジュールは「H.264 – レンダリング設定を一致 – 15 Mbps」で、出力先は、A・B・Cで別々のMP4ファイル(IndividualClip4971_A.mp4、IndividualClip4971_B.mp4、IndividualClip4971_C.mp4)でした。
この画面のステータスは「キュー」で、書き出しはまだ始まっていません。
書き出しが終わったあとの画面です。
3項目とも、ステータスは「完了」になりました。
レンダリング時間は、Aが2秒、BとCが1秒でした。

書き出したIndividualClip4971_C.mp4は、プロジェクトパネルに読み込まれ、フッテージパネルで開いていました。
1280×720、25.00 fps、長さ0:00:02:00で、映像には「INDIVIDUAL CLIP C」と表示されていました。
記事の練習の例は1920×1080・30fpsですが、この画面の動画は1280×720・25 fpsです。
時間は撮影したPCでの値です。
この画面には、項目をドラッグして登録したのか、スクリプトで追加したのかは写っていません。
2つのスクリプトの動作を確認したものではありません。
選択した全ての動画を個々にコンポジションに入れるスクリプト
選択した動画素材を、それぞれ個別のコンポジションとして新規作成・配置するスクリプトです。
(function () {
if (!app.project) { alert("Open a saved practice project first."); return; }
var selected = app.project.selection.slice(0);
var valid = [], skipped = 0, made = 0;
for (var i = 0; i < selected.length; i++) {
var x = selected[i];
if (!(x instanceof FootageItem) || !x.hasVideo || x.mainSource.isStill ||
x.footageMissing || !isFinite(x.width) || Math.floor(x.width) != x.width || x.width < 4 || x.width > 30000 ||
!isFinite(x.height) || Math.floor(x.height) != x.height || x.height < 4 || x.height > 30000 ||
!isFinite(x.duration) || x.duration <= 0 || x.duration > 10800 ||
!isFinite(x.frameRate) || x.frameRate < 1 || x.frameRate > 99 ||
!isFinite(x.pixelAspect) || x.pixelAspect < 0.01 || x.pixelAspect > 100) {
skipped++; continue;
}
valid.push(x);
}
if (!valid.length) { alert("No supported moving-image footage selected."); return; }
app.beginUndoGroup("Create selected video compositions");
try {
for (var j = 0; j < valid.length; j++) {
var item = valid[j];
var comp = app.project.items.addComp(item.name, item.width, item.height,
item.pixelAspect, item.duration, item.frameRate);
comp.layers.add(item);
made++;
}
alert("Created: " + made + ", skipped: " + skipped);
} catch (e) {
alert("Stopped after " + made + " completed items: " + e.toString() +
"\nUndo this group or reopen your saved practice copy.");
} finally { app.endUndoGroup(); }
}());
選択したコンポジションをレンダーキューへ追加する
プロジェクトパネルで選択したコンポジションをまとめてレンダーキューに追加するスクリプトです。
(function () {
if (!app.project) { alert("Open a saved practice project first."); return; }
var queue = app.project.renderQueue;
if (queue.rendering) { alert("Stop rendering before adding items."); return; }
var selected = app.project.selection.slice(0), comps = [];
for (var i = 0; i < selected.length; i++) {
if (selected[i] instanceof CompItem) { comps.push(selected[i]); }
}
if (!comps.length) { alert("Select compositions in the Project panel."); return; }
var added = 0;
try {
for (var j = 0; j < comps.length; j++) {
var item = queue.items.add(comps[j]);
item.render = false;
added++;
}
alert("Added, not enabled for rendering: " + added +
"\nSet unique outputs and formats, then enable only the intended items.");
} catch (e) {
alert("Stopped after " + added + " items: " + e.toString() +
"\nInspect the practice queue; no render was started.");
}
}());
この修正版は追加項目のレンダリングを無効にし、自動開始しません。
既存キューの有効状態は変更しないので、出力時は意図しない既存項目が有効になっていないかも確認します。
After Effectsの基本的な操作や関連Tipsは、こちらのまとめからご覧いただけます。

この記事で紹介しているコードは、GitHubのMOTOKI-LLC/cg-method-codeにもまとめています。 修正版は本文下の練習用ZIPを使います。リンク先リポジトリには旧版が含まれるため、同じコードとして扱わないでください。
レンダリングや書き出しを高速化する設定や手順についても別記事で解説しています。




2素材と対象外の項目で確かめる練習
別名保存した練習プロジェクトで、1920×1080・30fps・2秒の動画AとB、静止画、音声、フォルダーを選びます。
ファイル→スクリプト→スクリプトファイルを実行からcreate-video-comps.jsxを選びます。
タイムラインの式欄では実行しません。
動画だけが対象です。
静止画・音声のみ・リンク切れ・コンポジション・フォルダーや、寸法・継続時間・フレームレートが対応範囲外の素材は除外します。
動画AとBの2コンポジションが作成され、各動画が1レイヤー入るかを確認します。
作成した2コンポジションだけをプロジェクトパネルで選び、queue-selected-comps.jsxを実行します。
追加2項目のチェックはオフのままにし、出力モジュールで目的の形式を選びます。
拡張子だけを.mp4へ変えてもMP4への変換にはなりません。
| 対象 | 確認する状態 | 出力先 |
|---|---|---|
| Aのコンポジション | 動画Aの寸法・2秒・30fps | A専用の未使用ファイル名 |
| Bのコンポジション | 動画Bの寸法・2秒・30fps | B専用の別ファイル名 |
| 既存キュー | 元の設定を保持 | 今回出力するものだけ有効にする |
保存先に同名ファイルがないこと、出力範囲が2秒であることを確認してから、2項目を有効にしてレンダリングします。
出力した動画を開き、寸法・長さ・映像と音声を確認します。
再実行は別のコンポジションやキュー項目を追加するため、重複が不要なら実行前の保存コピーへ戻します。
コンポジション作成と名前変更はUndoグループを使いますが、レンダーキューの復元まで同じUndoで戻るとは扱いません。
エラー時は途中追加分を確認し、練習前のプロジェクトへ戻します。
2026年10月3日にAPI資料とローカルのテストダブルで制御を確認しました。
AE本体でのスクリプトとUndoは未検証です。
レンダーキューの個別項目の書き出しは、2026年10月13日に撮影した画面で、完了を確認しています。
練習用スクリプト4本をダウンロードできます。
確認資料(2026年10月3日):Adobe公式 素材管理。
まとめ
- 素材動画を直接レンダーキューへドラッグ&ドロップする方法が最も手軽
- 個別のコンポジションとして整理・調整したい場合は1つ目のスクリプトを活用
- 大量のコンポジションを一括登録する場合は2つ目のスクリプトが便利
よくある質問:After Effectsで大量の動画をレンダーキューに入れるとき
大量の動画をMP4にするには、スクリプトが必要ですか?
必須ではありません。記事の追記にあるとおり、プロジェクトパネルの動画素材をレンダーキューへドラッグすると、個別の出力項目として登録できます。登録しただけではレンダリングは始まらないため、形式・出力先・対象項目を確認して開始します。
2つのスクリプトは、それぞれ何をしますか?
1つ目は、選択した動画素材を、それぞれ個別のコンポジションとして新規作成・配置するスクリプトです。2つ目は、プロジェクトパネルで選択したコンポジションをまとめてレンダーキューに追加するスクリプトです。個別のコンポジションとして整理・調整したい場合は1つ目、大量のコンポジションを一括登録する場合は2つ目が便利です。
スクリプトで追加したキュー項目は、自動でレンダリングされますか?
されません。この修正版は追加項目のレンダリングを無効にし、自動開始しません。既存キューの有効状態は変更しないので、出力時は意図しない既存項目が有効になっていないかも確認します。
スクリプトは、タイムラインの式欄で実行しますか?
いいえ。「ファイル」→「スクリプト」→「スクリプトファイルを実行」からjsxファイルを選びます。タイムラインの式欄では実行しません。対象は動画だけで、静止画・音声のみ・リンク切れ・コンポジションなどは対象外です。
出力ファイルの拡張子を.mp4にすればMP4になりますか?
なりません。拡張子だけを.mp4へ変えてもMP4への変換にはなりません。出力モジュールで目的の形式を選びます。出力先は、素材ごとに専用の未使用ファイル名にし、保存先に同名ファイルがないことを確認してください。
スクリプトを再実行すると、どうなりますか?
別のコンポジションやキュー項目が追加されます。重複が不要なら、実行前の保存コピーへ戻してください。コンポジション作成と名前変更はUndoグループを使いますが、レンダーキューの復元まで同じUndoで戻るとは扱いません。
記事のコードは、どこにありますか?
GitHubのMOTOKI-LLC/cg-method-codeにもまとめていますが、修正版は本文下の練習用ZIPを使います。リンク先リポジトリには旧版が含まれるため、同じコードとして扱わないでください。
この記事のスクリプトは、実機で確認済みですか?
2026年10月3日にAPI資料とローカルのテストダブルで制御を確認しましたが、AE本体でのスクリプトとUndoは未検証です。レンダーキューの個別項目の書き出しは、2026年10月13日に撮影した画面で、完了を確認しています。実行前に、練習用のプロジェクトを別名で保存して試してください。
