【问题标题】:How to integrate G.729 Codec with PJSIP Project如何将 G.729 编解码器与 PJSIP 项目集成
【发布时间】:2015-06-28 12:36:06
【问题描述】:

我正在使用 PJSIP 为 android、iOS 等开发软电话拨号器应用程序。我需要知道如何将 G.729 编解码器与项目集成。我在 PJSIP 网站本身中看到了有关使用英特尔 IPP 构建 G.729 编解码器的文章。但是当我联系英特尔支持团队时,他们告诉我它仅在旧版本的 IPP 中受支持。现在他们不支持 arm 处理器,并且 G.729 编解码器也没有与示例项目一起提供。有没有其他方法可以将编解码器与 PJSIP 项目集成。

提前致谢

【问题讨论】:

    标签: pjsip


    【解决方案1】:

    我对我的一个 VOIP 应用程序有同样的要求。但是很久没有找到任何解决方案或堆栈溢出的答案。所以最后我才知道还有一个开源的“linphone”(不是 pjsip 堆栈)与 g729codec 集成。

    所以我从 linphone 单独获取了 g729 编解码器库,并为 pjsip 创建了一个补丁。我也用我的 iOS 应用程序测试过它运行良好。你可以从我的 git repo https://github.com/saravanandm/pjsip-g729codec下载补丁

    【讨论】:

    • 我正在使用您的 g729 库。与 PjSip 2.5 完美配合。你用 PjSip 2.6 试过了吗?
    • 没有。你有什么问题吗?
    • 它与 PjSip 2.5 完美配合,但我没有尝试 2.6 或更高版本。
    • @SaRaVaNaNDM 我正在​​尝试使用 Pjsiip2.8。面临的问题。如果可能的话,你能帮我吗?
    【解决方案2】:

    首先你需要从pjsip-android-builder库https://github.com/VoiSmart/pjsip-android-builder/tree/master/g729_patch下载g729补丁

    下载 pjsip ,解压;将 g729_patch 文件夹和 pjsip 文件夹放在一个文件夹中。 在 g729_patch 在编辑器 install.sh 中打开并编辑第 5 行(使用 pjsip 输入文件夹的正确名称),对我来说是: PJPROJECT_BASE_FOLDER="../pjproject-2.7.2"

    在终端 cd 到 g729_patch 目录并运行 ./install.sh (您需要为此安装 autoconf 实用程序);也可以手动应用补丁,请参阅自述文件中的说明。

    使用以下内容创建文件 config_site.h:

        #define PJ_CONFIG_ANDROID 1
        #define PJMEDIA_HAS_G729_CODEC 1
        #define PJMEDIA_HAS_G7221_CODEC 1
        #include <pj/config_site_sample.h>
    

    对我来说,它适用于 android,但也适用于其他平台,因此第一行可能会有所不同,也可以添加其他选项。 把这个文件放到/pjlib/include/pj.

    cd 到你的 pjsip 目录并运行:

    ./configure-android --enable-g729-codec

    对我来说它是 android,所以我运行了 ./configure-android 但可能是其他的。 在此步骤中,可以应用任何其他配置标志,例如对我来说是 NDK_TOOLCHAIN_VERSION=4.9 TARGET_ABI=armeabi-v7a ./configure-android --use-ndk-cflags --enable-g729-codec

    然后运行:

    制作 dep && 制作干净 && 制作

    就是这样 - pjsip 是用 g729 编解码器编译的。

    【讨论】:

    • 编译后在哪里可以找到.so文件?
    • 它在 {PJSIP_DIRECTORY}/pjsip-apps/src/swig/java/android/app/src/main/jniLibs
    【解决方案3】:

    【讨论】:

    • 我已经下载了八卦项目。我已经看到了 G729 的库文件以及项目。但是由于项目中没有 PJSIP 类。因此无法运行它。我尝试将 G729 库与我的项目集成。但它仍然没有采用编解码器
    【解决方案4】:

    对我来说,使用 IPP 将是矫枉过正。 AFAIR 它也不是免费的。

    以GSM编解码模块为模板,修改并添加开源G.729/a(星号,freeswitch)实现作为第三方库。

    【讨论】:

    • 是否有可用于此方法的分步教程。或者请详细解释一下
    【解决方案5】:

    您可以看看 CSipSimple 项目 (https://code.google.com/p/csipsimple/),他们使用 pjsua 和 G729 编解码器可以包含在应用程序中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-05
      • 2020-08-14
      相关资源
      最近更新 更多