これは、かつて「AviSynthのぺーじ」として公開されていたものの"残骸"です。以下に記されている内容には、間違いが含まれている可能性があります。より正確で新しい情報を知りたい場合は、AviSynth付属のドキュメントや公式サイト(http://www.avisynth.org/)を参考にすることをおすすめします。また、このページは、予告なしに削除される可能性もあります。
AviSynthにおけるCM編集
1.Trim
 AviSynth内蔵フィルタのTrimを使って、選択範囲を指定することができます。

 Trimの書式は次の2通りです。
Trim(開始フレーム番号, 終了フレーム番号)
Trim(開始フレーム番号, -フレーム数)
 たとえば、100番のフレームから199番のフレームまでを選択したい場合、次のように記述します。
Trim(100, 199)
 また100番のフレームから100フレーム分を指定したい場合は、次のように記述することもできます。
Trim(100, -100)
 「100番のフレームから199番のフレームまでを選択」するのと「100番のフレームから100フレーム分を指定」するのは同じことを意味しますので、「Trim(100, 199)」と「Trim(100, -100)」はまったく同じ意味になります。

 ただし例外的に、終了フレーム番号を0にした場合は、フレーム番号0ではなくクリップの最後を意味します。このため、たとえばフレーム番号0のみ(1フレーム分)を選択したいときは、
Trim(0, 0)
ではなく、
Trim(0, -1)
と記述する必要があります。「Trim(0,0)」は、0番〜最終フレームまでを選択範囲として指定してしまうからです。

 また、複数の選択範囲をつなげて、一つのクリップとしてエンコードしたい場合には、次のように記述します。
Trim(A,B) ++ Trim(C,D) ++ Trim(E,F)・・・
 たとえば、フレーム番号100から199まで、200から299まで、300から399までを一つのクリップにする場合、
Trim(100,199) ++ Trim(200,299) ++ Trim(300,399)
と書きます。
[フレーム番号の数え方]
 AviSynthではフレーム番号は0から始まります。編集ソフトによっては1から始まるものもありますので注意してください。AviUtlは「1から数える」か「0から数える」かをシステム設定で変更することができます(デフォルトは1から)。
[ + と ++ の違い]
 +はUnAlignedSplice(非直線的結合)、++はAlignedSplice(直線的結合)に相当します。両者の違いは、音声トラックの扱いにあります。+(UnAlignedSplice)は、映像との同期を考慮せず、単純に連結するのに対し、++(AlignedSplice)は、次の音声トラックが映像と同期するように、前の音声トラックと切り離したり、無音を挿入したりします。
 一般的に、AVIファイルを結合するような場合には「+」を使います。

2.AddRangeプラグイン
 VirtualDub、VirtualDubModやNanDubなどの編集設定ファイル(*.vcf)とkiraru2002さん作成のAddRangeプラグインを使う方法です。AddRangeプラグインはKiraru2002の部屋から入手してください。

・AddRange(Kiraru2002の部屋)
 http://members.at.infoseek.co.jp/kiraru2002/

 AddRangeプラグインは、vcfファイル内に次のような記述があるものに対応しています(※AddFrameとAddMaskedRangeはVer0.5以降で対応)。
VirtualDub.subset.AddRange ( 999 , 999 )
VirtualDub.subset.AddFrame ( 999 , 999 )
VirtualDub.subset.AddMaskedRange ( 999 , 999 )
※AddRangeプラグインの説明書からの引用。AddFrameはNanDubのvcfファイルで使われます。
 ここでは主にVirtualDubModを使って説明します。
(1)AVSファイルを開く

 VirtualDubModで編集したいAVSファイルを開きます。

 フィルタをかけた状態のAVSファイルだとシークが重くなりますので、フィルタをかけないか、必要最低限のフィルタのみ有効にしておくことをおすすめします。
(2)不要部分の削除

 不要な部分を選択範囲指定し、削除していきます。

 @選択開始([Edit]->[Set selection start]/[Home])
 A選択終了([Edit]->[Set selection end]/[End])
 B選択範囲の削除([Delete])
C選択範囲をマスク(選択開始フレームと同じ画像に)することもできます。

 すべての不要部分を削除するまで、@AB(またはC)を繰り返します。
(3)vcfファイルの保存

 すべての不要部分を削除し終えたら、[File]->[Save processing settings]から、VirtualDubModの編集設定ファイル(*.vcf)を保存します。

 ここでVirtualDubMod上での編集作業は終わりになります。つづいてAVSファイルを再編集します。
[VirtualDub1.5.8/VirtualDubMod1.5.10.1以降でのvcf保存時の注意]
 VirtualDub1.5.8/VirtualDubMod1.5.10.1以降の場合、vcfファイルの保存ダイアログ画面左下にあるチェックボックスを有効にしてください。ここにチェックを入れないと、vcfファイルに選択範囲指定の情報が保存されません。
(4)AVSファイルの再編集

 AddRangeプラグインを使って、さきほど保存したvcfファイルを読み込みます。

 AVSファイルに次の2行を追加します。
LoadPlugin("AddRange_for_25.dll") #Avisynth1.0/2.0用はAddRange.dll
AddRange("設定ファイルの名前.vcf")
 オートローディング機能を使ってプラグインを読み込む場合は、一行目のLoadPlugin(〜)は必要ありません。



 AddRangeの使用例です。では、このAVSファイルをVirtualDubModで読み込んでみます。



 vcfファイルの情報を使って、VirtualDubModで行ったとおりにトリミングされます。

※詳しくはAddRangeプラグイン添付の説明書(AddRange.txt)を読んでください。

3.AddRange関数
(1)vcfファイルの作成

 AddRangeプラグインの解説を参考に、vcfファイルを作成してください。ここまでの手順はAddRangeプラグインの場合と一緒です。

(2)AddRange()部分を抜き出す

 メモ帳で設定ファイル(*.vcf)を開きます。
 メモ帳のウィンドウ上にvcfファイルをドラッグ&ドロップします。
 vcfファイル内には、左の図の赤く囲んでいる箇所のようにAddRange(a,b)という部分があると思います。
 AddRange(a,b)の部分を上から順に一つずつコピーし、編集したいAVSファイル内に貼り付けます。その際、次のようにAddRange(a,b)を+(または++)で順番に連結させていきます。
AddRange(0,6) + AddRange(13,3) + AddRange(20,4)
(3)AddRange関数の追加

 次のAddRange関数を、スクリプト内の任意の場所に記述します。
# AddRange関数
function AddRange(clip clip, int "startframe", int "offset")
{
return clip.Trim( default(startframe,0), ((default(offset,0)==0)? 0 : startframe+offset-1) )
}


 AddRange関数の使用例です。画像の幅が大きくなりすぎないように5-6行目で改行していますが、上の関数と同じものです。

 これでAddRangeプラグインを使用した時と同じように、VirtualDubMod上での選択範囲指定が適用されるようになります。
最終更新日 2003年12月4日