SoX 不适用于 Opus 音频文件
Posted
技术标签:
【中文标题】SoX 不适用于 Opus 音频文件【英文标题】:SoX doesn't work with Opus Audio files 【发布时间】:2014-04-14 20:48:25 【问题描述】:我正在使用 WebRTC 从网页录制输入麦克风,并通过 SoX 进行处理。
问题是,Firefox 录音是 Opus Audio 格式(根据 VLC 媒体信息),在 Ogg 容器中,SoX 不喜欢它:
/opt/local/bin/sox FAIL formats: can't open input file `/Users/[...]/public/audio/7a0d13a501.ogg': Input not an Ogg Vorbis audio stream
有没有办法让它与 SoX 一起工作? 还是应该使用其他命令行音频工具?
【问题讨论】:
【参考方案1】:我最终这样做了(两个都行,不知道哪个最快):
opusdec --force-wav file.ogg - | sox - file.mp3
或
sox "|opusdec --force-wav file.ogg -" file.mp3
【讨论】:
要使用 opusdec 选项 opus-tool 应该安装:sudo apt-get install opus-tools
我还没有让管道正常工作,但是使用 opusdec 和 sox 也对我有用。在 OSX brew 上,您可以安装带有 opus 支持的 sox,因此不需要额外的步骤。我猜我们需要使用 opus 选项手动重新编译 sox 以获得该行为。【参考方案2】:
你可以在运行 sox 时指定-t opus
sox -t opus file.ogg out.wav
【讨论】:
我不知道你有什么包,但是 Debian 包失败了:sox FAIL formats: no handler for given file type 'opus'
我用 brew 的最新 sox 在 mac OS(似乎和@ryancey 一样)上对其进行了测试以上是关于SoX 不适用于 Opus 音频文件的主要内容,如果未能解决你的问题,请参考以下文章