
定年後 123 日目 書き出し途中停止トラブル (Final Cut Pro エラー10004)
1 結論
今日は細かくて長い話。なので結論を先に。
問題内容
20 分ほどの編集データを書き出そうとしたら途中で「アプリケーションメモリの不足」というメッセージが出て書き出しができなかった。
解決方法
プロジェクトに対して「メディアをトランスコード」を実行したら書き出しに成功した。
2 詳細
(1) アプリケーションの強制終了
勢いで買ってしまった SONY α7S3 の使い方を練習しようと思い、数分の動画を作り始めた。XAVC S 4K の 60M 4:2:0 8bit の撮影データでいくつか作ることができた。
調子に乗って 100M 4:2:2 10bit で撮影したデータを使って、Final Cut Pro で 20 分ほどの動画を編集してみたところ、途中で行き詰まってしまった。
動画は調整レイヤーをのせてはいるものの、トラジションなどは使わないシンプルなもの。書き出しをしようとすると進行状況を示す円グラフが 6 割ぐらい進んだところで、エラーメッセージが出て止まってしまった。

初めての経験。
動画編集をするときは、余計なアプリを落とすようにしているので、立ち上がっているのはエラーメッセージに表示された Final Cut Pro と終了することのできない(という理解でいいでしょうか?) Finder のみ。
私のハードは M1 MacBook Air で、メモリは 16GB。メモリの空き容量は 10GB ぐらいあるようなので「アプリケーションメモリが不足」というメッセージ自体も不可解。

(2) OSのバージョンアップの問題?
ちょうど OS のバージョンアップの待機中だったようなので、そのせいかと思いバージョンアップを済ませてから再度書き出して見ても、同じようなところで止まってしまう。
ネットで調べても、思うようなヒントを得ることはできなかった。
私が参加しているオンラインサロン MAGNET は、Slack で情報交換をしていいるので、そこで質問してみた。シロウトな質問でちょっと恥ずかしかったけど。
(3) バックグラウンドレンダリング
そこで「バックグラウンドレンダリングが終了していないのではないか」とアドバイスをいただいた。
バックグラウンドレンダリングという言葉は初めて聞いたが、動画編集中になめらかな再生ができないような(主に重いデータとか)場合に、作業画面の裏側で行うレンダリングということらしい。
改めてタイムラインを見てみると、ほとんどのクリップにそれを示すインジケーターが表示されていた。
バックグラウンドレンダリングを終了させるにはどうすればいいのかわからなかったので、とりあえず編集画面を出したまましばらく放置してから書き出したものの、やはり止まってしまった。
(4) CleanMyMac X の導入
この MacBook Air はもう 1 年半ぐらい使っているので、表に出てこない雑多なものが溜まってしまっていて、アプリケーションメモリを圧迫しているのかもしれない。
このところ @drikin さんが絶賛している、CleanMyMac X というソフトがある。Mac 内をきれいにしてくれるツールで、興味があったものの 7,128円 (2022/7/30 現在) という結構な価格なので導入を躊躇していた。
もしかしたらこれで解決できるかもしれないと思い、思い切って購入。
デフォルトの設定で一通り余計なものを削除してから書き出しをしてみたが、結果は同じ。
CleanMyMac X 導入後に初めて書き出しをしたときだけ「RAM+仮想メモリをほとんど使い切っています」みたいな警告メッセージが CleanMyMac X から出た。(記憶は曖昧)
2回目以降は出なくなったのも不思議。
(5) 登録ユーザーの削除
次に思いついたのが、妻のユーザー登録。
仕事の関係で Mac からアクセスする必要があるかもしれないと言われて、私の MacBook にユーザーを作成してあった。関係はないだろうなぁと思いながらもユーザーを削除すれば自分のアプリケーションメモリの容量が大きくなるかもしれないと考えた。
削除して書き出し。
で、結果は同じ。
(6) もしかしてストレージ系が問題?
メモリが不足しているという問題だけど、仮想メモリが十分に確保できないことが原因で発生するというような情報もネット上には多い。
そこでストレージ関係の整理をしてみることにした。
(7) レンダリングファイルの削除
まずレンダリングファイルの削除。
削除すると動きがよくなることがあるらしい。とりあえず削除して書き出し。結果は同じ。
ちなみにストレージの状態を確認してみたら 700GB 以上空いていたので、そういう問題でもなさそう。

(8) 「共有に失敗しました」メッセージ
メモリのエラーメッセージに気を取られていたが、毎回もう一つのエラーメッセージが表示されていた。

