この前自動カット編集ができるスクリプトがあるらしいって話をしたんですが、今回試しに導入してみたって話ですね。
よくあるりどみみたいなやつがないので、どう使うんだろうとか思ってたんですけど、たぶん使い方はここに記載されてるって感じですね。
仕組みとしては、ffmpegで無音部分を抽出したファイルを生成し、それを元にキー操作をfinalcutの方に送信するっていうメカニズムみたいですね。原始的なのでわかりやすい。
ffmpegに関してはむかしちょっと触ったことがあるので雰囲気はわかります。
ということで、ffmpegのコマンドで無音区間のファイルを生成します。この例だと、-50dbの区間が0.3秒以上続くところをカットする、って感じですね。
で、引数に出力先を指定して生成って感じです。
するとこんな感じのファイルが生成されるので...
落としてきたプログラムに、コマンドライン引数としてこのファイルを渡してあげれば動くみたいです。
が、こっから沼ったんですけど、動きはするものの、ちょっとカットするタイミングがズレてて使い物にならなかったんですよね。
見てる感じだと、無音区間抽出はうまく行ってるっぽいんですけど、finalcut側とのタイムスタンプの数え方が違うのか、徐々にズレていくんですよね・・・・・・。
で、考えられる部分はここですね。この動画ファイルは
59.94fpsで撮影されている一方、finalcutの方では60fpsのデータとして編集しています。
そのズレを修正する必要があるみたいです。
で、スレッドを辿っていくとこういうエントリを見かけたので、これが怪しいなって思ったんですよね。
言いたいことは一致してるので、あとはこの
3603.6/3600という数式の出処がわかれば良さそうです。
たぶん23.98fpsと30fpsの差分をとってると思うんですけど、計算式が不安なので、もうちょっと確実な数値として、元データのフレーム数と、finalcut上でのフレーム数を比較することにします。
元データのフレーム数はここから計算できます。durationってのが時間なので、分を3600倍、秒を60倍してフレーム数を出せば良さそうです。
で、finalcutでも同様の計算を行うと・・・・・・
こうなりました。
あとはこの部分もこのようにファイルのフレームレートに合わせてあげると・・・・・・
それっぽくカットが自動でなされました。めーーーーちゃくちゃラクです。
もちろんこの後の細かい調整は手作業でやるにしろ、明らかに思考停止で出来る部分はまるまるカットできるので、時短になりそうだなって感じです。
まあ、ファイル単位でしかできないのがめんどくさいんですけど、それぞれクリップを作って、カットされたクリップデータをコピペすればいいだけの話なので、まあそれぐらいならやってあげてもいいかなって感じです(笑)
プログラムの具体的な挙動を理解してるわけじゃないので、ほんとにこれで合ってるのかわからないんですけど、まあ見てる限り正しく動いてるので良しって感じですね・・・・・・。
日本語の文献がない情報なんですけど、これ動画にしたら永続的な収益になるかなあ。うまくいくようであれば年明けぐらいに撮ってみようかな。需要はあると思うし。
チャンネル登録者にはマジで関係ない話なんですけど