Saya perlu memeriksa bitrate file musik, saya perlu menerima nomor dalam digit seperti: 192000 (untuk 192 kbps), 320000 (untuk 32kbps) atau (+)3000000 untuk wavs dan musik tidak terkompresi. Maksud saya, saya memerlukan nomor persisnya, Jika MP3 adalah VBR dan dikompresi pada 194 kbps, saya memerlukan nomor 194000, bukan CBR 192000 saat ini.
Saya melakukan pekerjaan ini dengan Program CLI MEDIAINFO (x64), Dalam Batch:
for /f "tokens=*" %%%% in ('mediainfo "%%a" "--Inform=General;%%BitRate/String%%"') do set "BitRate=%%~%%"
Tetapi saya memiliki 35.000+ file untuk diperiksa dan kemudian pengujian semua file memakan waktu lebih dari 2 jam.
Saya memerlukan kode sederhana untuk memeriksanya, Bukan program yang perlu menjalankannya dan membuang banyak waktu...
Sangat penting bahwa kode harus mengenali setidaknya jenis file ini (maksud saya bitrate internal): AIFF, FLAC, M4A, MP3, OGG, WAV, WMA.
Dan tidak bisa menjadi kode untuk Ruby atau Python, karena saya harus "mengkompilasinya" dan tentu saja ketika "dikompilasi" membuang banyak waktu untuk memeriksa banyak file (Menyebabkan tidak terkompresinya .exe yang dikompilasi).
Info lebih lanjut: Saya berpikir untuk menyimpan hasilnya dalam sebuah file dan kemudian melakukan perbandingan untuk memeriksa hanya file baru yang ditambahkan, Tapi saya tidak dapat menyimpan hasilnya untuk melakukan perbandingan pada proses berikutnya karena terkadang saya perlu mengganti file yang diperiksa (file lama). Ngomong-ngomong, saya juga tidak bisa menangani ini dengan stempel tanggal file. Harus ada satu prosedur unik untuk memeriksa SEMUA file, Selamanya (Atau ini yang saya pikirkan...).
Saya mencoba metode lain untuk memeriksa bitrate, saya benar-benar yakin ini yang saya perlukan tetapi saya tidak dapat menjalankannya seperti yang saya inginkan...
VBS ini menggunakan API program DBPowerAmp, Dan menampilkan jendela dengan info (termasuk bitrate), Tapi dengan jendela saya tidak bisa berbuat apa-apa... Mungkin jika saya bisa mengarahkan info windows ke file teks.. . Lalu atur variabel "Bitrate" dengan membaca info bitrate di file teks... Tapi saya tidak tahu cara melakukannya:
' 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)
Saya sudah mencoba "mengubah" kode itu menjadi Batch, seperti ini, Tapi jangan dijalankan, saya tidak mendapatkan apa-apa:
@echo off
rundll32.exe dMCScripting.Converter.AudioProperties("C:\Test.aac") > test.txt
exit
Oh dan saya sudah mencobanya juga, tetapi membuang lebih banyak waktu daripada mediainfo:
mplayer "test.aac" -frames 0 | findstr "kbit"