Processingのムービーメーカーを使った動画の書き出し・生成でのエラーの対処法

Processing 4以降において、ムービーメーカーによる動画出力に失敗するケースが多発しているようです。
特に最近の最新バージョンでは、ムービーメーカーをツールの検索から探し、後からインストールする流れになっており、このことも影響しているかもしれません。
このムービーメーカーによる動画出力に失敗する問題は、Processing内部で動画変換を担う外部プログラムFFmpeg(エフエフエムペグ)が、OSのセキュリティ制限やバイナリの不一致によって正しく呼び出せていないことにあります。
特に最新のOS環境では、外部プログラムの実行権限が厳格に管理されているため、単にツールをインストールしただけでは動作しないのが現状です。
ここでは、MacとWindowsそれぞれのOS仕様に基づいた具体的な解決方法についてご紹介します。
Mac環境:実行権限不足(error=13)の解消
Macで発生する「error=13」は、OSのセキュリティによる実行権限の欠如を示します。Processingがツールをインストールした際、内部に含まれるFFmpegファイルが「実行可能なプログラム」として許可されず、ただのデータファイルとして認識されている状態です。
解決手順
- ターミナルの起動
Command + Space で「Terminal」を検索し、Terminal.appを起動。 - 実行属性の付与
権限を付与するコマンドを入力し、エンターキーを押して実行。
ターミナルを起動しましたら、以下のコマンドを入力してエンターキーで実行します。
chmod +x ~/Documents/Processing/tools/MovieMaker/tool/ffmpeg
コマンド実行後、ドキュメントフォルダ内のファイルへのアクセス許可を求められるので、許可します。

chmod +x は、対象ファイルに実行(executable)権限を付与する命令です。これにより、OS側でプロセスの実行が許可されます。
注意点:
Processingのスケッチブック(保存先)をデフォルトから変更している場合は、パスの ~/Documents/Processing/ の部分を実際の保存先に書き換えてください。
Windows環境:実行ファイル不在(error=2)の修正
Windowsで発生する「error=2」は、ツールがWindows用の実行ファイル(.exe)を正しく配置できていないためです。Mac用のファイルが混ざっていたり、ファイル名が ffmpeg(拡張子なし)になっていたりすると、Windowsはプログラムとして認識できず、呼び出しに失敗します。
解決手順
- Windows用 FFmpeg の入手
gyan.dev等の配布サイトから、Windows専用の ffmpeg-release-essentials.zip をダウンロードし、展開(解凍)します。 - 実行ファイルの抽出
展開(解凍)したフォルダの bin 内にある ffmpeg.exe をコピーします。 - バイナリの差し替え
ムービーメーカーが内部で使う実行ファイルがある場所を開き、既存の拡張子なしの ffmpeg を削除して、コピーした ffmpeg.exe を貼り付けます。 - セキュリティブロックの解除
貼り付けた ffmpeg.exe を右クリック > プロパティ > 全般タブ最下部の 「ブロックを解除」 にチェックを入れて適用してください。この処置がないと、実行時にアクセス拒否エラーが発生します。
まずは、下記URLのgyan.dev公式サイト(FFmpeg Windowsビルド配布ページ)から、Windows専用の ffmpeg-release-essentials.zip をダウンロードします。
release buildsの項目にあります。
FFmpeg Builds
https://www.gyan.dev/ffmpeg/builds/

ダウンロードしたZIPファイルを展開(解凍)して、フォルダ内の ffmpeg.exe をコピーします。
ffmpeg.exeはbin内にあります。

ムービーメーカーが内部で使う実行ファイルがある場所を確認します。
エクスプローラーで以下のパスを開きます(ユーザー名はご自身のものに変えてください)。
C:\Users\(ユーザー名)\Documents\Processing\tools\MovieMaker\tool\
ファイル名が ffmpeg(拡張子なし)のファイルなどがある場合は、必要ないのでゴミ箱に入れて削除してかまいません。
この場所に、コピーした ffmpeg.exe を貼り付けます。

外部からダウンロードしてきたexeなどの実行ファイルは、OSのセキュリティによってブロックされることが多いので、セキュリティブロックの解除を行います。
貼り付けた ffmpeg.exe を右クリックしてプロパティと進み、プロパティ画面の全般タブ最下部のセキュリティの項目にある 「許可する」 にチェックを入れて適用させ、「OK」を選択して設定を完了させます。


これで、動画生成を実行する際のアクセス拒否のエラーを解消できます。
「Creating movie failed」:解像度と規格の不一致
プログラムが起動しても動画が完成しない、あるいは再生できない場合は、ビデオコーデックの制約を確認する必要があります。
解像度の偶数制約
H.264等の主要な動画規格では、解像度が2の倍数(偶数)であることが必須です。size(501, 501) のように奇数が含まれる連番画像は規格外となり、エンコードプロセスが強制終了するか、破損した動画が生成されます。
FFmpegコマンドによる直接生成
ムービーメーカーのツール自体が不安定な場合は、コマンドラインで直接FFmpegを操作するのが最も確実です。
動画に変換するフレーム画像が格納されたフォルダ内に、ffmpeg.exeをコピーしてきて貼り付け、このフォルダないで直接FFmpegを操作します。
フレーム画像が格納されたフォルダ内で、エクスプローラーのアドレスバー(フォルダのパスが表示されている場所)をクリックし、cmd と入力してエンターキーを押します。

コマンドプロンプトが立ち上がり、現在の場所がフレーム画像が格納されたフォルダになっているのが確認できます。
そして、以下のコマンドを実行します。
再生互換性を最大化したフルオプションになります。
ffmpeg -r 30 -i %04d.png -vcodec libx264 -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" -color_range 1 -colorspace 1 -color_trc 1 output_fix.mp4

各オプションの役割
- -pix_fmt yuv420p
PNG/TIFF等の色形式を、QuickTimeやWindows Media Playerで再生可能な「YUV420」形式へ強制変換します。 - -vf “scale=trunc(iw/2)*2:trunc(ih/2)*2”
解像度が奇数の場合、自動で1ピクセル削り偶数に補正してエラーを回避します。 - -color_range 1 -colorspace 1 -color_trc 1
色空間をHD放送規格(BT.709)に固定し、再生環境による色の白飛びやくすみを防止します。
コマンドを入力してエンターキーを押して実行すると、動画への変換・生成処理が始まります。

変換・生成処理が完了すると、無事動画が生成されているのが確認できます。

最後に
Processing 4系以降では、高解像度のディスプレイへの対応が強化されていたり、ムービーメーカーのツールもOSのセキュリティアップデートに追いついていないこともあります。
Macでは、コマンドで実行権限を与えれば、これまで通りスムーズにムービーメーカーツールの画面の流れで動画が生成できます。
Windows PCでは、少し手間にはなりますが、FFmpegのダウンロードとコマンドラインで直接FFmpegを操作する手法が、最もエラーのリスクが低く、うまくスケッチプロジェクトを動画として生成することができるでしょう。