AviUtlで解析したロゴデータを使って、透過性ロゴを除去します。AviUtlの透過性ロゴフィルタのAviSynth版を使います
導入
AviSynth+では+用にビルドされたプラグインを導入する必要があるようです。AviSynth.infoさんのアーカイブでAviSynth+用にビルドされたプラグインが入手できます
外部リンク : AviSynth.info – アーカイブ
「delogo_avs+.zip」をダウンロードして解凍してください。x86_ICCフォルダにあるdelogo.dllはplugins+フォルダに配置してください。64bit版ユーザーの方は更にはx64フォルダにあるdelogo.dllを、AviSynthのplugins64+フォルダに配置してください
フィルタ
delogo.dllには以下の2つのフィルタが用意されています
- EraseLogo
- AddLogo
このページでは、ロゴを消す「EraseLogo」の使い方を確認していきます
EraseLogo
透過性ロゴを除去します。インターレースソースの場合は、インターレース解除前にロゴを除去しましょう
基本的な使い方
ロゴの名前、またはロゴのファイル名と開始フレーム、終了フレームを指定します。ロゴの名前を指定する場合は、AviUtlでlogodata.ldpを作成する必要があります
直接ロゴファイル名を指定する例
1 |
EraseLogo(logofile="C:\aviutl\xxx.lgd", start=0 end=5000) |
0フレーム~5000フレーム目まで、xxx.lgdのロゴを除去します
logodata.ldp経由の例
AviUtlで透過性ロゴ除去フィルタを使える状態にすると、logodata.ldpが作成されます
透過性ロゴフィルタの右下のオプションボタンを押すと、オプション画面が表示されます。追加ボタンからロゴを追加すると、logodata.ldpにロゴのデータが追加されます
この例では、xxx.lgdのロゴデータを、xxxという名前で追加してみました
では、このlogodata.ldpを使ってロゴを除去してみましょう
1 |
EraseLogo(logofile="C:\aviutl\logodata.ldp", logoname="xxx", start=0, end=5000) |
logofileにはlogodata.ldpのパスを、logonameには名前を指定します。処理結果はさきほどの例と同じになります
オプション
AviUtlのロゴ除去フィルタとAviSynthのEraseLogoフィルタのオプションは左の図のように対応しています
また、AviSynthにだけ「interlaced」というオプションが用意されています。デフォルトはTrueです。インターレースソースのものをインターレース解除前にロゴ除去する場合はTrueのままにしましょう
フィルタ挿入手順
EraseLogoフィルタをちまちま手動で書いていくのは非常に面倒です。簡単にEraseLogoフィルタを適応する手順を確認していきましょう
AviUtlの透過性ロゴフィルタを使う
AviUtlの透過性ロゴフィルタは、AviSynth用のスクリプトを作る機能を持っています
透過性ロゴフィルタを適応したい範囲を指定してAviSynthボタンを押すと、AviSynth用のスクリプトを出してくれます
これをコピーして貼りつければOKです。AviUtlでカットしてる方はそのままAviUtlでEraseLogoの部分のスクリプトを作ってしまうとスムーズかもしれません
AvsP用マクロでEraseLogoを挿入する
LANTIS様(http://lantis.homeunix.org/)<閉鎖?>のマクロを改造させていただいたものです
ダウンロード
こちらにある「EraseLogo_TrimSplit」です
AvsPmodがあるフォルダの、macrosフォルダの中に配置してください
初期設定
マクロをメモ帳などで開いてみてください。先頭の方に設定項目があります
1 2 3 |
# -- マクロ設定 ----------------------------------------------- # logodata.ldpのパス "\マーク" は使わず "/" でパスを表現してください LDP_FILE = "C:/aviutl/logodata.ldp" |
logodata.ldpのパスを指定してください。他の設定については別の機会に紹介するので、とりあえずスルーしておいてください
他事前準備
logodata.ldpを使うので、AviUtlで透過性ロゴフィルタを使える状態にする必要があります
先ほども左の画像は出しましたが、透過性ロゴオプションを開いてロゴを追加していく必要があります
また、このマクロは登録したフェード情報を読むので、開始/終了/フェードイン/アウトの情報があるロゴは登録していってください
ためしに終了を30で登録してみました
使い方
Trimまで書いたavsファイルに対してマクロを実行し、ロゴ名を指定します。例として
1 2 3 4 5 6 7 8 |
v = LWLibavVideoSource( "xxxx.ts", dr=true, repeat=true, dominance=1 ).AssumeFPS( 30000, 1001 ) v = v.height() == 1088 ? v.crop( 0, 0, 0, -8 ) : v a = LWLibavAudioSource( "a", av_sync=true ) AudioDub( v, a ) Trim(3026,43095)++Trim(45194,87569) return last |
こんなavsファイルを開いて実行してみました
こんなGUIが出てくるので、ロゴ名を指定してOKをします。すると
1 2 3 4 5 6 7 8 9 10 11 |
v = LWLibavVideoSource( "xxxx.ts", dr=true, repeat=true, dominance=1 ).AssumeFPS( 30000, 1001 ) v = v.height() == 1088 ? v.crop( 0, 0, 0, -8 ) : v a = LWLibavAudioSource( "a", av_sync=true ) AudioDub( v, a ) Trim(3026,43095)++Trim(45194,87569) logo = "xxx" EraseLogo(logofile="C:/aviutl/logodata.ldp",logoname=logo, start=0+0, fadein=0, end=40069-30, fadeout=0) EraseLogo(logofile="C:/aviutl/logodata.ldp",logoname=logo, start=40070+0, fadein=0, end=82445-30, fadeout=0) return last |
Trimの下にEraseLogoフィルタが挿入されました。この例だとendがー30になっていますが、先ほどのロゴ登録時に、終了30で登録したからです
ブックマーク整理にチェックが入っていると、すべてのブックマークを消して、Trimの始点にブックマークを打ちます(この例だと0と40070フレーム目)
ロゴ位置取得にチェックを入れていると、ロゴの座標を表示します
Trim分割についてはまた別の機会に
コメント