おぎろぐはてブロ

なんだかんだエンジニアになって10年以上

Final Cut Pro X での ProMSRendererTool エラー 10008 の対処

Final Cut Pro X で編集した動画を Compressor でエクスポートすると、エラーが出て失敗する場合がある。

失敗しました: ホスト [foobar] ビデオのレンダリングエラー:10008(ProMSRendererTool エラー 10008:renderVideoFrame に失敗しました)

このエラーについて、AppleのサイトにもCompressorのヘルプにも説明が無いので、ぐぐってみるものの日本語で言及しているページはなかったので調べる方法をメモしておきます。

何が起きているのか

ビデオのデータに問題があり該当のフレームが壊れて表示できていない

どうすればよいのか

該当のビデオデータの壊れているフレームを除去する

エラー発生位置の確認

エラー文にはエラーが起きただけしか表示されずどこに問題があるのか分からない。1フレームだけだったりするので、絶望的に分からない。 これについては、システムログに位置が書かれている。

/var/log/system.logProMSRendererTool10008grep すると、以下のようにエラーの位置が記録されている。

$ grep ProMSRendererTool /var/log/system.log | grep 10008
Sep 23 01:50:11 iogi-mbp ProMSRendererTool[69516]: An error was generated when rendering the frame: (エラー 10008f, 00:31:13;04 <<(エラー -12909c, apple (fcp1).mov @ 00:44:33;27)>>)
Sep 23 19:24:04 iogi-mbp ProMSRendererTool[76790]: An error was generated when rendering the frame: (エラー 10008f, 00:26:34;26 <<(エラー -12909c, banana (fcp2).mov @ 00:29:33 ;08)>>)
Sep 23 19:24:09 iogi-mbp ProMSRendererTool[76690]: An error was generated when rendering the frame: (エラー 10008f, 00:29:39;16 <<(エラー -12909c, cherry (fcp2).mov @ 00:35:00;15)>>)

古いログファイルはローテートされて、圧縮、削除される。圧縮されているログも検索する場合は

zgrep ProMSRendererTool /var/log/system.log* | grep 10008

で探す。

1つのエラーに2つの時刻が記録されているが、前者がレンダー時の位置、後者が元データでの位置 (だと思う) エラーが出たクリップの該当のタイミングを確認すると、そのタイミングから数フレーム破損したフレームがあるので、ここを音声含めカットして再度エンコードをすると成功した。 1〜2フレームだったので音声にも違和感が無いので自分は音声含めてカットしたが、もっと多いフレームである場合は、正常なフレームの映像をコピーする等でもOK。

Final Cut Pro Xガイドブック[第3版]

Final Cut Pro Xガイドブック[第3版]