web-dev-qa-db-ja.com

Windows 2008ServerのMP3 / WAVファイルからビジュアル(波形)を生成しますか?

MP3/WAVからPNG/JPEGビジュアルを作成するWindows用のコマンドラインプログラムは(どこかに)ありますか?

EDIT:これは画像がどのように見えるかを示す良い例です。 enter image description here

14
Alex G

Sox 、「オーディオ操作のスイスアーミーナイフ」は、サウンドファイルから正確なPNGスペクトログラムを生成できます。それはほとんど何でも再生し、バイナリはWindowsで利用できます。最も基本的なレベルでは、次のようなものを使用します。

sox my.wav -n spectrogram

軸、タイトル、凡例がなく、高さが100ピクセルの明るい背景のスペクトログラムが必要な場合:

sox "Me, London.mp3" -n spectrogram -Y 130 -l -r -o "Me, London.png"

たとえば、単一のチャネルのみを分析する場合、Soxは多くのオプションを受け入れます。ビジュアルをさらにクールにする必要がある場合は、結果のPNGを後処理できます。

これは、使用可能なすべてのパラメーターに関するコマンドラインからの簡単な概要です。 マンページに詳細があります

-x num  X-axis size in pixels; default derived or 800
-X num  X-axis pixels/second; default derived or 100
-y num  Y-axis size in pixels (per channel); slow if not 1 + 2^n
-Y num  Y-height total (i.e. not per channel); default 550
-z num  Z-axis range in dB; default 120
-Z num  Z-axis maximum in dBFS; default 0
-q num  Z-axis quantisation (0 - 249); default 249
-w name Window: Hann (default), Hamming, Bartlett, Rectangular, Kaiser
-W num  Window adjust parameter (-10 - 10); applies only to Kaiser
-s  Slack overlap of windows
-a  Suppress axis lines
-r  Raw spectrogram; no axes or legends
-l  Light background
-m  Monochrome
-h  High colour
-p num  Permute colours (1 - 6); default 1
-A  Alternative, inferior, fixed colour-set (for compatibility only)
-t text Title text
-c text Comment text
-o text Output file name; default `spectrogram.png'
-d time Audio duration to fit to X-axis; e.g. 1:00, 48
-S time Start the spectrogram at the given time through the input
33
Wander Nauta

Ffmpegで実際の波形が可能です。ダウンロードできます ここ

どこかにインストールし、例として次のコマンドラインを使用します。

ffmpeg.exe -i "filename.mp3" -lavfi showwavespic=split_channels=1:s=1024x800 waveform.png

または、例の画像の色に一致する次の色、またはその他の colors

ffmpeg.exe -i "filename.mp3" -lavfi showwavespic=s=1024x800:colors=0971CE waveform.png

FFmpeg showwavespicのドキュメント

8
KoalaBear

私はこれを行う小さなPHPライブラリを作成しました: https://github.com/jasny/audio


以下のように動作します。を使用してサンプルを取得します

sox TRACK.mp3 -t raw 4000 -c 1 -e floating-point -L -

これにより、トラックが4kにダウンサンプリングされ、すべてが1チャンネルに配置されます。

次に、サンプルのチャンク(ピクセルごと)を取得し、最小値と最大値を計算します。それらを使用して波形を描画します。

私はこれをここでとても素敵だと思いました(ウェブアーカイブから、元のものはなくなっています): http://web.archive.org/web/20140715171716/http://andrewfreiday.com/2011/12/04/optimizing-the-php-mp3-waveform-generator /

そのPHPベースであり、シェルを介してラメを使用します。

更新:サイトは時々死んでいるようですが、ここにリポジトリがあります: https://github.com/afreiday

1
xamiro

すべてのwavファイルのヒストグラムをフォルダー(BASH/DASH)に生成するWanderNautaの更新されたバッチバージョン:

for i in *.wav; do ./sox $i -n spectrogram -y 130 -l -r -o ${i%%.wav}.png; done
0
Andrea Leganza