お前らのショボイAvisynthスクリプト貼ってくださいpart3

このエントリーをはてなブックマークに追加
1名無しさん@編集中
「AviSynthを絶賛」というのは、聞いたら答えたり報告したりなどギブアンドテイクな作業を指す。
厨と呼ばれて当然の事を、調べもしないで訊くバカが住み着くスレではないので、
以下の日本語解説サイトぐらいは読んでおくように。

【前スレ】
http://pc11.2ch.net/test/read.cgi/avi/1206362521/

【日本語による解説】
AviSynth Wiki
http://www.avisynth.info/

【実家】
AviSynth
http://www.avisynth.org/

過去スレ、プラグインの検索はWiki参照
お前らのショボイAvisynthスクリプト貼ってくださいpart2
http://pc11.2ch.net/test/read.cgi/avi/1153487392/l50
2名無しさん@編集中:2009/02/18(水) 21:24:24 ID:goZAzE5q
前スレ
お前らのショボイAvisynthスクリプト貼ってください
http://pc8.2ch.net/test/read.cgi/avi/1030537641/

関連スレ
Avisynthを絶讃ιょぅょ Part26
http://pc11.2ch.net/test/read.cgi/avi/1228216385/l50

3名無しさん@編集中:2009/02/19(木) 00:34:15 ID:oSuony5z
Vim compiler file
Avisynthスクリプトのデバッグ用に

" Vim compiler file
" Compiler: vdub
" Last Change: 19-Feb-2009.

