问题描述
是否可以通过命令行将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
一个例子是使用一个简单的”for”循环:
for file in *.mp3
do ffmpeg -i "${file}" "${file/%mp3/ogg}"
done
双引号可防止文件名中的空格被视为’newlines’。
ffmpeg有几个选项可以包含在转换中,如编解码器,比特率,样本大小,立体声/单声道等……以上是使用默认设置的最通用的转换。
第三种解决思路
小心从MP3,M4A等到OGG的转换,因为结果可能听起来很差!
警告:MP3和OGG都是有损格式,与WAV或FLAC不同。这意味着他们通过丢弃人耳难以察觉的一些音频信息来实现压缩(称为心理声学[维基百科])
当您从一种有损格式进行编码(转码)时,大多数心理声学冗余位已经消失,因此转码质量将受到影响,甚至可能是结果中的”hearable”。因此,除非绝对必要,否则不建议进行此类转换。
如果通过选择比源bit-rate更高的目标bit-rate来最小化效果
如果您执行此MP3-to-OGG转换,您可以通过使用比源比特率更高的目标比特率来最小化伪像(质量差)的机会,例如,如果您的MP3为128 kbps,请尝试在-q7
使用Ogg(可变比特率级别7) ),通常约为200 kbps。
您可以将-q
选项传递给dir2ogg(在repos中提供为@geirha提到),它应该可以执行您想要的操作。
第四种思路
你可以使用avconv一个gpl程序,我做了一个用于exemplify的shell(在带有.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