共有? MacBook は単独で使用しているし、外付け SSD なども使用していないのになぜ? と思った。
いつもは成功のメッセージが出るので「共有」という言葉を気にしていなかったが、Final Cut Pro では書き出しも共有も同じ意味で使われているようだった。
(9) iCloud Drive
ストレージといえば iCloud がいっぱいになっていると少し前からメッセージが出ていたものの、そのまま使っていたことを思い出した。
これもストレージの話だが、問題の引き金になっているのかもしれないと思い、iCloud Drive をオフにして書き出しをしてみた。
結果は同じ。
(10) iCloud 容量アップ
できることがなくなってきたので、iCloud の容量をアップグレードすることにした。
今までは iPhone + FiLMiCPro で軽めの撮影データしか扱っていなかったし、基本的にデータは自宅の NAS に保管しているので iCloud の契約は 50GB だった。今後は α7S3 も使うようになるので 200GB にすることにした。
滞っていたデータのやり取りが落ち着いた頃に、再度書き出し。
はい、結果は同じ。やはりストレージ系の問題でないようだった。
(11) 症状は一定
唯一の救いは、症状が一定であること。
処理が 6 割ほど進んだところで必ずエラーメッセージが出るので、色々やっても問題が解決・改善できていないことがはっきりわかる。
(12) 編集設定・書出設定
今回の動画は、次のような設定で編集・書き出しをしようとしている。


ちょっと気になるのは、ファイルを書き出そうとすると設定画面の左下に「 1 件の警告」という表示が出ること。
これまでも SONY α のデータを使うと出ていたような気がしたが、問題なく書き出せたので気にしていなかった。もしかしてこれが原因だろうか。
ただ、なんの警告なのかよくわからない。その下に表示されている「3840×2160 | 24 fps…」が問題だと指摘しているのか。
(13) FHDで書き出し
書き出しはいつも「ファイルを書き出し(デフォルト)…」で行っていた。
データが重すぎてメモリが不足するとすれば、解像度を落として書き出してみたら違う結果になるかもしれないと思い、FHD(1920×1080)で書き出してみることにした。
が、結果は同じ。6 割でエラーメッセージ。
(14) 不完全な mov ファイル
ところが mov ファイルは保存されていた。
?と思いながら再生してみると、映像は途中まで表示され、19748F 以降は画面が真っ黒になっていた。最後まで進めると 33746F で終わっていて、59% ぐらいで映像が途切れていたことになる。

余談だけど、Final Cut Pro 書き出し時の円グラフは、映像の処理済み量に比例しているらしい。計算してみると「 F 」はフレームを示していた。

ということは、書き出すファイルの容量には関係なく、Final Cut Pro 上の編集データを吸い上げて処理している段階でメモリが足りなくなっているということになる。
FHD の場合だと、不完全であっても動画ファイルがなぜ保存できたのかはよくわからない。
(15) エラー詳細
「共有に失敗しました」メッセージにマウスポインタを合わせると表示される「詳細」をクリックしてみたら、エラーの内容が細かく確認できた。

(16) エラー 10004
「エラー10004」で検索してみると、類似した内容で情報がヒットした。
どうやらクリップの中に不完全(不正?)なものがあり、それが悪さをしているというもの。
ただ、タイムラインを 1 コマずつチェックしても怪しいクリップは見当たらない。
それに 20 回ぐらい書き出し失敗を繰り返してみて、だいたい 6 割処理が済んだところでエラーになるのだけど、FHD の場合を比べてみると毎回位置が少し違っている。
ということは、特定のクリップが原因で処理が止まっているとは考えにくい。
(17) メディアをトランスコード
さらに調べると「最適化されたメディアを作成していない事によるメモリ不足」という記事を発見。これによると、カメラで撮影した動画は圧縮された状態でタイムラインに並ぶので、編集や書き出しをするときに逐次展開しながら進めているとか。その負担が大きかったりすると書き出しエラーになることがあるらしい。
これを軽減するために「最適化されたメディアを作成」という方法があるようで、これを実行してみた。
方法はプロジェクトを指定して「メディアをトランスコード」を実行するだけ。
珍しく MacBook が熱を持ったので中では盛んに処理が進んでいるのだと思うけど、「バックグラウンドタスク」表示の「トランスコードと解析」は 数% 進むと 0% に戻ることを延々繰り返しながら、徐々に数値が大きくなるという不思議な挙動を繰り返している。
そのうちこの処理もエラーが起きるのではないかとヒヤヒヤしながら見守っていると、終了したようだった。

(18) ようやく書き出し成功
何がどう変わったのか表面的にはわからない。
何十回目かの書き出しを始めると、6 割を超えても処理が進んでいる。
再びドキドキしながら円グラフを見守っていると、なんと無事に終了した。

ようやく書き出し成功。動画も確認できた。
数時間の動画でも同様に処理すれば大丈夫であれば問題はないのだけど、本質的な問題解決にはなっていないようにも思う。
2022 / 8 / 1
追記
2022 / 8 / 2 追記
書き出すときの設定画面で「1 件の警告」の意味がわからないと書いたけど、三角マークにマウスポインタを合わせると、警告の内容が表示されるようになっていた。

これは書き出しのときの設定で「ビデオコーディック」が「H.264」になっていたためらしい。「Apple ProRes 422LT」などに設定したらエラーは出なくなった。