1

我正在尝试使用 openh264 lib 构建 pjsip 项目。一切正常,除了 pjsip 没有检测到 openh264./configure-android

这是我的 config_site.h

/* Activate Android specific settings in the 'config_site_sample.h' */
#define PJ_CONFIG_ANDROID 1
#include <pj/config_site_sample.h>
#define PJMEDIA_HAS_VIDEO 1
#define PJMEDIA_HAS_OPENH264_CODEC 1

我收到以下日志

Using OpenH264 prefix... /home/user_name/PJSIPTOOLS/openh264-1.0.0/openlib/
checking OpenH264 usability... no

由于./configure-android我的应用程序没有检测到它在运行时崩溃,说 lib not found for openh264。

我在 ubuntu 14.04 32 位。

有什么建议么。

4

3 回答 3

6

我刚刚遇到了类似的问题。在下文中,我参考了我下载并解压 OpenH264 到的目录,为path-to-openh264. 我在该文件夹中创建了一个子目录android,并通过设置修改了 OpenH264 的 Makefile PREFIX=android。之后运行以下命令来构建 OpenH264 为我解决了这个问题:

make OS=android NDKROOT=<path-to-ndk> TARGET=android-14 APP_ABI=armeabi ARCH=arm
make OS=android NDKROOT=<path-to-ndk> TARGET=android-14 APP_ABI=armeabi ARCH=arm clean
make install OS=android NDKROOT=<path-to-ndk> TARGET=android-14 APP_ABI=armeabi ARCH=arm

生成的libopenh264.so文件应该在目录中结束path-to-openh264/android/lib/。为了配置 pjsip,我使用了以下命令:

APP_PLATFORM=android-14 ./configure-android --with-openh264=<path-to-openh264>/android

以下 StackOverflow 线程将我引向正确的方向:

在 x86 中为 android 平台构建 openh264

出现此问题的原因是,我make install首先在没有命令行参数的情况下运行了该命令。这会导致为错误的 ABI(默认的,即 armeabi-v7a)创建本机库文件。在为 armeabi ABI 构建 pjsip 时,它无法识别该库,因为它是为不同的 ABI 构建的。至少这是我认为的。

于 2017-01-21T00:27:01.920 回答
4

其实我也遇到过这个问题。

解决方案:

第 1 步:转到您的 openh264 目录并创建一个名为“android”的文件夹

第2步:打开makefile并设置前缀

PREFIX=/your_path/openh264-1.0.0/android

step3:然后使用此命令构建openh264

make OS=android NDKROOT=/your_path/android-ndk-r10d TARGET=android-17 APP_ABI=armeabi

step4: 现在使用这个命令构建 pjsip

TARGET_ABI=armeabi APP_PLATFORM=android-12 ./configure-android --use-ndk-cflags --with-openh264=/your_path/openh264-1.0.0/android

希望这次你会看到

Using OpenH264 prefix... 
/home/user_name/PJSIPTOOLS/openh264-1.0.0/openlib/
checking OpenH264 usability... ok
于 2015-12-09T14:08:13.100 回答
3

http://trac.pjsip.org/repos/ticket/1758

  • 修改 Makefile 中的“前缀”
  • 运行“make install ARCH=armeabi”
  • 运行“./configure-android --with_openh264=/path/to/prefix/folder”
于 2015-10-08T13:29:57.933 回答