如何使用ffmpeg将opus文件转换为可被python soundfile读取的ogg文件
报错原因
你使用的FFmpeg版本编译时未启用libvorbis编码器支持,从给出的编译配置中也可看到未包含--enable-libvorbis参数,因此调用libvorbis编码时抛出未知编码器错误。
修复步骤
1. 安装带libvorbis支持的FFmpeg
- 若使用conda环境,执行以下命令重装:
conda install -c conda-forge ffmpeg libvorbis - 若为系统级安装,对应操作系统执行安装命令:
- Debian/Ubuntu系列:
sudo apt install ffmpeg libvorbis-dev - CentOS/RHEL系列:
sudo yum install ffmpeg libvorbis-devel - macOS:
brew install ffmpeg libvorbis
- Debian/Ubuntu系列:
2. 验证编码器可用性
执行以下命令,输出中包含libvorbis字段即说明配置正常:ffmpeg -encoders | grep vorbis
3. 批量转换opus文件
转换完成后的ogg文件可直接通过python-soundfile库读取。
Linux/macOS 环境
在opus文件存储目录下执行以下命令,会遍历当前目录所有.opus文件转换为同名.ogg文件,原文件保留:for file in *.opus; do ffmpeg -i "$file" -c:a libvorbis -b:a 16k "${file%.opus}.ogg"; done
Windows 环境
新建后缀为.bat的脚本文件,放入opus文件目录后双击运行:
@echo off for %%i in (*.opus) do ( ffmpeg -i "%%i" -c:a libvorbis -b:a 16k "%%~ni.ogg" )
可选优化
如果对音频质量要求更高,可将命令中的固定码率参数-b:a 16k替换为VBR模式参数-q:a 3,同等码率下音质表现更佳。
内容的提问来源于stack exchange,提问作者Zabir Al Nazi Nabil
相关产品推荐
相关产品推荐

