使用 avconv 转换多个文件...未找到 libmp3lame0

使用 avconv 转换多个文件...未找到 libmp3lame0

我有大约 20 个 .webm 文件,我想在终端中将其转换为音频。我想这样做

avconv -i *.webm -acodec libmp3lame0 -aq 4 *.mp3

我试过:

for i in *.webm; do avconv -i "${i}" -acodec libmp3lame0 -aq 4 "${i%.wemb}.mp3"; done

但它显示“未找到 libmp3lame0 编码器”。但它已安装。我还安装了 ubuntu-restricted-extras 并重新安装了 libav-tools。

我也试过

for i in *.webm; do avconv -i "${i}" -acodec -aq 4 "${i%.wemb}.ogg"; done

删除整个 mp3/LAME 方面,但它只是说“未找到 .ogg 编码器”。

当我尝试使用不带 for 循环的 libmp3lame0 进行转换时,这种方法曾经起作用...但我刚尝试转换一个文件,它就不再起作用了。

谢谢。(我使用的是 12.10。)

答案1

您似乎使用了错误的编解码器名称。要查看支持哪些编解码器,请执行以下操作:

avconv -codecs

根据这个,编解码器名称是 libmp3lame(你多了一个 0)。不过这是我的系统上的,所以你的可能不一样。我给出的命令会让你知道。

答案2

在许多发行版中,默认情况下 avconv 未使用“--enable-libmp3lame”构建。avconv 必须使用 MP3 支持进行编译才能使用 libmp3lame。

我的解决方案是从 git repo 下载 libav,然后自己构建。这是我使用的 configure 命令行:

./configure --enable-libmp3lame --enable-nonfree --enable-gpl --enable-libx264

您可以使用以下命令行验证 avconv 是否内置了 MP3 编码支持:avconv -codecs

您必须在第二列功能中看到“E”才能使 MP3 编码正常工作:

DEA.L. mp3 MP3(MPEG 音频层 3)(解码器:mp3 mp3float)(编码器:libmp3lame)

如果第二列是“。”,则 MP3 编码未内置到您的 avconv 中:“DEA.L。”是好的,“DAL”是坏的。

相关内容