|
|
|
|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|
│<< 前へ │次へ >> │一覧 │コメントを書く |
前回(No.1)の応用
特定のフォルダの下にあるすべてのWAVファイルを連続してエンコする。 前回のコマンドスクリプトからpause文(下から2行目)を削除します。 :end endlocal wavファイル群の格納されているフォルダを、c:\dataとした場合、 コマンドプロンプトで >for %i in (c:\data\*.wav) do aacenc %i とタイプすることにより連続して全てのwavファイルをmp4(aac)にエンコできます。 今回のメイン auoencもコマンド指定するのは面倒くさいですよね。 これを思いっきり簡単に指定できるように、パラメタはファイル名 (AVSスクリプト)のみとすることにしましょう。 こうすれば、NO.1と同様にして運用できるので。 auoencのとるパラメタは、 auoenc auofile cfgfile srcfile dstfile priority でした。 ここでは、exavi_vfr.auoを使ってXviDでqt=2.5でエンコする場合を考えてみます。 なお、exavi_vfr.auo及びvfr25.cfgファイルは、vfrpathで指定された場所に置くものとします。 そして、このスクリプトのキモの部分ですが、 出力ファイル名は、avsスクリプト中からファイル名を抽出して使います。 AVISource, OpenDMLSource, Mpeg2Source等で かつ拡張子が、.aviか.d2vである必要がありますがこの変更は簡単です。 例えば、AddRange("foo.vcf")から、出力ファイル名"foo.avi"を抽出したい場合は set targetcmd=AddRange に変更するだけです。 最後にこれも応用編としてフォルダ下の全てのavsを処理するようにもできますが、それは各自考えてください。 ----- vfr25.cmd -----
補足 ●ファイル名の抽出は、最後にhitした行の値となるので 複数のsource行が無いようにする。 ただしコメントにした行は存在してもかまわない。 ( # AVISource(...)行はhitしない) もしも複数行、該当する行が存在する場合は、検索文字をもっと厳密にする。 (AVISourceとWavSourceがある場合、AVISourceを検索文字に指定する) またAddRangeを指定する場合、以下のような行もhitするので該当行より 下には記述しないように気をつける。 LoadPlugin("...\AddRange.dll") function AddRange(clip ...) { 訂正 ■%src%の中に"がある場合、変になることがあるため for /f "delims=,() tokens=1-5" %%i in ("%src%") do ( ↓ for /f "usebackq tokens=1-5 delims=,()" %%i in ('!src!') do ( ■遅延環境変数の展開時、src%%i変数がNULLだとif文でエラーとなるため NULLにならないように制限する set n=5 for /l %%i in (5,-1,1) do ( if "!src%%i!" == "" (set /a n=%%i-1) ) ■tokensで区切った場合、%%~i等で"を削除できない模様 :hit set src=%src:"=% を追加 (2005.8.5) この記事のトラックバックURL:
http://tb.plaza.rakuten.co.jp/kiraru2002/diary/200508020000/7cc65/ │<< 前へ │次へ >> │一覧 │コメントを書く │ 一番上に戻る │ |