【发布时间】:2016-11-06 05:42:38
【问题描述】:
是否有可以将MP3文件转换为OGG Opus的转换器?
你能推荐我一个可以做到的吗?
到目前为止,我已经尝试过 Adobe Audition、Xilisoft Audio Converter Pro、WinAVI Video Converter、Aimersoft Video Converter Pro ...而且它们都没有用
【问题讨论】:
是否有可以将MP3文件转换为OGG Opus的转换器?
你能推荐我一个可以做到的吗?
到目前为止,我已经尝试过 Adobe Audition、Xilisoft Audio Converter Pro、WinAVI Video Converter、Aimersoft Video Converter Pro ...而且它们都没有用
【问题讨论】:
试试ffmpeg 和-acodec libopus
【讨论】:
最简单的选择是这样的命令
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
【讨论】:
注意: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 参数用于混合音频目的
【讨论】: