【问题标题】:Use Opus audio encoding on Android在 Android 上使用 Opus 音频编码
【发布时间】:2020-01-07 19:06:53
【问题描述】:

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

【问题讨论】:

    标签: android opus


    【解决方案1】:

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

    但是你确定要自己做饭吗?

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

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

    【讨论】:

    • 感谢您的回答。是的,我知道开源项目。不过目前还没有官方的安卓支持。它显然仍然可以完成,但我希望已经有一个项目可以做到这一点并且可以在 gradle 中导入。不确定WebRTC。我们已经准备好原始音频的客户端-服务器流,所以我不能只切换任何主要组件。
    猜你喜欢
    • 2012-11-19
    • 2015-08-07
    • 2013-05-05
    • 2014-12-02
    • 2019-01-09
    • 2013-11-18
    • 2017-10-13
    • 1970-01-01
    • 2016-03-12
    相关资源
    最近更新 更多