如何将MP3文件转换为OGG OPUS文件?

时间:2016-07-04 13:10:14

标签: converter ogg opus

是否有转换器可以将 MP3 文件转换为 OGG Opus
你能推荐一个能做到的吗?

到目前为止,我已尝试 Adob​​e Audition Xilisoft Audio Converter Pro WinAVI视频转换器 Aimersoft视频转换器Pro ...并且没有一个是有用的

3 个答案:

答案 0 :(得分:3)

最简单的选择是像这样的命令

ffmpeg -i input.mp3 -c:a libopus output.opus

但是您可以调整一些参数,所有参数都记录在案here

E.g。我使用以下命令来压缩有声读物/播客(由此产生的~32 kbps OPUS文件与192 kbps MP3无法区分):

ffmpeg -i input.mp3 -c:a libopus -b:a 32k -vbr on -compression_level 10 -frame_duration 60 -application voip output.opus
  • -b:a 32k将比特率设置为32 kbps(或者在VBR情况下约为35 kbps),使用128k压缩音乐给出无损(或320k MP3)原始音频或64k来压缩音乐是合理的一部192k MP3原装
  • -vbr on打开可变比特率模式(可能会增加质量,使用一些额外的kbits几秒钟)
  • -compression_level 10命令支持质量优于压缩速度
  • -frame_duration 60以延迟40 毫秒延迟的成本提高质量
  • -application voip要求尽可能保存语音清晰度,将-application audio用于音乐

您可以在bash中以这种方式转换一组许多文件:

for f in *.mp3; do ffmpeg -i "$f" -c:a libopus "${f%.*}.opus"; done

答案 1 :(得分:2)

利用完整的 CPU 递归转换所有子文件夹中的 MP3 文件

注意FFmpeg multithread -thread n 参数在编码 OPUS 文件时会被忽略。

准备

使用 OPUS 编解码器安装 GNU 并行、FFmpeg 和 MP3

sudo apt install -y parallel ffmpeg libmp3lame libopus

用法

递归并使用所有 CPU

  • find -iname "*.mp3" -type f 查找整个目录中的所有 MP3 文件
  • parallel -I% --max-args 1 准备 parallel 以使用 % 字符作为保存文件路径的参数
  • -c:a opus 将 OPUS 设置为编码器
  • -strict -2 启用 FFmpeg 以与 OPUS 编码器一起使用
  • -b:a 128K -vbr on 将 OPUS 设置为 128 KB/s (VBR),即 enough to store stereo music
  • -map_metadata 0 将标签从 MP3 复制到 OPUS 文件
  • -compression_level 10 优先考虑质量而不是压缩速度
  • -y 覆盖 OPUS 文件(如果已存在)
  • touch -r % %.opus 使用 MP3 文件的时间而不是新创建的文件
  • rm -vf % 删除 MP3 文件
find -iname "*.mp3" -type f | parallel -I% --max-args 1  \
  "ffmpeg -i % -strict -2 -c:a opus -b:a 128K -vbr on -map_metadata 0 -compression_level 10 -y %.opus;touch -r % %.opus;rm -vf %"

注意:请勿将 -frame_duration 参数用于混合音频

答案 2 :(得分:0)

使用-acodec libopus

尝试ffmpeg