一度にflacをmp3に変換

良い一日。



私はここで、flacまたはmp3の形式がわからない音楽の山をここでやりました。 「まあ、なに、これをすべて変換するユーティリティがたくさんあるので、それを見つけ出します。」 ダウンロードし、ネットワークを検索し、変換方法を調べ、All2mp3プログラムを見つけました(ポピーの上に座っています)... Musicフォルダーをドロップしてすべてのサブフォルダーを検索し、すべてを見つけることができないことに気付いたときの驚きは何ですかflacファイルをmp3に変換します! 彼はグーグルを始めましたが、正気な解決策は見つかりませんでした。





私は小さなシェルスクリプトを作成しました。このスクリプトは、フォルダーを介して実行され、flacを探してmp3に変換し、必要に応じて.flacを削除できます。 スクリプトはひざまずいているため、新しいファイルは* .flac.mp3と呼ばれます。 また、 flacプログラムをインストールして動作させる必要があります。

ラメ



スクリプト自体は次のとおりです。

#!/bin/sh #flac2mp3 error(){ echo $@ 1>&2; exit 1; } r=0 rem(){ if [ $r -eq 1 ]; then rm "$1" fi } flac2mp3(){ data=$1 echo " -----------------------Working on $data" if [ -d "$data" ]; then for file in "$data"*; do if [ -d "$file" ]; then file="$file"/ fi flac2mp3 "$file" wait done elif [[ "$data" == *.flac ]]; then flac -d --stdout "$data" > temp.wav wait echo " ---------------------------------$data to wav done" lame temp.wav "$data".mp3 wait echo " ---------------------------------$data to $data.mp3 done" rm temp.wav rem "$data" fi } if [ $# -eq 0 ]; then error "Wrong arguments" fi echo ============================================================ if [ $# -eq 1 ]; then flac2mp3 "$1" elif [ $# -eq 2 ] && [ $1 == "-r" ]; then r=1 flac2mp3 "$2" else error "Wrong arguments!" fi
      
      







使い方:





自宅でチェック-すべてが動作します。 少なくともmp3ファイルがあり、余分なものは何も削除されていませんが、これはすでに悪いことではないと思います。 誰かが役に立つといいな。



PSシェルに書き込むことはめったにないので、コードに関するコメントを歓迎します。



UPD:スクリプトはタグを保存しません! 私はすでにこの鉱山で爆破された人々に謝罪します、今私はそれを修正します。

UPD2:私のソリューションは思い通りに機能しないため、ユーザーmgykはコメントで彼のオプションを親切に提案しました。

 #!/bin/bash if [ "${1}" == '' ]; then shellDir="$PWD" else shellDir="${1}" fi prefix=/home/share/music/_mp3 find "${shellDir}" -name '*.flac' -print | while read fn; do ARTIST=`metaflac "$fn" --show-tag=ARTIST | sed s/.*=//g` TITLE=`metaflac "$fn" --show-tag=TITLE | sed s/.*=//g` ALBUM=`metaflac "$fn" --show-tag=ALBUM | sed s/.*=//g` GENRE=`metaflac "$fn" --show-tag=GENRE | sed s/.*=//g` TRACKNUMBER=`metaflac "$fn" --show-tag=TRACKNUMBER | sed s/.*=//g` DATE=`metaflac "$fn" --show-tag=DATE | sed s/.*=//g` newpath="${prefix}/$ARTIST/$ALBUM" newfile=${TITLE}.mp3 echo $newfile mkdir -p "${newpath}" flac -c -d "${fn}" | lame -mj -q 0 --vbr-new -V 0 -s 44.1 - "${newpath}/${newfile}" id3 -t "$TITLE" -T "${TRACKNUMBER:-0}" -a "$ARTIST" -A "$ALBUM" -y "$DATE" -g "${GENRE:-12}" "${newpath}/${newfile}" done
      
      







また、コメントでは、私が見つけられなかったいくつかのプログラムが提案され、それらはタスクを実行します:

マックス

Xロスレスデコーダー



All Articles