Answers:
转到mp3所在的文件夹:
cd mp3folder
一个示例是使用一个简单的“ for”循环:
for file in *.mp3
do ffmpeg -i "${file}" "${file/%mp3/ogg}"
done
双引号可防止将文件名中的空格视为“换行符”。
ffmpeg转换中包含多个选项,例如编解码器,比特率,样本大小,立体声/单声道等。以上是默认设置下最通用的转换。
ffmpeg -i sound.mp3 -c:a libvorbis -q:a 10 sound.ogg
有用:最高的质量设置,但仍然明显比原始设置差。默认设置根本不适合我(在Cygwin上,所以起诉我:)),但是这个问题有很好的信息:superuser.com/questions/273797/convert-mp3-to-ogg-vorbis
警告:MP3和OGG都是有损格式,与WAV或FLAC不同。这意味着它们很大程度上通过丢弃人耳无法察觉的音频信息来实现压缩(称为心理声学 [wikipedia])
当您从一种有损格式编码(转码)到另一种有损格式时,大多数心理听觉冗余位已经消失了,因此转码质量会受到影响,甚至可能“可听”。因此,除非绝对必要,否则不建议进行此类转换。
如果执行此MP3到OGG的转换,则可以通过使用比源比特率更高的目标比特率来最大程度地减少伪影(质量不佳)的机会,例如,如果您的MP3的速率为128 kbps,请尝试使用(可变比特率级别的Ogg)7),通常约为200 kbps。-q7
您可以将-q
选项传递给dir2ogg(在仓库中以@geirha的形式提供),该选项可以完成您想要的操作。
您可以使用avconv gpl程序,我做了一个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
ffmpeg
已正式弃用,并明确提及您应avconv
改为使用。
如果您只做音频,请使用以下代码[否则FF无法播放.ogg]
for file in *.mp3;
do ffmpeg -i "${file}" -acodec libvorbis "${file/%mp3/ogg}";
done
看来它可以解决您的问题http://www.perturb.org/display/entry/687/