通过命令行将mp3文件批量/批量转换为ogg?


44

是否可以通过命令行将mp3转换为ogg?

我只想将我的mp3文件转换为ogg,以便我可以在Firefox中播放它们而没有任何问题。


firefox应该可以正常播放mp3文件
mchid 2015年

Answers:


37

搜索与ogg匹配的软件包,我发现dir2ogg似乎正是您想要的。只是

sudo apt-get install dir2ogg
dir2ogg -r /path/to/mp3s/

并且它以递归方式将所有的mp3文件转换/path/to/mp3s/为ogg(假设我正确阅读了手册)。


30

结合使用FFMPEG字符串处理

转到mp3所在的文件夹:

cd mp3folder

一个示例是使用一个简单的“ for”循环:

for file in *.mp3
  do ffmpeg -i "${file}" "${file/%mp3/ogg}"
done

双引号可防止将文件名中的空格视为“换行符”。

ffmpeg转换中包含多个选项,例如编解码器,比特率,样本大小,立体声/单声道等。以上是默认设置下最通用的转换。


优秀的。dir2ogg不适用于喘息的问题,但是这个答案像个魅力一样
Onimusha

dir2ogg也不适合我,但是我正在转换m4a-> ogg。<a href=" linuxquestions.org/questions/linux-general-1/...“title= linuxquestions.org"> LQ </A>但for循环上面那样(与avconv替换FFMPEG),当M4A / MP3转换为ogg通过上述过程,文件大小增加了9倍。但是,如果先将m4a转换为mp3,然后再将mp3转换为ogg,则文件大小只会大4倍。<pre> <code> avconv -i“ ManjusriMantra.m4a”“ ManjusriMantra.mp3“等待avconv -i” ManjusriMantra.mp3“” ManjusriMantra.ogg“ <code> <pre>
afc888ny

这对我ffmpeg -i sound.mp3 -c:a libvorbis -q:a 10 sound.ogg有用:最高的质量设置,但仍然明显比原始设置差。默认设置根本不适合我(在Cygwin上,所以起诉我:)),但是这个问题有很好的信息:superuser.com/questions/273797/convert-mp3-to-ogg-vorbis
Kai Carver

19

从MP3,M4A等到OGG的转换要小心,因为结果听起来可能很差!

警告:MP3和OGG都是有损格式,与WAV或FLAC不同。这意味着它们很大程度上通过丢弃人耳无法察觉的音频信息来实现压缩(称为心理声学 [wikipedia]

当您从一种有损格式编码(转码)到另一种有损格式时,大多数心理听觉冗余位已经消失了,因此转码质量会受到影响,甚至可能“可听”。因此,除非绝对必要,否则不建议进行此类转换。


如果这样做,可以通过选择比比特率更高的目标比特率来最大程度地减小影响

如果执行此MP3到OGG的转换,则可以通过使用比比特率更高的目标比特率来最大程度地减少伪影(质量不佳)的机会,例如,如果您的MP3的速率为128 kbps,请尝试使用(可变比特率级别的Ogg)7),通常约为200 kbps。-q7

您可以将-q选项传递给dir2ogg(在仓库中以@geirha的形式提供),该选项可以完成您想要的操作。


10

您可以使用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

注:avconv包是最近的一个分支/叉的ffmpeg,用类似的语法和特征。
david6 2014年

注意2: ffmpeg已正式弃用,并明确提及您应avconv改为使用。
ashes999 2014年

3

ogg对mp3的解析/替换不正确。正确的格式应为:

for file in *.mp3;

   do ffmpeg -i "${file}" -acodec libvorbis "${file%mp3}ogg";

done

2

这是使用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

1

如果您只做音频,请使用以下代码[否则FF无法播放.ogg]

for file in *.mp3;
   do ffmpeg -i "${file}" -acodec libvorbis "${file/%mp3/ogg}"; 
done


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.