Linuxでのmp3gainコマンドの使い方

このQ&Aのポイント
  • Linuxでのmp3gainコマンドを使用して、700個のmp3ファイルの音量をノーマライズする方法について教えてください。
  • mp3gainコマンドを使って一括でノーマライズする方法について教えてください。
  • シェルスクリプトを使用せずに、個々のファイルに対してmp3gainコマンドを実行する方法を教えてください。
回答を見る
  • ベストアンサー

linuxでのmp3gainコマンドの使い方

を教えてください 700個のmp3ファイルfile1,file2,file3,…,file700の音量をノーマライズするときに #mp3gain -r file1 #mp3gain -r file2 #mp3gain -r file3 ・・・・・・・・・ #mp3gain -r file700 でOKでしょうか?それとも #mp3gain -r file1 file2 file3 … file700 としなければならないでしょうか? 後者だとファイル数が700個あるのでシェルスクリプトを作るのが大変です (IFSをセットしているため) 前者でよいのならば簡単なのですが よろしくお願いします

  • reiman
  • お礼率73% (794/1076)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

http://chirijiri.blog17.fc2.com/blog-entry-19.html ほらよ。 ループでない処理のパターン。 findを使ってファイル名検索とパイプを使った方法。 >引数が1ファイルなので 各ファイルの平均値を出すのではなくて上記のサイトを見る限り89dbで自動的に調整するだけみたい。 それとコマンドのオプションがわからなければman使えよ。 dbの値を調整するオプションもあるみたいだな。 最近の奴はmanを知らないのか?それとも自分でmanする気がないのか?

reiman
質問者

お礼

ちなみに動いている前者対応版は以下のとおりです same-volume.sh: #!/bin/sh IFS=" " IN=`pwd`/ OUT=/root/デスクトップ/ cd $OUT if [ -e flv_music ] then for x in `find flv_music -name "*"` do y=$IN`echo $x | sed -e "s/flv_music/music/"` if [ -d $x ] then if [ ! -e $y -o ! -d $y ] then rm -rf $x fi else z=`echo $y | sed -e "s/\.flv$//"` if [ $z = $y ] then rm -f $x else if [ ! -e ${z}.v -o -d ${z}.v ] then rm -f $x fi fi fi done fi cd $IN if [ -e music ] then for x in `find music -name "*"` do if [ -d $x ] then y=$OUT`echo $x | sed -e "s/music/flv_music/"` if [ ! -e $y ] then mkdir -p $y fi fi done for x in `find music -name *.v` do if [ ! -d $x ] then x=`echo $x | sed -e "s/\.v$//"` y=$OUT`echo $x | sed -e "s/music/flv_music/"` if [ ! -e ${y}.flv ] then cp ${x}.v ${y}.v ffmpeg -i ${y}.v ${y}.mp3 mp3gain -c -r ${y}.mp3 ffmpeg -i ${y}.mp3 -i ${y}.v -acodec copy -vcodec copy ${y}.flv rm -f ${y}.v ${y}.mp3 fi fi done else x=${IN}music/ echo ディレクトリ $x を作成しその中に拡張子.vの動画ファイルを配置するか echo 直下または子孫ディレクトリの中に拡張子.vの動画ファイルを echo 少なくとも1つ以上含むディレクトリを配置してください。 fi

reiman
質問者

補足

ありがとうございます manはよく使っています -rオプションはそれで選択しました 問題は1ファイル指定だと音量が他との関係がないのでノーマライズはできるわけないと思ったのです 従ってmp3gain -rの引数として全ファイルを一度に設定しなければ鳴らないのでは と思ったのです この辺のことろまではman mp3gainには書いていません もし全ファイル指定だと ループを使って files="file1 file2 file3 … file700" として #mp3gain $files は IFS=" " をしているので機能しません ($filesの内容が1つのファイル名とみなされるため) 勿論 #file=file1 #mp3gain $file は機能します 従って前者ならば問題は解決されて動いています しかし後者(全ファイル指定が必要)だとまだ作っていませんが作成が大変です よろしくお願いします

その他の回答 (2)

回答No.4

>DBは相対量(比)なので最初の質問の解答にはなっていませんね だからといってその基準値となる音がどう考えてもmp3gainで一度に複数ファイル指定しても平均値とか取っているようには いろいろなサイトをまわって検索しても出てこないって事は mp3gainそのものに基準値がセットされていると思うのが普通だと思うけど。

