Winny補助ツール総合スレ Part8

このエントリーをはてなブックマークに追加
590548
フォルダ内の動画ファイルのコーデック・AVIのバージョン、フレームレートを調査し、
条件に該当するファイルだけを、変換プログラムに送るスクリプト
集めて見ないで溜まっている動画ファイルを、DivX再生機能付きDVDプレイヤーで再生するために開発しました。
言語はuwsc
// ここから
public sinkupass="F:\freeware\真空\SinkuHadouken.exe" // 真空波動研.exe の場所(フルパス)  各自の環境で変更
public avimuxpass="F:\freeware\AVI-Mux_GUI-1.17.7\AVIMux_GUI.exe" // AVIMux_GUI.exe の場所(フルパス) 各自の環境で変更
public toMuxCount
public toMuxFile[100] 
srcDir="K:\Down\新しいフォルダ (7)" // 調べるファイルのあるディレクトリ
dstDir="M:\tst"  AVIMuxで変換したファイルの収納先
toMuxCount=0
sinkuID=getID("","TSHDK_MAIN")
ifb sinkuID<1 THEN
exec(sinkuPass)
sleep(2)
sinkuID=getID("","TSHDK_MAIN")
endif
filecount=GETDIR( srcDir,"*.avi")
for i=0 to filecount-1 
filename=GETDIR_FILES[i]
print filename
checkAviOne(sinkuID,srcDir,dstDir,filename)
next
filecount=GETDIR( srcDir,"*.wmv")
for i=0 to filecount-1 
filename=GETDIR_FILES[i]
MediaCoderID=GETID("MediaCoder","#32770")
DROPFILE(MediaCoderID,srcDir,filename)
next
(続く)
591[名無し]さん(bin+cue).rar:2007/03/18(日) 05:03:45 ID:9cpA2I4U0
SCKEY(sinkuID,VK_ALT,VK_F,VK_C)
Avi2to1All(srcDir,dstDir)
exec("notepad.exe "+ GET_UWSC_DIR+"\UWSC.LOG")

procedure checkAviOne(sinkuID,srcDir,dstDir,filename)
SendStr(0,"")
DROPFILE(sinkuID,srcDir,filename)
sleep(6)
ACW(sinkuID)
MOUSEORG(sinkuID)
SCKEY(sinkuID,VK_CTRL,VK_C)
sleep(1)
Str=GetStr(0)
ifb Str="" then
sleep(10)
ACW(sinkuID)
MOUSEORG(sinkuID)
SCKEY(sinkuID,VK_CTRL,VK_C)
Str=GetStr(0)
endif
title=token(chr($0d),str,true) // 一行目を取り出す
pram=token(chr($0d),str,true) // 二行目を取り出す
aviVer=token(" ",pram,true)
aviVer=COPY(aviVer,POS("A",aviVer),LENGTH(aviVer)-POS("A",aviVer)+1)

str=COPY2(pram,POS("Bit ",pram)+Length("Bit "),POS("fps",pram)+Length("fps"))
size=token(" ",pram)
codec=COPY(str,0,POS(" ",str,-1)-1)
fps=COPY2(str,POS(" ",str,-1),POS("fps",str)-1)
print aviVer+" "+size+" "+codec+" "+fps+"fps"
//続く
592[名無し]さん(bin+cue).rar:2007/03/18(日) 05:04:41 ID:9cpA2I4U0
str=aviVer+" "+size+" "+codec+" "+fps+"fps"
title=COPY(title,0,length(title))
fpsF=val(fps)>31
codecF= (POS("DivX",codec)=0) and (POS("Xvid",codec)=0)
ifb fpsF or codecF then
print filename+"をMediaCoderで変換予約"
MediaCoderID=GETID("MediaCoder","#32770")
DROPFILE(MediaCoderID,srcDir,filename)
else
ifb aviVer="AVI2.0" then
print filename+"をAVI2.0->AVI1.0に変換予約"
SCKEY(sinkuID,VK_ALT,VK_F,VK_C)
ToMuxFile[ToMuxCount]=fileName
ToMuxCount=ToMuxCount+1
endif
endif
fend

function COPY2(str,from,to )
result=COPY(str,from,to-from)
fend

procedure Avi2to1All(srcDir,dstDir)
for i=0 To ToMuxCount-1
filename=ToMuxFile[i]
print srcDir+"\"+filename+"をAVI2.0->AVI1.0に変換実行"
onefileAvi2to1(srcDir,dstDir,filename)
next
fend

