5

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

到目前为止,我已经尝试过Adob​​e AuditionXilisoft Audio Converter ProWinAVI Video ConverterAimersoft Video Converter Pro ...但它们都没有用

4

3 回答 3

15

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

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

但是您可以调整一系列参数,所有参数都记录在此处

例如,我使用以下命令来压缩有声读物/播客(生成的 ~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
于 2018-03-07T00:07:00.583 回答
4

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

注意编码 OPUS 文件会忽略FFmpeg 多线程参数。-thread n

准备中

使用 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使用%char 作为文件路径保存的参数
  • -c:a opus将 OPUS 设置为编码器
  • -strict -2 启用 FFmpeg 以使用 OPUS 编码器
  • -b:a 128K -vbr on将 OPUS 设置为 128 KB/s (VBR)足以存储立体声音乐
  • -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参数来混合音频

于 2021-04-03T10:24:43.227 回答
1

尝试使用ffmpeg-acodec libopus

于 2016-07-04T13:17:37.527 回答