AviUtlとAviSynthで中間フレームを推定して追加する、過去のフレーム補間の検証記録です。欠落した映像を元どおりに復元する処理ではありません。
録画済みの映像そのものがカクつく場合を扱います。再生中だけPCの処理が追いつかない場合は、まず再生環境を確認してください。本記事の手順は従来のAviUtl向けで、AviUtl2での動作手順ではありません。
フレーム補間に必要な環境構築(AviUtl・AviSynth)
フレーム補間を行うには、AviUtl本体に加えてAviSynthや専用プラグインの導入が必要です。
当時の各ツールの厳密なバージョンは記録されておらず、現行環境での再実行も未確認です。AviUtl、AviSynth、入力プラグイン、MVToolsは対応する32bit/64bitをそろえる必要があります。旧AviUtl用の構成に64bit用DLLを混在させないでください。
スクリプト記述によって高度な動画処理を行えるツールです。
下記は旧AviSynthの配布先です。後述のパスはAviSynth+の例であり、同じ製品・配置場所ではありません。導入した版の説明書に従ってください。
AviSynthでフレーム補間処理を行うためのプラグインです。
導入したAviSynthのプラグイン読み込み先へ、対応するMVToolsのDLLを配置します。次のパスは一例なので、存在するフォルダと導入版の指定を確認してください。
C:\Program Files (x86)\AviSynth+\plugins\mvtools2.dll
ここで使うのはwarpsharp配布物に含まれていた入力プラグインavsinp.auiです。warpsharp全体の機能を指す説明ではありません。
解凍したフォルダ内にあるavsinp.auiを、aviutl.exeと同じフォルダに配置します。
配置後、短い素材の読み込みから試してください。DLLや入力プラグインの導入だけでは動作確認は完了しません。
AviUtlとAviSynthで動画をフレーム補間する手順
必要なプラグインの準備が完了したら、スクリプトを作成してフレーム補間を実行します。
新規テキストファイルを作成します。
下記は当時使用したコードです。末尾のMBlockFpsでnum=60、den=1を指定し、60fpsへ変換します。設定値は素材に合わせて調整するもので、すべての映像で最適とは限りません。
コードが表示されない場合は、元のGistでtext.avsの全文を開けます。
このコードは入力、色形式の変換、動きの解析、補間の順に処理します。
最初は別の確認用AVSに入力の1行だけを書き、映像・音声・長さを確認してから全文の処理へ進むと、入力と補間のどちらで失敗したかを切り分けられます。
MBlockFpsの出力fpsはnum / denです。
掲載コードのnum=60, den=1は60fpsで、29.97fps(30000/1001)を2倍の約59.94fpsにする指定はnum=60000, den=1001です。
納品先の指定を確認し、60fpsと59.94fpsを同じ値として扱わないでください。
以下は当時の入力行変更の例です。DirectShowSourceで読み込める形式は、導入済みのデコーダーにも依存します。拡張子だけで読み込み可否は決まりません。
AVIsource("C:\Users\ユーザー名\Desktop\test.avi") ↓
DirectShowSource("C:\Users\ユーザー名\Desktop\test.mp4")DirectShowSourceの公式説明では、正確なフレーム位置への移動に対応しないデコーダーがあるとしています。可変フレームレート素材では、読み込み後の長さと音声同期も確認してください。
同資料はAVIにはまずAVISource、それ以外にはFFmpegSourceやLSMASHSourceを試し、うまくいかない場合にDirectShowSourceを試す順を案内しています。
MP4なら入力行だけを置き換えれば必ず読める、という手順ではありません。
別の入力プラグインを採用する場合は、対応する32bit版と配布元の導入手順を確認してください。
AVISourceの仕様にも入力形式やデコーダーによる制約があるため、読み込めないときは元ファイルの形式とエラー全文を記録します。
スクリプト内の動画パスを実在するファイルの場所に変更し、test.avsとして保存します。拡張子がtest.avs.txtになっていないか確認し、元動画は別に保存しておきます。
AviUtlを起動します。
作成したtest.avsをAviUtlのウィンドウへドラッグ&ドロップします。
読み込めたら、出力フレームレート、動画の長さ、音声の有無を確認します。動きの速い部分と場面の切り替わりをコマ送りし、輪郭の二重化やブロック状の崩れがないか確認してください。
上部メニューの「ファイル」>「AVI出力」で、元動画と別の名前に書き出します。まず短い範囲で試し、保存後のファイルでも60fpsになっているか、長さ・音声同期・補間による崩れを確認します。圧縮方式によって容量と画質が変わるため、AVI形式というだけで無劣化になるわけではありません。
当時の素材でのフレーム補間結果
- 8fps → 60fps:破綻が目立ち実用には厳しい品質
- 24fps → 60fps:やや違和感はあるものの実用許容範囲の品質
- 30fps → 60fps:破綻が少なく自然で実用的な品質
上の評価は当時使った素材に対する主観的な記録です。元フレームレートの倍率だけで品質は決まらず、速い動き、物体の重なり、場面転換などでも結果が変わります。
当時は30fpsから60fpsへの変換で自然に見える結果を得ましたが、元の検証ファイルを使った再比較は今回行っていません。
動画編集に関するそのほかのノウハウは、下記のまとめ記事から確認できます。

