2012-04-26 8 views
1

音楽ファイルのビットレートを確認する必要があります.192000(192 kbps)、320000(32kbps)、または(+)3000000のwavと非圧縮音楽の数字を受信する必要があります。私はmp3がVBRで、194 kbpsで圧縮されている場合、私は、正確に番号を必要とする意味、私はMediaInfoを(x64)のCLIプログラムでこの仕事をしました194000番号ではなく、現在のCBR 192000.バッチまたはVBS |音楽ファイルのビットレートを確認する方法は?

が必要、バッチでは:

for /f "tokens=*" %%%% in ('mediainfo "%%a" "--Inform=General;%%BitRate/String%%"') do set "BitRate=%%~%%" 

しかし、私がチェックする35.000ファイルを持っているし、すべてのファイルのcomprobationは時間の2時間以上である...


私がチェックするための簡単なコードが必要ですプログラムを実行して、それを実行する必要はありません AIFF、FLAC、M4A、MP3、OGG、WAV、WMA:多くの時間で...

は、コードが、少なくともこのファイルタイプを(私は内部のビットレートを意味する)を認識する必要があることは非常に重要です。

RubyやPythonのコードにすることはできません。私はそれを "コンパイル"する必要がありますので、 "コンパイルされた"ときに多くの時間を無駄にします。 exeファイル)。

詳細情報:結果をファイルに保存してから新しいファイルを追加するだけの比較をしていたと思いますが、次回の実行時に比較結果を保存することはできません。チェックされたファイル(古いファイル)を置き換えます。ところで、どちらも私はファイルの日付スタンプでこれを処理することはできません。すべてのファイルをチェックするためのユニークな手順が必要です。(これは私の考えです...)


私はこのVBSはDBPowerAmpを使用しています...私はこれは私が必要なものは本当に確信しているが、私は私が望むようにそれを実行し得ることができない、ビットレートをチェックする

を別の方法をしようと試み私は何もすることはできません...私はテキストファイルにwwwwwwwwwww情報をリダイレクトすることができます...そして、変数 "ビットレートを設定してください(ビットレートを含む) "テキストファイルのビットレート情報を読むことによって...しかし、私はそれを行う方法がわからない:

' create shell object 
Set WshShell = CreateObject("WScript.Shell") 

' Create dMC Object 
Set dMC = CreateObject("dMCScripting.Converter") 

'Read audio properties of a file 
Dim AudioProps 
AudioProps = dMC.AudioProperties("C:\test.aac") 
Call WshShell.Popup(AudioProps, , "Returned Audio Properties", 0) 

Iこのように、バッチにそのコードを「変換」するためにしようと試みましたが、実行しないでください、私は何を取得:

@echo off 
rundll32.exe dMCScripting.Converter.AudioProperties("C:\Test.aac") > test.txt 
exit 

EDIT:ああ、私はあまりにもこれをしようと試みたが、無駄ましたMediaInfoをより多くの時間:私の問題を読むため

mplayer "test.aac" -frames 0 | findstr "kbit" 

私は、私を助けるために誰かのためにありがとうを待っています!ここで

+0

あなたは+35,000ファイルを毎回チェックする必要がありますか?あなたは+2時間の処理を1回だけ達成して(結果をファイルに保存する)、その時から新しいファイルを処理して(そしてファイルから古い結果を取り出す)ことができますか? – Aacini

+0

ありがとうございましたが、私はそれについて考えました。次回の実行時に比較結果を保存することができない場合があります。チェックされたファイル(古いファイル)を置き換える必要があります。ところで、どちらも私はファイルの日付スタンプでこれを処理することはできません。すべてのファイルをチェックするためのユニークな手順が必要です。(これは私の考えです...) Bye – ElektroStudios

+1

なぜdownvoteと "近い質問"?このトピックは私にとって興味深いようです!私はOPではない... – Aacini

答えて

2

Rubyでどのようなものなのかを知るために、audioinfoはそのようなことを行う多くのライブラリの1つに過ぎません。

require "audioinfo" 

AudioInfo.open("R:/mp3/j/John Coltrane - I Think.mp3") do |info| 
    puts info.to_h 
end 
=>{"artist"=>"John Coltrane", "album"=>"John Coltrane", "title"=>"I Think", "tracknum"=>nil, "date"=>nil, "length"=>272, "bitrate"=>128} 
+0

こんにちは、 "audioinfo"という名前の宝石は見つかりませんでした:( – ElektroStudios

+0

ruby​​をインストールしてすぐにコマンドプロンプトで を実行し、\ ruby​​193 \ binマップに移動して、 "gem install ruby​​-audioinfo" と入力します。これはrubyライブラリ(gems)のインストール方法です。 – peter

2

VBSスクリプトは、mp3で動作し、私は

Set objPlayer = CreateObject("WMPlayer.OCX") 
Set colMediaCollection = objPlayer.mediaCollection 

Set colMedia = colMediaCollection.getAll() 

For i = 0 to colMedia.Count - 1 
    Set objItem = colMedia.Item(i) 
    Wscript.Echo objItem.Name & " : " & objItem.GetItemInfo("bitrate") 
Next 

をしようとしなかった残りの部分は、あなたが使用できる属性のリストについては、http://techsupt.winbatch.com/webcgi/webbatch.exe?techsupt/nftechsupt.web+WinBatch/OLE~COM~ADO~CDO~ADSI~LDAP+Get~Audio~File~Information.txtを参照してください。

+0

このソリューションはWindowsにインストールされたwmplayerコンポーネントが必要です: - /ありがとうとにかく – ElektroStudios

関連する問題