【问题标题】:How to convert an MP3 file to an OGG OPUS file?如何将 MP3 文件转换为 OGG OPUS 文件?
【发布时间】:2016-11-06 05:42:38
【问题描述】:

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

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

【问题讨论】:

    标签: converter ogg opus


    【解决方案1】:

    试试ffmpeg-acodec libopus

    【讨论】:

    • 那么确切的命令是什么?我必须将 ogg vorbis 转换为 ogg opus。
    • @Velkan -acoded 允许您指定输出编码,libopus 是 opus 编解码器的 ffmpeg 值。这不是完整的命令,这只是命令的一部分
    【解决方案2】:

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

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

    但您可以调整一系列参数,所有参数均记录在 here

    例如我使用以下命令来压缩有声读物/播客(生成的 ~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
    

    【讨论】:

      【解决方案3】:

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

      注意FFmpeg 多线程 -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 使用% char 作为文件路径保存的参数
      • -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 参数用于混合音频目的

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-11-19
        • 2020-04-29
        • 2017-07-15
        • 2019-03-15
        • 2020-12-03
        • 2023-03-26
        • 2018-06-04
        相关资源
        最近更新 更多