画質劣化を防ぐ可逆圧縮での出力設定は、以下の記事で解説しています。

AviUtlの記事は、ほかにもあります。


【AviUtl】カクついた動画をフレーム補間して修正する方法まとめ
AviUtlとAviSynthによる補間は、中間の動きを推定して見え方を変える処理です。MVToolsのMBlockFpsの説明にも、ブロック状の崩れなどが生じうることが記されています。
当時のスマホゲーム実況素材では、VTuberのアバターのコマ落ちが補間後に目立ちにくくなったと記録しています。
再撮影が難しい映像素材のカクつきを抑えたいときのリカバリー手段として役立ちます。



よくある質問:AviUtlとAviSynthでカクついた動画をフレーム補間する方法
この記事では、何をする方法を紹介していますか?
録画済みの映像に中間フレームを推定して追加した過去の検証です。欠落した映像の復元や、PCの再生性能の改善を保証するものではありません。
どんな環境が必要ですか?
フレーム補間を行うには、AviUtl本体に加えて、AviSynthや専用プラグインの導入が必要です。記事では、AviUtl(動画編集用のフリーソフト)、AviSynth(スクリプト記述によって高度な動画処理を行えるツール)、MVTools(AviSynthでフレーム補間処理を行うためのプラグイン)、warpsharp配布物に含まれていた入力プラグインavsinp.auiの4つを導入します。
MVToolsとwarpsharpは、どこに置きますか?
MVToolsのDLLは、導入したAviSynthのプラグイン読み込み先へ配置します。本文のpluginsフォルダは一例で、導入版の説明書を確認してください。旧手順のavsinp.auiは、aviutl.exeと同じフォルダに配置します。
フレーム補間の手順は?
新規テキストファイルを作成し、記事のコードを貼り付けます。スクリプト内の動画パスを対象ファイルの場所に変更し、ファイル名をtest.avsとして保存します。AviUtlを起動し、作成したtest.avsをAviUtlのウィンドウへドラッグ&ドロップして、読み込み後に出力fps・長さ・音声同期を確認し、動きのある部分をコマ送りして補間結果を確認します。プレビューに表示できたことだけでは判定できません。
AVI以外の動画ファイルを読み込むには?
入力行を対応する読み込み関数へ変更します。DirectShowSourceの例は、対応デコーダーがある環境に限られます。可変フレームレートやフレーム位置への移動、音声同期にも注意が必要です。
どんな場面で役立ちますか?
スマホゲーム実況の撮影時にVTuberのアバター動作がコマ落ちしてしまった場合でも、この手順で滑らかな動画素材へと改善できたとしています。再撮影が難しい映像素材のカクつきを抑えたいときのリカバリー手段として役立ちます。
補間した動画を、劣化させずに書き出すには?
再圧縮による画質低下を抑える設定は関連記事で解説しています。ただし、可逆圧縮で保存しても、補間で生じた映像の崩れが直るわけではありません。
記事の手順は、いまの環境でも同じですか?
記事は、当時のAviUtlとAviSynth、各プラグインを使った検証記録です。ツールの配布状況、バージョン、対応環境は変わることがあります。実行前に、各ツールの配布元で最新の情報を確認し、元の動画は別に保存しておいてください。
2026年10月26日に埋め込みGistの全文、AVISource・DirectShowSourceの説明、MVToolsのMBlockFps節を読み直しました。
今回、AviUtlでの導入・読み込み・補間・出力は実行しておらず、現行版の組み合わせでの動作を確認した記録ではありません。
