WMA トラックのライブラリを MP3 に変換しますか?

WMA トラックのライブラリを MP3 に変換しますか?

一度に 1 つのトラックまたはディレクトリを実行するための Sound Converter などのオプションがあることは知っていますが、ディレクトリのサブディレクトリを再帰的にクロールしてすべての WMA を MP3 に変換するツールはありますか?

基本的には、~/Music にそれを放っておき、一度に 1 つのサブディレクトリを手動で指定することなく、その機能を実行させたいと思っています。

答え1

インストールサウンドコンバーター サウンドコンバータをインストールする

Soundconverterランチャーまたはターミナルから実行します

ここに画像の説明を入力してください

デフォルトの変換は、結果の種類の下にあるこれ.oggを次のように MP3 に変更します。mp3edit-> preferencesFormat

ここに画像の説明を入力してください

フォルダーの追加をクリックし、音楽フォルダーを選択します。変換をクリックする前に、上記の設定で出力フォルダーを選択できます。

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

関連情報