moviepyで動画合成時のノイズ対策


 

けっこうたいへんでしたので、少しここにメモしておきます。

画像と音声を合わせた動画クリップを複数あわせて、一つの動画にする際に、
あわせた部分にノイズが発生してしまう。
検索してみると、海外の件やmoviepy開発者の解決策なども発見。

結論)
一つ一つの動画クリップを少し時間を短くする -0.2秒程度がよかったです。
無音.mp3を1秒用意して、そこにつける
各音声をノイズリダクションしておく

そうすると、問題解決しました。

原因の類推)
moviepyとwindowsの音声持続時間の計算が違うのが理由かと。
windowsの最小単位は、秒。
moviepyの動画書き込み時には、秒以下にアクセスしているようです。
しかし、windowsのプロパティも参照しているように見えました。
なので、持続時間を変更することで、それが原因でのノイズが消えるのかと。

うまくいなかった方法)
フェードアウトを先にしておくとよいという記載があったので、してみましたが
リフレインが発生して使えませんでした。

要は、各音声ファイルに、十分な最後の無音部分があるとよいように思えました。
ノイズリダクションし、かつ無音を追加すると、問題が解決しました。

moviepyでのクリップの合成は、合成の設計図を書いているだけで、そこでは実際は合成してないんですね。レンダリング、ここではライティングで、その設計図を元に合成しているということがわかりました。なので、エラー発生は、クリップの合成時ではなく、書き込み時(レンダリング時)で発生しやすかったです。

WEBプログム、WEBデザインなどの制作については、以下を御覧ください。

WEBプログム、WEBデザインなどの制作