听取OPUS编码的流

6

目前,我正在开发一个应用程序来接收流式音频(原始编码字节),并对其进行一些转换(重新采样,将立体声转换为单声道等)。我已经使用JNI实现了使用opus编解码器对原始字节进行编码,但我有一个小问题:

有没有办法听取保存在文件中的opus编码流?我知道如果添加一些文件头并进行一些其他操作,我应该能够将其保存为OGG文件,但我不想浪费时间来实现仅用于测试音频的功能。

理想情况下,我想找一个工具,可以播放这样的流,就像Audacity播放RAW音频一样(当然要加上编码参数)。

谢谢。


你已经完成了工作... 你已经有了编解码器... 只需解码和播放。你具体在问什么? - Brad
我正在寻找一种监听编码字节的方法。我不想将其包装在某些文件中,只想将字节推入文件并使用某些工具(我不知道的)来监听它。 - Tomasz Bawor
有像 VLC 这样的工具吗?或者是在你的应用程序中? - Brad
类似VLC或Audacity的工具。我可以通过打开文件并传递流参数在Audacity中听取原始音频。但是我无法在opus中做到这一点。 - Tomasz Bawor
1个回答

3
你尝试过来自OPUS工具包的opusdec实用程序吗?
这个实用程序应该允许你将opus流作为PCM编码的wav文件播放出来,你可以将它传输到命令行.wav播放器中并收听它。 无需任何实现,只需通过Runtime.Exec()执行一个shell命令即可。
例如:对于安装有pulseaudio的系统。
yourstream.opus | padsp opusdec -

如果没有pulseaudio,任何wav播放器都可以使用wav流输出并播放它。

例如:
opusdec --force-wav yourinput.opus - | <YOUR WAV Stream Accepting Player>

谢谢,我一定会尝试的! - Tomasz Bawor
@TomaszBawor 我有和你一样的需求,并尝试了上述方法。执行命令(opusdec.exe --force-wav OpusEncoded.opus - | "%PROGRAMFILES%\VideoLAN\VLC\vlc")后,出现了“解码完成。这不像是一个Opus文件”的结果。我是否漏掉了什么?任何帮助将不胜感激。 - Arjun Natarajan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接