VirtualDub情報局 Part9

このエントリーをはてなブックマークに追加
500名無しさん@編集中
//VirtualdubでWMVファイルをカット編集するUWSCのスクリプト.uws Virtualdub1.8.4 + FFDshow + WMVplugin + Asfbin.exe + UWSC が動く環境が必要です。
ExeAsfbin=GET_CUR_DIR+"\"+"asfbin.exe";//←●●●asfbin.exeをこのUWSCスクリプトと同じフォルダにコピーするか、asfbin.exeのフルパスを記述する。
IDVirtualDub=getid("virtualdub","virtualdub");acw(idVirtualdub);fso = CreateOleObj("Scripting.FileSystemObject")
DEF_DLL PostMessageA(Hwnd,Long,Long,Dword):Bool:user32.DLL
PostMessageA(IDtoHND(IDVirtualDub),$111,40194,0);変数開始秒=trim(BETWEENSTR(GETSTR(IDvirtualDub,0,STR_ACC_STATIC ),"(",")",1));
PostMessageA(IDtoHND(IDVirtualDub),$111,40195,0);変数終了秒=trim(BETWEENSTR(GETSTR(IDvirtualDub,0,STR_ACC_STATIC ),"(",")",1))
変数文字開始=replace(replace(変数開始秒,":",""),".","_");変数文字終了=replace(replace(変数終了秒,":",""),".","_");
GETITEM(IDvirtualDub,ITM_MENU);i=0;repeat;変数ファイル動画=ALL_ITEM_LIST[i];変数頭=token(" ",変数ファイル動画);i=i+1;UNTIL copy(変数頭,length(変数頭)-1,2)="\1";
仮ファイル名と拡張子=変数ファイル動画;仮=変数ファイル動画;
501名無しさん@編集中:2008/08/13(水) 19:37:27 ID:JGM5bx/V
repeat;変数拡張子=token(".",仮);UNTIL 仮="";変数フルパス前=copy(変数ファイル動画,0,length(変数ファイル動画)-length(変数拡張子)-1);
ドライブ名=copy(変数ファイル動画,0,1)+":";空き容量=int(fso.GetDrive(ドライブ名).freespace/1024/1024)
変数フルパス出力=INPUT("出力ファイル名の入力 "+空き容量+"MB空き "+int(fso.GetFile(変数ファイル動画).Size/1024/1024)+"MB "+変数ファイル動画,_
変数フルパス前+"__"+変数文字開始+"_"+変数文字終了+"."+変数拡張子);
fukidasi(doscmd(ExeAsfbin + " -i "+"<#DBL>"+変数ファイル動画+"<#DBL>"+" -y -cvb -o " + "<#DBL>"+変数フルパス出力+"<#DBL>" + " -start " + 変数開始秒+ " -end " +変数終了秒));sleep(1)
ifb copy(trim(変数フルパス出力),2,1)=":" then
空き容量 = int(fso.GetDrive(ドライブ名).freespace /1024/1024);fukidasi("●"+ドライブ名+"は "+空き容量+" メガバイトの空き");
ifb 空き容量<=0 then
fukidasi("■■■■■■ 容量不足で出力が失敗している可能性があります "+ドライブ名+"は "+空き容量+" MBの空き");sleep(3);endif;endif;sleep(2)
502名無しさん@編集中:2008/08/13(水) 20:07:47 ID:JGM5bx/V
上記は、VirtualdubでWMVファイルをカット編集するUWSCのスクリプト.uws です。
Virtualdub1.8.4 + FFDshow + WMVplugin + Asfbin.exe + UWSC が動く環境が必要です。
VirtualDubでWmvがプレビューできるのはいいのですが、
現状はWmvファイルのカット編集が怪しい状態です。
そこでHOMEキーとENDキーで決めた開始点と終始点(もちろんキーフレーム単位)の
秒数をウィンドウから読み取って、そのままAsfbin.exeに渡せばいいだろうってことで、
UWSCで書いてみますた。
出力ファイル名のデフォルト値は、とりあえずユニークな値のほうがいいだろうってことで
開始秒と終了秒を付加したものにしてます。
使ってみて、出力の失敗は今のところファイル容量不足の時だけなので、
カットする前と後に、空き容量を表示するようにしてます。
VirtualDubでWMVの開始点、終始点を決めた状態で、このスクリプトを起動して使う訳ですが、
mayuやahkなどで、VirtualDub用のキーマップの設定で、特定のキーにこのスクリプトを
起動出来るように設定しとくと、違和感なく使えると思います。
WmvとVirtualDub使いの方にどんどん改変して使ってもらえれば幸いです。
※1.8.4より前の場合、数字の表示方法が違うので動かないはずです。