AviUtlプラグインを作成するにあたって参考になる情報ならなんでも。
今のところこのページを書いているのは、公開されていたフィルタプラグインのソースを微改変してBCCでビルドしてみたら一応動くプラグインが作成できて胸をなでおろしたという、プログラミングに疎い本Wiki管理人のみであり、各プラグイン作者様のサイトを巡るうちにプラグイン作成に関係していそうだと思った情報をまとめているだけに過ぎません。間違いを書いているかもしれない点をご留意ください。
更新情報、抜け、御意見などありましたらお願いします。
YUY2フィルタモードについてはAviUtlの正式な機能ではなく テスト的なおまけ機能として考えていますので 試してみたい人のみ対応させてください。と書いていて、機能自体の先行きが不明なこともあってか、対応しているフィルタプラグインはごくわずか。「YUY2フィルタモード」に対応させるよりは、他の高速化(CPU高速化命令、マルチスレッド、GPU利用など)に対応した方が、フィルタプラグインとして利用されやすいはず。
- (2003-08-16更新)jp_resource.rc
- サンプル日本語リソース(言語拡張リソース) for AviUtl ver0.99
- (2009-05-30更新)color.h
- 色変換プラグイン ヘッダーファイル for AviUtl version 0.99h 以降
- (2009-06-14更新)yuy2_color.cpp(#include "color.h")
- サンプルYUY2色変換プラグイン(色変換プラグイン) for AviUtl ver0.99h以降
- (2008-03-16更新)input.h
- 入力プラグイン ヘッダーファイル for AviUtl version 0.99d 以降
- (2002-05-03更新)avi_input.cpp(#include "input.h")
- サンプルAVI(vfw経由)入力プラグイン for AviUtl ver0.98以降
- (2009-01-24更新)output.h
- 出力プラグイン ヘッダーファイル for AviUtl version 0.99g4 以降
- (2008-05-27更新)bmp_output.cpp(#include "output.h")
- サンプルBMP出力プラグイン(出力プラグイン) for AviUtl ver0.98以降
- (2010-02-13更新)filter.h
- フィルタプラグイン ヘッダーファイル for AviUtl version 0.99i4 以降
- (2000-10-19更新)audio_filter.cpp(#include "filter.h")
- サンプルオーディオフィルタ(フィルタプラグイン) for AviUtl ver0.96c以降
- (2002-05-03更新)importexport_filter.cpp(#include "filter.h")
- サンプルIMPORT&EXPORTプラグイン(フィルタプラグイン) for AviUtl ver0.96c以降
- (2002-07-23更新)disp_filter.cpp(#include "filter.h")
- サンプル表示プラグイン(フィルタプラグイン) for AviUtl ver0.98c以降
- (2002-07-24更新)loupe_filter.cpp(#include "filter.h")
- サンプル表示プラグイン(フィルタプラグイン) for AviUtl ver0.98c以降
- (2007-11-02更新)yuy2_filter.cpp(#include "filter.h")
- YUY2フィルタモード対応サンプルフィルタ(フィルタプラグイン) for AviUtl ver0.99a以降
- (2008-05-22更新)multithread_filter.cpp(#include "filter.h")
- マルチスレッド対応サンプルフィルタ(フィルタプラグイン) for AviUtl ver0.99a以降
- (2008-07-25更新)video_filter.cpp(#include "filter.h")
- サンプルビデオフィルタ(フィルタプラグイン) for AviUtl ver0.99e以降
- (2009-06-25更新)interlace_filter.cpp(#include "filter.h")
- サンプルインターレース解除プラグイン for AviUtl ver0.98以降
- (2009-09-13更新)edit_filter.cpp(#include "filter.h")
- サンプル編集プラグイン(フィルタプラグイン) for AviUtl ver0.99i以降
また、下記の条件のフィルタは扱えません。 ◇トラックバーが 32 個を超えるもの ◇チェックボックスが 16 個を超えるもの ◇フィルタの名前が 63 バイト以上のもの ◇拡張データ領域が 1024 バイトを超えるもの ◇func_proc が無いもの ◇下記のフラグを使用しているもの FILTER_FLAG_DISP_FILTER, FILTER_FLAG_INTERLACE_FILTER FILTER_FLAG_CONFIG_POPUP FILTER_FLAG_CONFIG_CHECK FILTER_FLAG_CONFIG_RADIO FILTER_FLAG_RADIO_BUTTON FILTER_FLAG_WINDOW_HSCROLL FILTER_FLAG_WINDOW_VSCROLL(リサイズ処理系のフィルタはこの条件に引っかかってしまっている場合が多いのか、拡張編集プラグイン上で扱えるものは少なく感じました)
まずは本家。こちらの「AviUtl Plugin SDK」は必須。
2009-01-24に公開された文書「AviUtlの内部形式について」は必読(dgwxx氏による和中(?)翻訳(仮?):关于AviUtl内部颜色格式も現れました)。「Pixel YC」を含めた内部処理について詳細にまとめられている。
AviUtlプラグインの作り方で、画像処理(プログラミング)を主軸にフィルタ作成の解説。「Microsoft Visual Studio.NET」「MinGW(gcc)」「Borland C Compiler」「Visual C++ Toolkit 2003」など各種開発環境も念頭に書かれている(?)。
以下、開発環境で大まかに分類。
MinGWでAviUtlプラグイン作成で、“完全フリーのWindows用の(最低限の)プログラミング開発環境”であるMinGWでのAviUtlプラグインのビルドまでを解説。「おまけ」として「YUY2とPIXEL_YC(AviUtlの内部ピクセルフォーマット)の相互変換」も書かれている。
日々の戯言 2001年9月に、「BCC (Borland C++ Complier)を用いたM4Cの作り方」が書かれている(M4Cという出力プラグインは…サイト内で検索してください)。MMXやSSEの最適化にも踏み込んでいる?
BCC(Borland C++ Complier)でのプログラミングの解説で、管理人が初めに検索して参考にしたページ。AviUtlプラグイン解説に特化されているわけではないが、ちょうどDLL作成まで触れられているので一応。
日々の戯言 2005年1月に、「VC.NET での拡張 AVI 出力ビルド方法」と称してVC.NET 系での AviUtl 用プラグインのプロジェクト作成方法が書かれている。
AviUtlのプラグインフィルタをデバッグに以下のような説明あり。
AviUtlの自作プラグインを作る際にデバッグできないと大変なのでその方法をチョロっと紹介。VisualStudio2005(VisualC++)での方法です(今更2005?・・)。っていうか半分ジブン用メモ。自己流なのでホントは もっと良い方法や しておいた方がよい設定 などがあるに違いない・・・。
ビルド/とりあえずにて、Visual C++ 2008 Express Edition などの開発環境でのビルド体験。またメモにて「MTオプション」「SSE2」などの小ネタ集あり。
<あなたも、プラグイン作ってみません?>コーナー(WebArchive)にて、AviUtlではなくAviSynthのプラグイン作成手順例が書かれている。AviUtl向けではないものの、AviSynthも動画を扱うソフトのためか映像フォーマット自体の解説などもあって、AviUtlプラグインを作成するにあたっても参考にできる部分が多い。
以上で紹介したページだけでなく、ソースが公開されている各種AviUtlプラグインも大いに参考になると思います。