Macで使っているビデオ編集アプリの「Davinci Resolve」で書き出したビデオに、ブロックノイズが出る問題。これは主に、iPhoneで撮影したビデオを編集して書き出したビデオで発生していました。GoProなど他のカメラで撮影したビデオと、iPhoneで撮影したビデオが混在するビデオの場合でも、ブロックノイズが出るのは、必ずと言っていいほどiPhoneで撮影した部分。
![davinciresolve_macos_video_niise-01.jpg Davinciresolve macos video niise 01](https://ipod.item-get.com/img/23/03/davinciresolve_macos_video_niise-01.jpg)
このようなブロックノイズが発生します。
再生時に処理が追いつかなくて破綻するのではなく、エンコード時にブロックノイズが出た状態で書き出されています。
ブロックノイズの症状
- H.264でもH.265でもブロックノイズが出る
- iPhoneで撮影したビデオファイルでブロックノイズが発生する
- iPhoneのビデオファイルの圧縮の問題?
ブロックノイズが出た時に再編集してみますが、その時にチェックすると編集時のプレビューでもブロックノイズが出ているので、おそらくキャッシュされたファイルにもブロックノイズが出ている。もしくは、ブロックノイズが出た状態でキャッシュされたものがそのまま書き出されているのかな?
iPhoneで撮影したビデオは.mov形式で保存されるのに対して、GoProで撮影したビデオは.mp4形式です。その違いも影響していると考えられるので、書き出す時はmov形式のH.265で書き出すようにしていました。
しかし、これでもブロックノイズが出る時は出るということが分かりました。
Daviniciブロックノイズの対策方法
Davinci Resolveのブロックノイズ対策方法として挙げられているのは、以下の方法です。
- GPU支援をOFFにする
- H.256で書き出す
- 無圧縮の形式(ProRes)で書き出してからMP4(H.265)で書き出す
AppleシリコンMacでは、GPUはMetalのままで変更する必要はありません。
GPU支援をOFFにするには、ハードウェアアクセラレートの設定のチェックを外すようです。さらに、キャッシュファイルを使わないという意味で、エクスポートの設定でビデオの書き出しで以下のチェックを外すという方法を試してみました。
- 可能な場合はハードウェアアクセラレート(GPU支援をOFFにする)
- 最適化メディアを使用
- プロキシメディアを使用
- レンダーキャッシュしたイメージを使用
すると、エンコード時間が3時間と出ました。
10分足らずの4K動画を書き出すのに、3時間て・・・
「可能な場合はハードウェアアクセラレート」のチェックを入れると7分に短縮しました。GPU支援は必要ですね。
キャッシュファイルを使わないのは良し悪しがありますけど、お好みでいいでしょう。
ProResで書き出す方法もやりましたが、ファイル容量が巨大すぎるのでパス。
仕方ないので、ノイズが出るシーンだけを別のプロジェクトにコピペして書き出し。ノイズが出ない事を確認したら、元のプロジェクトの同じシーンに上書きするという方法をとることにしました。
- フォーマット:QuickTime
- コーデック:H.265
意外な方法で解消したブロックノイズ問題
そんな感じで右往左往しながら使ってきたDavinci Resolveですが、現在のところブロックノイズは発生しておらず、もしかすると解消したかもしれません。
どうやったかというと、macOSをVenturaにアップデートしました。
それだけで解消しました。
メディアプレイヤーアプリのVLCでも、これまではブロックノイズが乗るシーンがありましたが、macOS Venturaにしてから発生していませんし、ビデオの処理が最適化されたのでしょうか。一部のアプリは動作しなくなりましたが、macOS Venturaにアップデートする価値はあったようです。