
一度に 1 つのトラックまたはディレクトリを実行するための Sound Converter などのオプションがあることは知っていますが、ディレクトリのサブディレクトリを再帰的にクロールしてすべての WMA を MP3 に変換するツールはありますか?
基本的には、~/Music にそれを放っておき、一度に 1 つのサブディレクトリを手動で指定することなく、その機能を実行させたいと思っています。
答え1
インストールサウンドコンバーター
Soundconverter
ランチャーまたはターミナルから実行します
デフォルトの変換は、結果の種類の下にあるこれ.ogg
を次のように MP3 に変更します。mp3
edit-> preferences
Format
フォルダーの追加をクリックし、音楽フォルダーを選択します。変換をクリックする前に、上記の設定で出力フォルダーを選択できます。
2 回のクリックで完了することを願っています :)
答え2
MPlayer はすでにインストールされている可能性があります。また、lame がインストールされていることを確認してください。
sudo apt-get install mplayer lame
それを実行するには、読みやすいバージョンと、短くて汚いスクリプトの 2 つの方法があります。
すべての wma は現在のディレクトリにある必要があります。ホーム ディレクトリ (~/) に次の内容を含む wmamp3 というファイルを作成します。
#!/bin/bash
current_directory=$( pwd )
#remove spaces
for i in *.wma; do mv "$i" `echo $i | tr ' ' '_'`; done
#remove uppercase
for i in *.[Ww][Mm][Aa]; do mv "$i" `echo $i | tr '[A-Z]' '[a-z]'`; done
#Rip with Mplayer / encode with LAME
for i in *.wma ; do mplayer -vo null -vc dummy -af resample=44100 -ao pcm -ao pcm:waveheader $i && lame -m s audiodump.wav -o $i; done
#convert file names
for i in *.wma; do mv "$i" "`basename "$i" .wma`.mp3"; done
#cleanup
rm audiodump.wav
chmod +x ~/wmamp3
実行可能にする
sudo cp ~/wmamp3 /usr/bin
道のどこか役に立つ場所にそれをポップする
変換を実行するには、「wmamp3」と入力します。
短くて汚いバージョン(上記とまったく同じことを行います):
for i in *.wma ; do mplayer -vo null -vc dummy -af resample=44100 -ao pcm -ao pcm:waveheader "$i" && lame -m j -h --vbr-new -b 160 audiodump.wav -o "`basename "$i" .wma`.mp3"; done; rm -f audiodump.wav
答え3
まず Mplayer と lame をインストールする必要があります:
sudo apt-get install mplayer lame
次にスクリプトを作成します(参照ページ ) を実行してみます:
#!/bin/bash
# By Marko Haapala
# converts wma to mp3 recursively. does not delete any static files, so
# cleanup and renaming is needed afterwards.
#
# requirements:
# lame - http://lame.sourceforge.net/download.php
# mplayer - apt-get install mplayer or http://www.mplayerhq.hu/design7/dload.html
current_directory=$(pwd)
wma_files=$(find "${current_directory}" -type f -iname "*.wma")
# Need to change IFS or files with filenames containing spaces will not
# be handled correctly by for loop
IFS=$'\n'
for wma_file in ${wma_files}; do
mplayer -vo null -vc dummy -af resample=44100 \
-ao pcm -ao pcm:waveheader "${wma_file}" && lame -m s \
audiodump.wav -o "${wma_file}".mp3
rm audiodump.wav
done
まさにあなたが望んでいることのようです。 望ましい品質レベルを確実に得るために、lame flags をいじる必要があるかもしれないことを覚えておいてください。
答え4
少し古いですが、David Futcher が示したスクリプトを修正しました。変更点は次のとおりです。
/tmp
一時的な wav ファイルに現在のフォルダーの代わりに使用します(これを使用して USB スティック上のファイルを変換すると、速度が大幅に向上しました)。wma ファイルが (うまくいけば) 変換されたら、それを削除します。
ここにあります:
#!/bin/bash
# By Marko Haapala
# converts wma to mp3 recursively. does not delete any static files, so
# cleanup and renaming is needed afterwards.
#
# Modified by V10lator
# to delete the wma files and to use /tmp for temporary files
#
# requirements:
# lame - http://lame.sourceforge.net/download.php
# mplayer - apt-get install mplayer or http://www.mplayerhq.hu/design7/dload.html
current_directory=$(pwd)
tmp_file=$(mktemp -t -u --suffix=.wav)
wma_files=$(find "${current_directory}" -type f -iname "*.wma")
# Need to change IFS or files with filenames containing spaces will not
# be handled correctly by for loop
IFS=$'\n'
for wma_file in ${wma_files}; do
mplayer -vo null -vc dummy -af resample=44100 \
-ao pcm -ao pcm:waveheader -ao pcm:file="${tmp_file}" \
"${wma_file}" && lame -m s "${tmp_file}" \
-o "${wma_file}".mp3 && rm "${wma_file}"
rm "${tmp_file}"
done