// 続く
593[名無し]さん(bin+cue).rar:2007/03/18(日) 05:05:47 ID:9cpA2I4U0
procedure onefileAvi2to1(srcDir,dstDir,fname)
fNameSrc=srcDir+"\"+fname
fNameDst=dstDir+"\"+fname
muxID=GETID("AVI-Mux GUI","#32770")
ifb muxID<1 THEN
exec(avimuxpass)
sleep(2)
muxID=GETID("AVI-Mux GUI","#32770")
endif
muxID=GETID("AVI-Mux GUI","#32770")
sleep(2)

ACW(muxID,158,244,613,473,0)
mouseorg(muxID)
BTN(RIGHT,CLICK,30,66,31)
SCKEY(muxID,VK_DOWN,VK_RETURN)

openID=GETID("ファイルを開く","#32770")
ACW(openID,136,319,656,323,0)
SENDSTR(openID,fNameSrc,1,true)

SCKEY(openID,VK_ALT,VK_O)
sleep(2)
ACW(muxID,158,244,613,473,0)
mouseorg(muxID)
BTN(LEFT,CLICK,105,67,32)
BTN(LEFT,CLICK,117,136,109)
sleep(1)
BTN(LEFT,CLICK,519,413,203)

(続く)
594[名無し]さん(bin+cue).rar:2007/03/18(日) 05:07:29 ID:9cpA2I4U0
saveID=GETID("名前を付けて保存","#32770")
ACW(saveID,136,319,656,323,0)
SENDSTR(saveID,fNameDst,1,true)
SCKEY(saveID,VK_ALT,VK_S)

infID=GETID("Information","#32770")

while infID=-1
sleep(1)
infID=GETID("Information","#32770")
wend
SCKEY(saveID,VK_RETURN) // 終了ダイアログに「OK」
ACW(muxID,158,244,613,473,0) //処理し終わったファイルをdelする
mouseorg(muxID)
sleep(1)
SCKEY(muxID,VK_ALT,VK_F4)
sleep(2)

fend

//スクリプトここまで
595[名無し]さん(bin+cue).rar:2007/03/18(日) 05:08:15 ID:9cpA2I4U0
(説明書)
このスクリプトは、フォルダ内の動画ファイルのコーデック・AVIのバージョン、フレームレートを調査し、
条件に該当するファイルだけを、変換プログラムに送るものです
集めて見ないで溜まっている動画ファイルを、DivX再生機能付きDVDプレイヤーで再生するために開発しました。

条件は
1,AviのうちコーデックがDivX/Xvidでないもの(wmv9など)、
2.フレームレートが120fpsなど30より多いもの
はMediaCoderに送り込んで変換

3.Avi2.0のもの
はAVIMux_Guiに送り込んでAVI1.0に変更します。

このスクリプトの実行には、以下のフリーソフトが必要になります
以下のURLからインストールしてください
uwsc http://www.h7.dion.ne.jp/~umiumi/
(スクリプトの実行に使用します)
真空波動研 http://kurohane.sakura.ne.jp/kurohane/seisanbutu.php
(コーデックやフレームレートの判定に使用します)
MediaCoder http://gigazine.net/index.php?/news/comments/20060321_mediacoder/
(wmvや120fpsのファイルを変換するために使用します)
AVIMux_Gui http://www.alexander-noe.com/video/amg/
(AVI2.0からAVI1.0への変換に使用します)

注)このスクリプトはMediaCoderやAVIMux_Guiにファイルをドロップするだけで、
MediaCoderやAVIMux_Guiの各種設定を自動で行うわけではありません
以下を参照の上、設定を行って、試しに一本変換してみて、正常にプレイヤーで再生できるファイルに変換されたか
確認してからスクリプトを使用してください。
596[名無し]さん(bin+cue).rar:2007/03/18(日) 05:09:04 ID:9cpA2I4U0
●AVIMux_Guiの設定
右側のOutput/generalを押して、
左上のStandard output fortmat をAviに

右側のOutput/Avi file structureを押して、
チェックボックス use Open-DML outputをオフに
(これがoffであればAVI1.0を出力する)

●MediaCoderの設定
左下の設定
Video
Backend/MEncoder
Codec/Xvid

Picture
FrameRate 23.976

Audio
Source MPlayer
Encoder LAME MP3

真空波動研とAviMux_Guiは起動した状態でなくてもスクリプトが起動させてくれますが、
MediaCoderは自動起動しませんので、さきに起動した状態でスクリプト実行してください