当前位置: 首页>>技术问答>>正文


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

, ,

问题描述

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

我想只是在大量猛扑将我的mp3文件转换为ogg所以我可以在Firefox中播放它们没有任何问题。

最佳解决思路

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

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

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

次佳解决思路

使用FFMPEGString 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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1843.html,未经允许,请勿转载。