reiman
質問者

お礼

ありがとうございます とにかく一度に引数を設定していればいいわけなので作って見ました 後者でやれば問題ないはずなので疑問は残りますが妥協して解決です same_volume2.sh: #!/bin/sh IFS=" " IN=`pwd`/ OUT=/root/デスクトップ/ cd $OUT if [ -e flv_music ] then for x in `find flv_music -name "*"` do y=$IN`echo $x | sed -e "s/flv_music/music/"` if [ -d $x ] then if [ ! -e $y -o ! -d $y ] then rm -rf $x fi else z=`echo $y | sed -e "s/\.flv$//"` if [ $z = $y ] then rm -f $x else if [ ! -e ${z}.v -o -d ${z}.v ] then rm -f $x fi fi fi done fi cd $IN if [ -e music ] then for x in `find music -name "*"` do if [ -d $x ] then y=$OUT`echo $x | sed -e "s/music/flv_music/"` if [ ! -e $y ] then mkdir -p $y fi fi done for x in `find music -name *.v` do if [ ! -d $x ] then x=`echo $x | sed -e "s/\.v$//"` y=$OUT`echo $x | sed -e "s/music/flv_music/"` if [ ! -e ${y}.flv ] then cp ${x}.v ${y}.v ffmpeg -i ${y}.v ${y}.mp3 fi fi done find ${OUT}flv_music -name *.mp3 -print0|xargs -0 mp3gain -c -r for x in `find music -name *.v` do if [ ! -d $x ] then x=`echo $x | sed -e "s/\.v$//"` y=$OUT`echo $x | sed -e "s/music/flv_music/"` if [ ! -e ${y}.flv ] then ffmpeg -i ${y}.mp3 -i ${y}.v -acodec copy -vcodec copy ${y}.flv rm -f ${y}.v ${y}.mp3 fi fi done else x=${IN}music/ echo ディレクトリ $x を作成しその中に拡張子.vの動画ファイルを配置するか echo 直下または子孫ディレクトリの中に拡張子.vの動画ファイルを echo 少なくとも1つ以上含むディレクトリを配置してください。 fi

回答No.1

シェルスクリプト書くならループさせようよ。

reiman
質問者

補足

ありがとうございます 前者の場合はループで簡単にできますが すべてのmp3gain -rの引数が1ファイルなので これでノーマライズが出きるかどうか疑問です もしそれでできるならばもうループを使って作っているので問題は解決です 要するにノーマライズのために mp3gain -rの引数の引数として全てのファイルを一度に指定しなければならないかどうか をお聞きしたいのです そうすると最初に IFS=" " をしているのでループでやるにしても大変です よろしくお願いします

