- ベストアンサー
バッチスクリプトで音量均一化を自動化する方法は?
- XPを使用している状況で、iPodビデオ作成時の音量の不均一化問題を解決するために、バッチスクリプトで音量の均一化を自動化したいと考えています。
- 現在、読み込むwavファイルの数が非常に多いため、自動で均一化、変更保存、プログラム終了まで行うバッチスクリプトの作成方法を探しています。
- 検索してもなかなか情報が見つからず、手動で変換するしか方法がないかと考えています。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ハードリンクというのは「既存のファイルに対する別名」です. つまり, 「別名」を作ることで 1つのフォルダにすべてのファイルを集めてしまい, そのフォルダに対して Foler Open などを使ってやろうという趣旨です. 以下, すべてはコマンドプロンプトで実行することになります: [注意] 実際に実行するとファイルを破壊してしまったりするかもしれません. 特に, ハードリンクを作ったり削除したりすることになるので, 「元のファイルが変更できていない」「元のファイルごと削除してしまった」などの問題が発生する可能性は否定できません. あらかじめバックアップをとるなどして「壊れてしまっても大丈夫」という状況にしてから実行することをお勧めします. [注意終わり] まず, for /r d:\ipod %f in (*.wav) do echo %f とやると「d:\ipod 以下にあるすべての wav ファイル」が表示されるはずです. そこで, (fsutil を実行するので管理者権限が必要かもしれません) 以下のコマンドを順次実行します: d: cd \ mkdir hogehoge cd hogehoge cmd /v:on set i=1 for /r d:\ipod %f in (*.wav) do fsutil hardlink create "%f" !i!.wav & set /a i=!i!+1 この時点で, d:\ipod にあるすべての wav ファイルに対し, カレントフォルダ (d:\hogehoge) の中にハードリンクが作られます. そこで, SoundEngine のスクリプトから Folder Open などを使って「カレントフォルダにあるすべての wav ファイル」をオートマキシマイズします. これで, 原理的には「d:\ipod 以下にあるすべての wav ファイルに対してオートマキシマイズした」のと同じ結果になっているはずです. あとは del *.wav cd .. rd hogehoge exit で証拠隠滅. 上の [注意] でも書きましたが, ここで「ファイルの削除」を行っているため最悪の場合「元のファイルをすべて消してしまった」ということになるかもしれません. 私は試していないので, 「これでいける」とまではいえません. ファイルの少なそうなフォルダをコピーしておき, そのコピーに対して同じようなことをして「ちゃんと動いている」ことを確かめてから本来の対象に対して実行することを強くお勧めします.
その他の回答 (3)
- Tacosan
- ベストアンサー率23% (3656/15482)
おっととと. 勇み足だ. 「特定のフォルダ以下に存在する」ことは仮定しなくてもいいです. が, 「全部指定する」必要があるので面倒といえば面倒.
お礼
やはり面倒ですか… 回答ありがとうございます。
- Tacosan
- ベストアンサー率23% (3656/15482)
あ~, 盛大に勘違いしていたような気が.... SoundEngine の方で「スクリプト内部に読み込むファイルの名前」が指定できると思ったのよ.... これができるなら, cmd で for /R %F in (*.wav) do echo %F で「(サブフォルダの中も含めて) 現在のフォルダの中にあるすべての wav ファイル」が出てくるので適宜修正すればいいかなと思ったんだけど... う~ん, SoundEngine のスクリプトの仕様が今一つわからん.... そういえば, 変換を必要とする wav ファイルはどのように配置されてますか? 「特定のフォルダ (とそのサブフォルダ) の中にある」なら, 「ハードリンク」という大技を使えば何とでもなります.
お礼
ハードリンクってなんですか?初めて聞きました! wavはD://iPodというフォルダに格納してあります。 どのようにバッチファイルを編集すればよろしいでしょうか? 誤解を招くように書いてしまい申し訳ないです… ぜひご教授おねがいします。
- Tacosan
- ベストアンサー率23% (3656/15482)
ちょっと検索してみたんだけど, 1つのフォルダに全てのファイルがあるなら「検索しろ」で終わり. そうでなければ... Sound Engine のスクリプトだけではできないかもしれない. cmd と組合せればなんでもありだと思うけど.
お礼
回答ありがとうございます。 cmdと組み合わせてみたいのですが、それをやったらSound Engineの作者さんの意図からはずれてしまうかな?とも思い今まで1ファイルずつ変換してましたが、数が多すぎてそんなこともいってられなくなり質問した次第です。 そのcmdと組み合わせるためのコマンドはどのように書いたらよいでしょうか?
お礼
詳しい説明ありがとうございました!! やはり最終的にはSound Engineを開いてやらないとダメなんですね。 cmdの中で出来るのかななんておもってましたがハードリンクのやり方が理解出来たのでこれから重宝させていただきます! こんな質問に長々と付き合っていただいてほんとにありがとうございました!! ファイルの削除には気を付けます… 昔全て消したことあったので(笑)