あれやこれやと調べたものの…
複数のシーンをConcatしたい
Manimで1つのファイルの中で、いくつかの'Scene'に分けて作ったのだけど、
もちろん別々にレンダリングしたら、出来上がる動画ファイルは複数に分かれるワケで…。
その出来上がった動画ファイル全てをつなげて1つの動画ファイルにしたかったのだけど、これもちょっと色々ありました。
ffmpegのconcat
Manimの仕組みとしては、単一のシーンであっても、アニメーション単位で一部分の動画(partial_movie_files)が生成されて、
ffmpegによってシーン単位で1つの動画にまとめるconcat処理をするみたい。
と最初は考えていたのだけど。
ここを参考にconcatを試してみたのだけど、出来上がった動画がどうもおかしい。
シーン同士のつなぎ目、つまり、つなげる前のそれぞれの動画間で、映像と音声が合わなくなってる。
と思って、色々探ってみると、映像トラックと音声トラックのduration(全長)が違っているのが原因だと判明。
manim-voiceoverで音声を追加していたのだけど、もちろん動画の間、ずっと音声が流れているわけではなく、
音声トラックの最後からまだアニメーションは続くようになっているので、全長が異なる、と。
その全長を調整できりゃよかったのだけど、どうにもffmpegの仕様が分からんので、ここでffmpegでconcatする方法を断念。
結局aviutilを使った。
編集ツールとして、よく使われているだけあって、やっぱ優秀だよね。
ただ、私が全然使いこなせてねぇし、よく分かってねぇので、映像トラックと音声トラックで別々でプロジェクトに読み込んで、1つの動画にまとめたんだけど、なんかいい方法が他にあんのかな?