首页 > 解决方案 > 在 Android 上使用 Opus 音频编码

问题描述

我想将语音从 Android 应用程序流式传输到服务器,并且要求使用 Opus 编码。由于某些奇怪的原因,Android 似乎只支持解码,但不支持开箱即用的编码。通过一些研究,我所能找到的只是一些使用官方原生 opus C/C++ 代码的 git repos,并通过 jni 将其添加到 android 项目中。我想知道这是否仍然是最新的情况,或者现在是否有更简单的方法来使用它,因为所有这些 repos 都已有 2 年以上的历史了。任何链接或提示表示赞赏。

标签: androidopus

解决方案


首先,Opus 库是免费和开源的,因此您可以为 Andriod 编写自己的应用程序,该应用程序将从麦克风捕获音频,使用 Opus 编解码器对其进行编码,然后发送到您的服务器。

但你确定要自己煮吗?

已经存在的解决方案是 WebRTC。Android 上的 Chrome 浏览器完全支持 WebRTC。因此它可以捕获语音,使用 Opus 编解码器对其进行编码,然后发送到您想要的任何对等方 - 到另一个 Web 浏览器(在这种情况下,您不需要任何其他东西,可能除了一些公共 STUN/TURN 服务器),或者发送到您自己的服务器软件,您可以使用本机 WebRTC c++ 库进行烹饪。

现有的现成服务器,免费和商业,为您提供支持,因此您无需自己动手:Red5、Unreal Media Server、Wowza。所以发生的事情是:您将实时音频从 Android 上的 Chrome 浏览器发布到该媒体服务器软件;然后媒体服务器可以将此流发送到一个/多个播放器进行播放,或者发送到记录器进行录制,或者如果需要,甚至发送到转码器进行转码。


推荐阅读