コマンドライン経由でmp3をoggに変換することは可能ですか?
一括でMP3ファイルをOGGに変換して、Firefoxで問題なく再生できるようにしたいと思います。
Oggに一致するパッケージを検索すると、 dir2ogg が見つかりました。ただ
Sudo apt-get install dir2ogg
dir2ogg -r /path/to/mp3s/
そして、/path/to/mp3s/
の下にあるすべてのmp3ファイルを再帰的に検索してoggに変換します(マニュアルを正しく読んだと仮定します)。
FFMPEG と String Manipulation の組み合わせを使用します。
Mp3があるフォルダーに移動します。
cd mp3folder
1つの例は、単純な「for」ループを使用することです。
for file in *.mp3
do ffmpeg -i "${file}" "${file/%mp3/ogg}"
done
二重引用符は、ファイル名のスペースが「改行」として扱われるのを防ぎます。
ffmpegには、コーデック、ビットレート、サンプルサイズ、ステレオ/モノラルなどの変換に含めるいくつかのオプションがあります。上記は、デフォルト設定での最も一般的な変換です。
警告:MP3とOGGはどちらもlossy形式であり、WAVやFLAC。これは、人間の耳(と呼ばれる psychoacoustics [wikipedia] =)
ある損失の多い形式から別の形式にエンコード(トランスコード)すると、それらの心理音響学的に冗長なビットのほとんどがすでになくなっているため、トランスコードの品質が低下し、結果が「聞こえる」場合さえあります。したがって、どうしても必要な場合を除き、このような変換を行うことはお勧めしません。
このMP3からOGGへの変換を行う場合、sourceビットレートよりもhigher宛先ビットレートを使用することにより、アーティファクト(低品質)の可能性を最小限に抑えることができます。 MP3は128 kbpsです。-q7
(可変ビットレートレベル7)でOggを使用してみてください。通常は約200 kbpsです。
-q
オプションをdir2oggに渡すことができます(@geirhaが言及したようにリポジトリで利用可能です)。
avconv gplプログラムを使用できます。例示のためにシェルを実行しました(.mp3ファイルを含むフォルダーで実行します)。
#!/bin/bash
if hash avconv > /dev/null; then
for file in *.mp3
do avconv -i "${file}" "`echo ${file%.mp3}.ogg`";
done
else
echo "avconv not found"
fi
またはavconvインストールの検証なしのより単純なバージョン:
#!/bin/bash
for file in *.mp3
do avconv -i "${file}" "`echo ${file%.mp3}.ogg`";
done
Oggによるmp3の解析/置換は正しくありません。正しい形式は次のとおりです。
for file in *.mp3;
do ffmpeg -i "${file}" -acodec libvorbis "${file%mp3}ogg";
done
これはmplayerを使用したものです。これはavconvよりも高速だと思います。ただし、firefoxはmp3ファイルをネイティブに再生する必要があります。
#!/bin/bash
for f in *.mp3; do
newname=`echo $f | tr ' ' '_' `
mv "$f" $newname
f=$newname
mplayer $f -novideo -ao pcm:file=tmp.wav
lame -V 0 -q 0 tmp.wav ${f/.mp3/.ogg}
rm -f tmp.wav
done
soundconverter もあります。 GUIとCLIの両方をサポートし、両方のモードで一括変換を実行できます。
オーディオのみを行う場合は、以下のコードを使用してください[そうでない場合、FFは.oggを再生しません]
for file in *.mp3;
do ffmpeg -i "${file}" -acodec libvorbis "${file/%mp3/ogg}";
done
これはあなたの問題を解決するかもしれないように見えます http://www.perturb.org/display/entry/687/