"" 使い方 {{{1
" VirtualDub 付属の vdub.exe のパスを設定。
" $HOME/vimfiles/compiler に vdub.vim として、このスクリプトを置く。

" .vimrc に以下を記入。

" :grep や :make の実行後、自動的に QuickFix ウィンドウを開く
" (注意: vim7 以降で利用可能)
" ttp://vimwiki.net/?tips%2F66

"au QuickfixCmdPost make,grep,grepadd copen
"au QuickfixCmdPost l* lopen

" ScriptClip などのデバッグ用
" ctrl + return で VirtualDub を編集中のスクリプトを読み込ん
" で起動。
"au BufRead *.avs,*.avsi map <C-CR> :!start "E:/home/hoge/bin/VirtualDub/VirtualDub.exe" "%:p"<CR>
4名無しさん@編集中:2009/02/19(木) 00:36:06 ID:oSuony5z
"" 使用上の注意
" AviSynthスクリプト名、及びパスにマルチバイト文字や半角スペ
" ースを使わないこと。そうしないと、エラーの箇所にジャンプし
" ない。

" AviSynthスクリプトの返り値が clip でないときは、デバッグの
" ときスクリプトの最後にでも BlankClip を置いておく。}}}

if exists("current_compiler")
  finish
endif
let current_compiler = "vdub"

if exists(":CompilerSet") != 2    " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif

" :help errorformat
set efm=%-GVirtualDub%.%#,%-GCopyright%.%#,%-Gavi%.%#,%Z(%f\\,\ line\ %l),%Z(%f\\,\ line\ %l\\,\ column\ %c),%A%m,%-G%.%#
CompilerSet makeprg=E:/home/hoge/bin/VirtualDub/vdub\ %

" vim:set fdm=marker:
5名無しさん@編集中:2009/02/19(木) 19:22:52 ID:4Ms0ngha
まじでvim設定乙
しかしあの荒らしは酷かったな
6名無しさん@編集中:2009/02/24(火) 03:25:06 ID:TLTH5vib
前回張った入門者用(MeGUI用)スクリプトの対となるバッチ処理プログラムです DGIndex(Audio)からリファレンスAVSを参照してファイル名を変換します
Avisynthスクリプトじゃないですが対となるので、どうぞ、お許しください

AVS名生成.bat

@echo off
:FILEDROP
VERIFY OTHER 2>nul
SETLOCAL ENABLEEXTENSIONS
IF ERRORLEVEL 1 echo 拡張機能を有効にできません
rem
rem ファイル名に連続するスペースがあるものは対応しきれていません 連続するスペースは1個のスペースとしてファイル名の調整をしてください
rem
rem バトルスターギャラクティカ 第1話 (序章).mpg                 ソースファイル名 ※この時点でスペースを調整する方が無難
rem バトルスターギャラクティカ 第1話 (序章) Tc0 L2 2ch 48 384 DELAY -93ms.mp2  DGIndexで自動作成 <このバッチ処理にドロップすると生成される
rem バトルスターギャラクティカ 第1話 (序章).d2v                 DGIndexで自動作成
rem バトルスターギャラクティカ 第1話 (序章) DELAY -93msAM.avs AVS名生成バッチで自動生成したAVSファイル名(A,M,Dを選択する)
rem バトルスターギャラクティカ 第1話 (序章).d2v MeGUIに自動生成したAVSで読込するとd2v名不一致になる
rem
7名無しさん@編集中:2009/02/24(火) 03:26:35 ID:TLTH5vib
CD %~p1
for /f "tokens=1-20" %%1 in ("%~n1") do (if %%2==T80 (if %%5==DELAY set newname=%%1 %%5 %%6D&&set option=%%2 %%3 %%4&&goto :start))
for /f "tokens=1-20" %%1 in ("%~n1") do (if %%3==T80 (if %%6==DELAY set newname=%%1 %%2 %%6 %%7D&&set option=%%3 %%4 %%5&&goto :start))
for /f "tokens=1-20" %%1 in ("%~n1") do (if %%4==T80 (if %%7==DELAY set newname=%%1 %%2 %%3 %%7 %%8D&&set option=%%4 %%5 %%6&&goto :start))
for /f "tokens=1-20" %%1 in ("%~n1") do (if %%2==Tc0 (if %%7==DELAY set newname=%%1 %%7 %%8AM&&set option=%%2 %%3 %%4 %%5 %%6&&goto :start))
for /f "tokens=1-20" %%1 in ("%~n1") do (if %%3==Tc0 (if %%8==DELAY set newname=%%1 %%2 %%8 %%9AM&&set option=%%3 %%4 %%5 %%6 %%7&&goto :start))
for /f "tokens=1-20" %%1 in ("%~n1") do (if %%4==Tc0 (if %%9==DELAY set newname=%%1 %%2 %%3 %%9 %%10AM&&set option=%%4 %%5 %%6 %%7 %%8&&goto :start))
echo 現在このレイアウトには対応していません &&pause&&exit
:start
set reference=D:\DVD-R\新規差分ファイル(20090207-)\リファレンス.avs
set convert=D:\DVD-R\新規差分ファイル(20090207-)\convert.cmd
set rewrite= %option%
set findstr=Undefined
type nul>temp.tmp
echo:%newname%.avs>>temp.tmp
echo:%reference%>>temp.tmp
echo:%rewrite%>>temp.tmp
echo:%findstr%>>temp.tmp
if exist "%newname%.avs" (echo %newname%.avsが存在します &&pause&&del temp.tmp&&exit)
if not exist "%reference%" (echo "%reference%"が存在しません &&pause&&del temp.tmp&&exit)
call cmd /v:on /c "%convert%"
echo %newname%.avsを作成しました
8名無しさん@編集中:2009/02/24(火) 03:27:19 ID:TLTH5vib
echo:
findstr /n "!" "%reference%"
echo:
echo このバッチ処理では「!」があるものは出力時に削除されてしまいます「!=」を「<>」等に変更してください
echo (上記空欄にソース行が表示された場合「!」が含まれています ソースを確認の上対処してください)
pause
del temp.tmp
exit
9名無しさん@編集中:2009/02/24(火) 03:28:05 ID:TLTH5vib

convert.cmd

@echo off
set newname=nul
set reference=nul
set rewrite=nul
set findstr=nul
for /f "usebackq tokens=1* delims=" %%a in (temp.tmp) do (if !newname!==nul (set newname=%%a) else (
if !reference!==nul (set reference=%%a) else (if !rewrite!==nul (set rewrite=%%a) else (if !findstr!==nul (set findstr=%%a)))))
type nul>"%newname%"
for /f "usebackq tokens=1* delims=" %%a in ("%reference%") do (set line=%%a&&set out=!line:%findstr%=%rewrite%!&&echo:!out!>>"%newname%")
goto :eof
10名無しさん@編集中:2009/02/24(火) 03:38:05 ID:TLTH5vib
>>6 すいません どうも空白が詰められてしまったようでわかりにくいですが、上記例題のrem文3行は下の2行より空白が1バイト多いものとしてお考えください
   尚、1バイトの空白は重要なものもありますので無闇に詰めないでください ※convert.cmdはサブルーチンになります
11名無しさん@編集中:2009/02/24(火) 03:45:24 ID:TLTH5vib
>>6  後、前回のソースで以下の部分が変わりました ※バッチ処理で"Undefined"のところが書き変わります


global Plugin="C:\Program Files\AviSynth 2.5\plugins+\" global Audio_mp2="Undefined" global Audio_ac3="Undefined"


#-------------------------------------------------
# DGIndex / READ Video_File.d2v Audio_File.mp2(ac3)
#-------------------------------------------------
#----------------------AV_Get---------------------
function AV_Get(string "mode", string "script_path", bool "AC3_DownMixS")
{
Video_path = Leftstr(script_path,Findstr(script_path,"DELAY") -2 )
Error_name = Rightstr(script_path,Findstr(Revstr(script_path),"\") - 1)
Video = Exist(Video_path+".d2v") ? MPEG2Source(Video_path+".d2v") : Assert(false,+Error_name+".d2v"+" : File not found")
Audio_Delay = Midstr(script_path,Findstr(script_path,"DELAY") + 6 )
Audio_Delay = Leftstr(Audio_Delay,Findstr(Audio_Delay,"ms") - 1 )
Audio_option= mode<>"D" ? Audio_mp2+" DELAY "+Audio_Delay+"ms.mp2" : Audio_ac3+" DELAY "+Audio_Delay+"ms.ac3"
Exist(Video_path+Audio_option) ? nop() : Assert(false,+ Error_name+Audio_option+" : File not found")
st_ch = AC3_DownMixS ? 2 : 6
Audio_Source= mode=="D" ? "Effect_AC3(NicAC3Source(Video_path+Audio_option,st_ch))" : "NicMPG123Source(Video_path+Audio_option)"
Eval("AudioDub(Video," + Audio_Source + ")")
return last
}

12名無しさん@編集中:2009/02/24(火) 04:08:19 ID:TLTH5vib
>>6 たびたび申し訳ありません  for /f の後ろの空白1バイトが詰まっていました お手数ですがエラーがでたら対処をお願いします
13名無しさん@編集中:2009/02/24(火) 22:51:22 ID:TLTH5vib
>>6 どうも、マルチチャンネルだと雑音が入るみたいなので修正版をおいときます

#--------------------Effect_AC3------------------
function Effect_AC3(Audio)
{
org_ch=Audiochannels(Audio)
F_L= org_ch>=1 ? GetChannel(Audio,1).AmplifydB(8.80) : nop()
F_C= org_ch>=2 ? GetChannel(Audio,2).AmplifydB(8.80) : nop()
F_R= org_ch>=3 ? GetChannel(Audio,3).AmplifydB(8.80) : nop()
S_L= org_ch>=4 ? GetChannel(Audio,4).AmplifydB(8.80) : nop()
S_R= org_ch>=5 ? GetChannel(Audio,5).AmplifydB(8.80) : nop()
LFE= org_ch>=6 ? GetChannel(Audio,6).AmplifydB(8.80) : nop()
org_ch==1 ? MergeChannels(F_L) : nop()
org_ch==2 ? MergeChannels(F_L,F_C) : nop()
org_ch==3 ? MergeChannels(F_L,F_C,F_R) : nop()
org_ch==4 ? MergeChannels(F_L,F_C,F_R,S_L) : nop()
org_ch==5 ? MergeChannels(F_L,F_C,F_R,S_L,S_R) : nop()
org_ch==6 ? MergeChannels(F_L,F_C,F_R,S_L,S_R,LFE) : nop()
return last
}

14名無しさん@編集中:2009/02/27(金) 13:24:29 ID:MdRqfJHn
>>6
 追伸 入門者の方へ もし、デスクトップにショートカットを作成して使用する場合はプロパティーの「作業フォルダ」を空白にすればドロップ元へ
               ファイルが作成されます また、DOS窓のウィンドウサイズ(幅)を110くらいにすればコメントが見やすくなると思います 

15名無しさん@編集中:2009/03/01(日) 15:30:07 ID:g30m0A1h
>>7
とりあえず修正

  CD %~p1 > cd %~dp1

  echo:%newname%.avs>>temp.tmp > echo:%~dp1%newname%.avs>>temp.tmp
16名無しさん@編集中
>>6
さらに修正  if exist "%~dp1%newname%.avs" (echo %~dp1%newname%.avsが存在します &&pause&&del temp.tmp&&exit)