関連するQ&A

  • MP3GAINは本当に音質の劣化が無いのでしょうか?

    MP3GAINはMP3→WAV→MP3と再エンコードをせず 直接GAINをコントロールできるということだそうですが 本当に劣化はないのでしょうか? HDDにためたMP3の音量を全てノーマライズしようと思ってるんですが 迷ってます。 MP3に詳しい方教えてください。

  • MP3Gainの使い方

    こんばんわ。 MP3Gainを使っています。 どこかで見たのですが、このソフトは1ファイルの音量を同じにするのでしょうか? 複数のファイルの音が一緒になるわけじゃないですか? また、トラックゲインをした後、保存したりするのでしょうか? そのままソフトを閉じても問題ないですか? MP3プレイヤーで聞いたら音量がバラバラの気がしまして・・・ 1度に質問してしまって、すみません。 よろしくお願いいたします。

  • MP3Gain

    Vistaです。 MP3Gainのインストールがうまくいきませんでした。 似たようなフリーのソフトありますか? 要はMP3ファイルの音量を調節できればいいです。

  • MP3Gainの使い方で・・・

    YOUTUBEの動画をSmileDownloderでダウンロードして、hugflashでサウンドだけ抽出しました。 そのサウンドをMP3Gainというフリーソフトで音量を調整しようとしたのですが、上手くいきません。 まずMP3Gainの左上の『ファイル』をクリックして、hugflashのファイルを開こうとすると、MP3ファイルリストに『検索に一致するファイルがありません』と出ます。 で、『全てのファイル』をクリックすれば『VLC Media Player』のマークが入ったファイルが出てくるので、そのファイルをクリックするのですが・・・音量を調整しようとしたらエラーが出ます。 「分析中にエラーが出ました。Not enough samples in C:\ファイル名 m4a to do analysis」 というエラーです。 m4aっていうのは、もしかしてファイルがMP4ってことでしょうか? だからMP3gainでエラーが出るってことかな? それと、「窓の杜」でMP3Gainをダウンロードしたのですが、MP3GainはVISTAには対応してないみたいなんですよね・・・そこも引っかかるし、あと、VLC Media Playerが余計だったのかもしれません。 素人にはよくわからないので、アドバイスをお願いします。

  • mp3Gainについての質問

    フリーソフトでmp3ファイルを音量平均化できるmp3Gainというソフトがありますが、音量レベルは何db辺りが最適でしょうか? また、たとえば1度mp3Gainにかけて(仮に92dbとします)音量調整したファイルを更に(94db)などにしたい場合、音の劣化はあるんでしょうか? 更に、上の作業をした場合、ファイルの元の音量に戻す機能で戻した場合、92dbに戻した前の状態(ファイルの本来の元の状態)に戻せるのでしょうか? どなたか教えてください。

  • MP3Gainの使い方

    MP3GainをDLしたのですが、いまいち使い切れていない気がします。 (1)mp3ファイルを複数ドラッグ&ドロップ (2)トラック分析をクリック (3)一定値ゲインをクリック というやり方なのですが、(3)をクリックしても(2)で出た表示のまま何も変化がありません。 ヘルプ等を見ると、(3)をクリックした後「トラックゲイン」のところがすべて0になっているようなのですが・・・・・・・。 実際、音楽を聴いてみても、音量が一定になっていないと感じました。 無知でお恥ずかしいですが、どなたかアドバイス頂けないでしょうか? 宜しくお願い致します。

  • MP3GAINとiTunesについて

    既にiTunesに取り込んでいる複数のmp3ファイルをMP3GAINで音量を揃えた場合、iTunesやipodにそれは自動的に反映されますか? ipodとiTunesの曲を全て削除してからMP3GAINを使用して取り込まなければならないのでしょうか?

  • mp3Gainというフリーソフト

    トラックゲインとアルバムゲイン・一定値ゲインの使用方法を調べた結果、 トラックゲイン=はじめに設定したdbにあわせる アルバムゲイン=アルバム全体の平均値からゲイン数値に依存する 一定値ゲイン=アルバムゲインと多少似ているところがあり、自身で設定したゲイン数値に依存する と理解したのですが、今自分で行った操作は、複数のファイルをアルバムゲインを行ったところ、どうもノーマライズに失敗している(処理は完了しているようだが音量がほぼ大幅に一定ではない) 上記の処理済のファイルを”シフトキーやコントロールキーで選択したファイルのみ”のゲイン数値の変更ができないのでしょうか?すべてトラックゲインを行ってしまっているようです。あと一度処理済みのファイルをさらに・・・・とはファイルの劣化はどうなのか。 すみません、よろしくお願いします。

  • mp3gainで劣化した!?

    こんにちわ ご回答よろしくお願いしますm(_ _)m mp3gainでファイルの音量を一定化しているのですが あるmp3ファイルを98.0dbでトラックゲインしたら 演奏中にノイズが入りました。 特に高い部分ブツッ、ブツッとはいります 曲名は川嶋あいの「旅立ちの日に・・・(Instrumental)」です。 この曲はピアノの演奏だけなので高い部分が多くあるのでそのためなのでしょうか? 他の曲は普通です。

  • MP3Gain

    MP3Gainで何dBにしようかとかなり悩んでいるのですが、皆さんはどうしていますか? (1)dB数 (2)主な曲のジャンル (3)CDから取り込みの場合、そのCDのリリース年 を教えてください。 ※トラックゲインに限ります。 ちなみに私は、主に日本の80年代の歌謡曲を聞くのですが、 1985年~1990年頃リリースのCDと、2003~2008年頃リリースのベストアルバム・復刻版がほとんどです。 どうすればよいでしょう? また、なぜ人々は音量を上げたがるのですか? 例えば、89dBなど低めの値に揃えて、聞くときにオーディオプレーヤー側の音量を上げるというのではダメなのですか?