datamoshの忘備録(aviutlとavidemux)
【2022/12/16 ちょっとだけ追記】
どうもlyqjwです、曲を投稿しました。
この曲の動画を作るために沢山データモッシュを使ったのですが、なかなかエラーが多く、方法を忘れてしまうと困るので忘備録を書きます。調べたとき有料のプラグインとか古いやり方とか英語のサイトとかばっか出てきて大変だったので……
※あくまでこれは忘備録として「とりあえずデータモッシュできた方法」を書いています。細かい設定などは分かりませんし他の方法でも普通にできると思います……
データモッシュについて
圧縮された形式の動画ファイルでは、完全な情報を持つ「Iフレーム」と、前のフレームとの差分情報だけを持つ「Pフレーム」があります。(Bフレームというのもありますが今回はエンコード設定により使用しないようにします)
二つの動画を結合する時に後ろの動画の最初にあるIフレームを削除すると、その後のPフレームが正常に描画されなくなり、壊れたような独特の動画になります。
今回はこの方法でデータモッシュを行っています。
使用ソフトとか
・使ってるPCはwindows10の64bit
・Aviutl(現在ver.1.00)
無料の動画編集ソフトです。私はこれを普段の動画編集に使っています。
今回はエンコード設定をいじるため、x264guiExプラグインが必要です。
・Avidemux(現在ver.2.7.5)
これも無料動画編集ソフトですが、エンコード設定時の挙動が不安定なので、今回は動画を結合してIフレームを削除するためだけに使います。
手順1.モッシュされる方の動画
(モッシュされるという言い回しが正しいかわかりませんが……)
前側に結合する動画です。こっちの動画は静止画から作ります。別に動きがある動画でもいいですが、モッシュ中はこっちの動画の動きは止まります。
とりあえずこのクラゲの画像を出力します……
「プラグイン出力」からx264出力を選択して「ビデオ圧縮」の設定をいじります。
とりあえず今使っている設定を載せておきます。この辺は詳しくないのでもっと適した設定がありそうです……
デフォルトから変更した点
・出てきたウインドウの右下にあるタブの「mkv」を選択して「外部muxerを使用」のチェックを外した。
これはmkvファイルを出力する為に必要らしいです。
左のタブの「フレーム」を選択して、
・「Bフレーム」の「最大連続Bフレーム数」を0にした。
・「GOP関連設定」の「キーフレーム間隔の下限」と「キーフレーム間隔の上限」を0にした。
この辺はデータモッシュの仕組み的に多分必要かなあと思ってます。
【2022/12/16追記】「GOP関連設定」の「シーンカット閾値」を0にすると、Iフレームが最初しか作られなくていい感じです。ただし、普通はあるIフレームも無い状態なので、途中からの再生とか長い動画の再生が重くなったりします。一長一短。
以上を設定したら出力です。
「ファイルの種類」を「mkv file」にして出力しましょう。
ファイル形式をmkvにする理由は、Avidemuxでのエンコード等のエラーが比較的起きにくいからです。
aviだとAviutlでの細かいフレーム設定が出来なかったり、mp4だとAvidemux側が読み込んでくれなかったりしたので、mkvが一番安定していると思います……
手順2.モッシュする方の動画
後ろ側に結合する動画です。こっちは動きのある動画を用意します。ですが、Iフレームが2つ入ってはいけないので(シーンチェンジの時とかによく入る)シーンチェンジの無い動画にしましょう。
とりあえずお猫様の動画です……!
さっきと同じ方法でエンコードすれば間違いないです。こっちの動画は比較的エラーが起きにくいのでmp4でもとりあえず動きました。
手順3.Avidemuxで結合する
いよいよAvidemuxの出番です……!
先ほど出力した動画を結合して、後ろの動画のIフレームを削除します。
「データモッシュされる側」→「する側」の順番で、Avidemuxのウインドウに動画をドラッグ&ドロップします。
これで二つの動画が結合された状態になります。ここからIフレームを削除します。
Avidemuxの操作方法として、キーボードの上下キーを押すと前後のIフレームに進み、左右キーで前後のフレームに進みます。また、左下に沢山あるボタンのうち、「A」と「B」と書かれたボタンで選択範囲を決定できます。
後ろ側の動画の最初のIフレームだけを選択し、Deleteキーでフレームを削除します。この時に「動画が破損しますがいいですか?」という内容のダイアログが出るので笑顔で「はい」を押します。
Iフレームを削除したら動画を保存します。この時にもダイアログが出るので笑顔で「はい」を押します。
くらげ猫ができました!!
以上です。読んで頂いてありがとうございました!