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

kam*_*ar 1 converter ogg opus

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

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

小智 8

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

注意编码 OPUS 文件时,FFmpeg 多线程参数将被忽略。-thread n

准备中

使用 Opus 编解码器安装GNU parallelFFmpeg和 MP3

sudo apt install -y parallel ffmpeg libmp3lame libopus
Run Code Online (Sandbox Code Playgroud)

用法

递归并使用所有 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 %"
Run Code Online (Sandbox Code Playgroud)

注意:不要使用-frame_duration参数来混合音频


Iva*_*van 5

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

ffmpeg -i input.mp3 -c:a libopus output.opus
Run Code Online (Sandbox Code Playgroud)

但是可以选择一些参数进行调整,所有参数均在此处记录

例如,我使用以下命令来压缩有声读物/播客(由此产生的〜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
Run Code Online (Sandbox Code Playgroud)
  • -b:a 32k 将比特率设置为32 kbps(如果使用VBR,则约为35 kbps),在无损(或320k MP3)原件的情况下,使用128k压缩音乐,或在192k mp3原件的情况下,使用64k压缩音乐是合理的
  • -vbr on 打开可变比特率模式(可能会花费一些额外的kbit几秒钟的时间来提高质量)
  • -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
Run Code Online (Sandbox Code Playgroud)